首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用nd4j进行分级生成问题

用nd4j进行分级生成问题
EN

Stack Overflow用户
提问于 2022-02-02 15:36:21
回答 1查看 143关注 0票数 0

我正在尝试使用nd4j构建一个模块。

它与maven一起构建得很好,但在gradle中却不是这样。

我对pom进行了自动转换,手动添加了javacpp依赖项,

它构建了链接错误no jniopenblas_nolapack in java.library.path,但是测试失败了。

我做了很多网上搜索,但都没有用。

这是我的dependencies部分:

代码语言:javascript
复制
dependencies {
implementation("org.bytedeco:openblas:0.3.17-1.5.6")
implementation("org.bytedeco:javacpp:1.5.6")
implementation("org.nd4j:nd4j-native:1.0.0-M1.1")
}

(我已经删除了与此无关的deps )

实际上,我有点傻了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 22:49:45

在评论中,我将感谢对我们的文档的评论,以帮助改进网站。我们明确地介绍了这个场景。我将在下面总结一下,然后用一个链接进行评论。如果您发现有任何遗漏,请帮助我们改进网站的未来。

Nd4j使用javacpp,它依赖于分类器来确定如何包含本机二进制文件。它的工作方式是将核心类放入一个独立的库/artifactId(nd4j-本机)中,它需要一个伴随的分类器依赖项。这将是一个具有相同名称和版本的工件id,外加一个额外的分类器。这通常是您的平台的操作系统和架构名称。这可能是linux-x86_64 ( 64位英特尔上的linux)或android-arm64 ( 64位ARM设备上的android)。

它们通常还有伴随的依赖项,例如openblas (我们也使用javacpp绑定)来使我们能够访问快速的第三方数学例程。

考虑到这一点,通常需要这样的依赖块:

代码语言:javascript
复制
dependencies {
    compile "org.nd4j:nd4j-native:1.0.0-M1.1"
    // Use windows-x86_64 or linux-x86_64 if you are not on macos
    compile "org.nd4j:nd4j-native:1.0.0-M1.1:macosx-x86_64"
    compile "org.bytedeco:openblas:0.3.17-1.5.6:macosx-x86_64" 
    compile "org.bytedeco:openblas:0.3.17-1.5.6" 
}

您还可以执行Sam前面描述的操作,并使用-platform依赖项。它们将更易于使用,并且是我们在docs站点上默认拥有的内容。这样的话,就是:

代码语言:javascript
复制
dependencies {
    compile "org.nd4j:nd4j-native-platform:1.0.0-M1.1"
 
}

在这个站点上还有更多的文档,所以为了简单起见,我将尝试忽略所有这些。如果您需要后续的意见,请告诉我或提交另一个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70958433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档