Используйте Nd4j в проекте Intellij - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь использовать Nd4j в проекте Kotlin в Intellij IDEA.В Структуре проекта -> Библиотеки я использовал команду «Из 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 загрузила много jar-файлов для nd4j-native-platform, но нет никаких признаков каких-либо библиотек JNI.Что еще мне нужно сделать?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Функция Intellij «From Maven» не поддерживает классификаторы, которые используют JavaCPP и ND4J (и другие библиотеки, использующие собственный код).Maven будет отлично работать, но если вы по какой-то причине не можете его использовать, вы можете вручную добавить файл nd4j-native-1.0.0-beta2-macosx-x86_64.jar и openblas-0.3.0-1.4.2-macosx-x86_64.jar.Этого должно быть достаточно для запуска простых вещей, но вам придется делать это вручную для каждой другой нативной зависимости, так как вы используете все больше и больше вещей (например, OpenCV).Вот почему рекомендуется Maven.

0 голосов
/ 08 октября 2018

Если вы включите эти 3 зависимости, у вас будет ноль причин, по которым он может потерпеть неудачу, если вы по какой-то причине не пользуетесь неподдерживаемой ОС.

Мы поддерживаем все, от Android до IBM Power, так что это маловероятно.

Меня также смущает, что вы имеете в виду, когда не видите никаких библиотек JNI.Это все в флягах.Мы используем javacpp (который мы также поддерживаем) для управления этими вещами.Вы найдете эти библиотеки в ~ / .javacpp / cache - у вас не должно быть никаких причин их трогать.

Не могли бы вы уточнить, что вы там ищете?

Помимо этого, естьВам больше ничего не нужно делать.Я предполагаю, что что-то просто не загружается правильно.

Наш автономный pom работает из коробки: https://github.com/deeplearning4j/dl4j-examples/blob/master/standalone-sample-project/pom.xml - возможно, дважды проверьте это, то или перезагрузите.Я могу только предположить, что вы создали проект как-то не так.Файл -> Новый проект Maven должен быть всем, что вам нужно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...