Java Deeplearning4j示例不适用于gradle

Java Deeplearning4j示例不适用于gradle,java,eclipse,gradle,deeplearning4j,nd4j,Java,Eclipse,Gradle,Deeplearning4j,Nd4j,我正在尝试运行来自deeplearning4j示例的CnnSentenceClassification。我把这个文件移到了我的Gradle项目中。当我从eclipse运行这个类时,它工作得很好。但是,当我从/gradlew run运行它时,我得到以下错误: Exception in thread "main" java.lang.ExceptionInInitializerError at main.CnnSentenceClassification.main(CnnSentenceClass

我正在尝试运行来自deeplearning4j示例的
CnnSentenceClassification
。我把这个文件移到了我的Gradle项目中。当我从eclipse运行这个类时,它工作得很好。但是,当我从
/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后端具有测试范围。nd4j后端从来都不是可选的。


错误就在消息中。我们甚至在堆栈跟踪中提供了一个带有解释的链接。

我也遇到了同样的问题。希望它能为其他人节省时间

您需要一个ND4J后端,这意味着只需在项目的pom中包含以下依赖项:

<dependency>
    <groupId>org.nd4j</groupId>
    <artifactId>nd4j-native</artifactId>
    <version>0.9.1</version>
</dependency>
本机后端使用CPU进行计算。 支持CUDA的图形卡还有另一个依赖项

我发现这个链接很有用:

非常感谢您的回答。我知道ND4j不是可选的。但问题是为什么它在eclipse中工作?我没有单独安装ND4j。我已经告诉过你了。这是因为您有nd4j依赖项(强调的不是API nd4j本机大写),所以您误用了nd4j。nd4j后端不应该是测试依赖项。非常感谢。已经修好了,链环断了。这将是伟大的解释,而不是张贴一个链接。ThanksIt如果能够获得关于这个“后端”想法的一些信息,而不必从“Ndarray:它们如何存储在内存中?”开始研究nd4j的整个概念,那就更好了。我只想用deeplearning4j来训练一些模型,而不是花上几天来研究nd4j。(即使在添加了nd4j native等之后,我也没有后端)正如他在问题中所说的,他使用Gradle提供Maven链接并没有太大帮助。试试这个:编译“org.nd4j:nd4j native:0.9.1”,或者访问Maven存储库(在其他构建系统中,Gradle和Maven都在那里):
<dependency>
    <groupId>org.nd4j</groupId>
    <artifactId>nd4j-native</artifactId>
    <version>0.9.1</version>
</dependency>
compile "org.nd4j:nd4j-native:0.9.1"