我试图通过gradle设置一个深度学习4J项目,但我得到了一个不舒服的Linkerror:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopenblas in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:976)
at org.bytedeco.javacpp.Loader.load(Loader.java:777)
at org.bytedeco.javacpp.Loader.load(Loader.java:684)
at org.bytedeco.javacpp.openblas.<clinit>(openblas.java:10)
at org.nd4j.linalg.cpu.nativecpu.blas.CpuBlas.setMaxThreads(CpuBlas.java:117)
at org.nd4j.nativeblas.Nd4jBlas.<init>(Nd4jBlas.java:35)
at org.nd4j.linalg.cpu.nativecpu.blas.CpuBlas.<init>(CpuBlas.java:12)
at org.nd4j.linalg.cpu.nativecpu.CpuNDArrayFactory.createBlas(CpuNDArrayFactory.java:89)
at org.nd4j.linalg.factory.BaseNDArrayFactory.blas(BaseNDArrayFactory.java:67)
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.getEnvironmentInformation(NativeOpExecutioner.java:1176)
at org.nd4j.linalg.api.ops.executioner.DefaultOpExecutioner.printEnvironmentInformation(DefaultOpExecutioner.java:562)
at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6210)
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)
at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)
at org.deeplearning4j.nn.conf.NeuralNetConfiguration$Builder.seed(NeuralNetConfiguration.java:777)
at my.project.NeuralNetwork.main(NeuralNetwork.java:43)
Caused by: java.lang.UnsatisfiedLinkError: no openblas in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:976)
at org.bytedeco.javacpp.Loader.load(Loader.java:765)
... 14 more
我的依赖项看起来像:
dependencies {
compile group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '0.9.1'
compile group: 'org.deeplearning4j', name: 'rl4j', version: '0.9.1'
compile group: 'org.nd4j', name: 'nd4j-native', version: '0.9.1'
compile group: 'org.nd4j', name: 'nd4j-jblas', version: '0.9.1'
compile group: 'org.nd4j', name: 'nd4j-api', version: '0.9.1'
compile 'org.nd4j:nd4j-native:0.9.1:windows-x86_64'
}
我也尝试添加
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.2.20-1.3'
但这无济于事。
我需要安装OpenBlas吗?我没有在《深度学习4J快速启动指南》中读过这样的东西。OS是Win10,IDE是Intellij社区版。
nd4j-jblas甚至不是有效的maven依赖关系。您从哪里得到的?
我们在文档中的任何地方都没有ND4J-JBLA,并且已经将近两年没有。坚持我们入门文档:http://deeplearning4j.org/quickstart
我们在那里解释您需要什么。而不是与所有分类器混在一起:人工制品ID的ND4J-NATIATION平台。
我将这些依赖项添加到我的pom.xml文件,并且正在工作。
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>openblas</artifactId>
<version>0.2.20-1.4</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>openblas-platform</artifactId>
<version>0.2.20-1.4</version>
</dependency>
我遇到了相同的问题,并通过在环境变量路径中添加以下路径来解决它:P>
用户名和d:将是您机器的特定的,例如我的用户名是arslan akhtar
在计算机上,要编辑系统环境变量=>然后在系统变量下找到变量路径,然后选择" edit =>",然后只需将上述变量路径附加在长字符串末尾的上述变量路径,将semicolon(;)添加为定界线
根据doc https://deeplearning4j.org/quickstart
如果您在Windows计算机上使用了64位Java,则必须将以下内容添加为VM参数(运行 -> Inter Intellijij中的VM选项):
>-djava.library.path ="
我遇到了相同的错误,但是通过添加两个新的依赖项来解决。这是一个JavACV依赖性和JavACV-Platform依赖关系,您可以在https://mvnrepository.com/上获得这些依赖项。不要忘记使用支持版本添加依赖项。