Deeplearning4j 示例不适用于 gradle
Deeplearning4j example does not work with gradle
我正在尝试 运行 CnnSentenceClassification
来自 deeplearning4j 示例。我将此文件移动到我的 Gradle 项目中。当我 运行 来自 eclipse 的 class 时,它工作正常。但是,当我从 ./gradlew run
运行 它时,出现以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at
main.CnnSentenceClassification.main(CnnSentenceClassification.java:75)
Caused by: java.lang.RuntimeException:
org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException:
Please ensure that you have an nd4j backend on your classpath. Please
see: http://nd4j.org/getstarted.html
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6089)
at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)
... 1 more
Caused by:
org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException:
Please ensure that you have an nd4j backend on your classpath. Please
see: http://nd4j.org/getstarted.html
at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:258)
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6086)
... 2 more
我检查了一下 nd4j-api-0.9.1.jar
在我的 class 路径中。这是我的 build.gradle
:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'
repositories {
jcenter()
}
mainClassName="main.CnnSentenceClassification"
dependencies {
compile group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '0.9.1'
compile group: 'org.deeplearning4j', name: 'deeplearning4j-nlp', version: '0.9.1'
testCompile group: 'org.nd4j', name: 'nd4j-native-platform', version: '0.9.1'
compile group: 'org.nd4j', name: 'nd4j-api', version: '0.9.1'
compile "org.slf4j:slf4j-simple:1.7.25"
compile "org.slf4j:slf4j-api:1.7.25"
}
您在 nd4j 后端有测试范围。 nd4j 后端永远不是可选的。
https://nd4j.org/backend.html
错误就在消息中。我们甚至在堆栈跟踪中为您提供 link 和解释。
我遇到了同样的问题。您需要一个 ND4J 后端,这意味着更新您的依赖关系树。
对于 Maven 构建,将以下依赖项添加到项目的 pom:
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</artifactId>
<version>0.9.1</version>
</dependency>
对于 Gradle 构建,只需在依赖项中添加以下行:
compile "org.nd4j:nd4j-native:0.9.1"
本机后端使用 CPU 进行计算。
支持 CUDA 的显卡还有另一个依赖项。
我发现这个 link 很有帮助:
DL4J Performance Debugging
我正在尝试 运行 CnnSentenceClassification
来自 deeplearning4j 示例。我将此文件移动到我的 Gradle 项目中。当我 运行 来自 eclipse 的 class 时,它工作正常。但是,当我从 ./gradlew run
运行 它时,出现以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at
main.CnnSentenceClassification.main(CnnSentenceClassification.java:75)
Caused by: java.lang.RuntimeException:
org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException:
Please ensure that you have an nd4j backend on your classpath. Please
see: http://nd4j.org/getstarted.html
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6089)
at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)
... 1 more
Caused by:
org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException:
Please ensure that you have an nd4j backend on your classpath. Please
see: http://nd4j.org/getstarted.html
at org.nd4j.linalg.factory.Nd4jBackend.load(Nd4jBackend.java:258)
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6086)
... 2 more
我检查了一下 nd4j-api-0.9.1.jar
在我的 class 路径中。这是我的 build.gradle
:
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'
repositories {
jcenter()
}
mainClassName="main.CnnSentenceClassification"
dependencies {
compile group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '0.9.1'
compile group: 'org.deeplearning4j', name: 'deeplearning4j-nlp', version: '0.9.1'
testCompile group: 'org.nd4j', name: 'nd4j-native-platform', version: '0.9.1'
compile group: 'org.nd4j', name: 'nd4j-api', version: '0.9.1'
compile "org.slf4j:slf4j-simple:1.7.25"
compile "org.slf4j:slf4j-api:1.7.25"
}
您在 nd4j 后端有测试范围。 nd4j 后端永远不是可选的。 https://nd4j.org/backend.html
错误就在消息中。我们甚至在堆栈跟踪中为您提供 link 和解释。
我遇到了同样的问题。您需要一个 ND4J 后端,这意味着更新您的依赖关系树。
对于 Maven 构建,将以下依赖项添加到项目的 pom:
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</artifactId>
<version>0.9.1</version>
</dependency>
对于 Gradle 构建,只需在依赖项中添加以下行:
compile "org.nd4j:nd4j-native:0.9.1"
本机后端使用 CPU 进行计算。 支持 CUDA 的显卡还有另一个依赖项。
我发现这个 link 很有帮助: DL4J Performance Debugging