проблема при запуске примера deeplearning4J

Я изучаю глубокое обучение и использую deeplearning4J tuts. Но когда я запускаю пример кода, возникает какая-то проблема:

введите описание изображения здесь

Caused by: java.lang.UnsatisfiedLinkError: no jnind4j 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:727)
    at org.bytedeco.javacpp.Loader.load(Loader.java:502)
    at org.nd4j.nativeblas.NativeOps.<clinit>(NativeOps.java:37)
    ... 18 more

Я пробовал некоторые решения в Интернете, но они не работают. Итак, если вы знаете, как это исправить, помогите мне.


person Phước Hữu Lưu    schedule 26.10.2016    source источник


Ответы (3)


Вам нужно где-нибудь распаковать cuda-9.1-7.1-1.4.1-windows-x86_64.jar и nd4j-cuda-9.1-1.0.0-beta-windows-x86_64.jar и добавить пути к собственным dll в свойство java.library.path при запуске приложения.

Например:

-Djava.library.path=C:\<path where you unzipped>\cuda-9.1-7.1-1.4.1-windows-x86_64\org\bytedeco\javacpp\windows-x86_64;C:\<path where you unzipped>\nd4j-cuda-9.1-1.0.0-beta-windows-x86_64\org\nd4j\nativeblas\windows-x86_64
person Edy Bourne    schedule 20.06.2018

У меня такая же проблема. Но проблема заключалась в том, что я использовал неправильный импорт, nd4j-native. Вместо этого я использовал импорт nd4j-native-platform, и это устранило проблему. Надеюсь, это поможет.

person Aromadz    schedule 01.08.2017
comment
Где вы использовали импорт nd4j-native-platform? - person Saurabh7; 13.01.2020

Я постараюсь ответить на этот вопрос здесь, но обычно именно здесь чат пригодится (много вопросов о вашем окружении и то и дело здесь ...)

Я бы попытался ответить на этот вопрос здесь, но собственный код (особенно с примерами) должен работать нормально.

Вы также можете попробовать зарегистрировать проблему: https://github.com/deeplearning4j/dl4j-examples/issues

А пока ознакомьтесь с тем, что такое бэкэнд nd4j: http://nd4j.org/backend.html

Это ДОЛЖНО быть единственной зависимостью, которую вам нужно запустить: http://search.maven.org/#artifactdetails%7Corg.nd4j%7Cnd4j-native-platform%7C0.6.0%7Cjar

Примеры выходят из коробки для всех, с кем мы говорили.

Вы, кажется, не делаете ничего необычного.

Альтернативой может быть использование собственного идентификатора артефакта nd4j с соответствующим классификатором.

Здесь вы изменяете серверную часть nd4j: https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/pom.xml#L64

Вы можете попробовать просто избавиться от этого и заменить его одним из идентификаторов артефактов, о которых я вам говорил. Если это не поможет, я бы порекомендовал зайти в gitter.

Войдите в gitter: https://gitter.im/deeplearning4j/deeplearning4j

для помощи в реальном времени.

person Adam Gibson    schedule 26.10.2016