我正尝试在Intellij IDEA的一个Kotlin项目中使用Nd4j。在Project Structure -> Libraries中,我使用"From Maven“命令添加了以下库。
org.deeplearning4j:deeplearning4j-core:1.0.0-beta
org.nd4j:nd4j-native-platform:1.0.0-beta
org.datavec:datavec-api:1.0.0-beta有了这些库,我可以编译我的项目,但当我运行它时,它会失败并出现异常。
Caused by: java.lang.RuntimeException: ND4J is probably missing dependencies. For more information, please refer to: http://nd4j.org/getstarted.html
at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:51)
at org.nd4j.nativeblas.NativeOpsHolder.<clinit>(NativeOpsHolder.java:19)
... 10 more
Caused by: java.lang.UnsatisfiedLinkError: no jnind4jcpu 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:1220)
at org.bytedeco.javacpp.Loader.load(Loader.java:980)
at org.bytedeco.javacpp.Loader.load(Loader.java:879)
at org.nd4j.nativeblas.Nd4jCpu.<clinit>(Nd4jCpu.java:10)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.bytedeco.javacpp.Loader.load(Loader.java:938)
at org.bytedeco.javacpp.Loader.load(Loader.java:879)
at org.nd4j.nativeblas.Nd4jCpu$NativeOps.<clinit>(Nd4jCpu.java:1310)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:29)
... 11 more
Caused by: java.lang.UnsatisfiedLinkError: no nd4jcpu 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:1220)
at org.bytedeco.javacpp.Loader.load(Loader.java:965)
... 21 more查看项目文件夹,我发现IDEA已经下载了许多用于nd4j-native-platform的jar文件,但没有任何JNI库的迹象。我还需要做什么?
发布于 2018-10-19 15:44:22
Intellij的"From Maven“特性不支持JavaCPP和ND4J (以及其他使用本机代码的库)使用的分类器。openblas-0.3.0-1.4.2-macosx-x86_64.jar将工作得很好,但是如果您由于某些原因不能使用它,您可以手动添加Maven文件和Maven文件。这应该足以运行简单的东西,但当您使用越来越多的东西(如OpenCV)时,您必须为每个其他本机依赖项手动执行此操作。这就是推荐使用Maven的原因。
发布于 2018-10-08 10:17:56
如果你包含了这3个依赖项,除非你出于某种原因在不支持的操作系统上运行,否则它失败的原因是没有的。
我们支持从android到IBM power的一切,所以这是不太可能的。
我也被你说的看不到任何JNI库的意思搞糊涂了。这些都在jar文件中。我们使用javacpp (我们也维护它)来管理这些东西。您可以在~/.javacpp/cache下找到这些库--不过您应该没有任何理由去接触它们。
你能说清楚你在找什么吗?
除此之外,你不需要做任何其他的事情。我猜是有什么东西没有正确加载。
我们独立的pom可以开箱即用:https://github.com/deeplearning4j/dl4j-examples/blob/master/standalone-sample-project/pom.xml -也许可以仔细检查这个,那个或者重新加载。我只能假设你以某种方式创建了错误的项目。文件->新的Maven项目应该是所有您需要做的。
https://stackoverflow.com/questions/52691773
复制相似问题