简体   繁体   English

DeepLearning4J NoSuchMethodError

[英]DeepLearning4J NoSuchMethodError

I'm new to neural networks and NLP. 我是神经网络和NLP的新手。 I've found this library: DeepLearning4J. 我找到了这个库:DeepLearning4J。 I'm trying to get it to work but whenever I execute this instruction: 我试图使其正常工作,但是每当我执行以下指令时:

Collection<String> similar = vec.wordsNearest("word_to_search", 10);

If the word I'm searching is mapped into the network I get the following exception: 如果我要搜索的单词映射到网络中,则会出现以下异常:

java.lang.IllegalArgumentException: XERBLA: Error on argument 6 (LDA) in SGEMV
at org.jblas.NativeBlas.sgemv(Native Method)
at org.nd4j.linalg.jblas.blas.JblasLevel2.sgemv(JblasLevel2.java:25)
at org.nd4j.linalg.api.blas.impl.BaseLevel2.gemv(BaseLevel2.java:53)
at org.nd4j.linalg.api.ndarray.BaseNDArray.mmuli(BaseNDArray.java:2569)
at org.nd4j.linalg.api.ndarray.BaseNDArray.mmul(BaseNDArray.java:2377)
at org.deeplearning4j.models.embeddings.wordvectors.WordVectorsImpl.wordsNearest(WordVectorsImpl.java:290)
at org.deeplearning4j.models.embeddings.wordvectors.WordVectorsImpl.wordsNearest(WordVectorsImpl.java:337)
at word2vec.Word2VecTest.main(Word2VecTest.java:74)
Exception in thread "main" java.lang.NoSuchMethodError: org.nd4j.linalg.api.ndarray.INDArray.mean(I)Lorg/nd4j/linalg/api/ndarray/INDArray;
at org.deeplearning4j.models.embeddings.wordvectors.WordVectorsImpl.wordsNearest(WordVectorsImpl.java:283)
at word2vec.Word2VecTest.main(Word2VecTest.java:89)

I know that the NoSuchMethodError may be due to libraries different versions. 我知道NoSuchMethodError可能是由于库的版本不同。 In this specific case, this is probably caused by nd4j. 在此特定情况下,这可能是由nd4j引起的。 I've checked the versions lots of time and this is what I'm importing at the moment: 我已经检查了很多版本,这是我目前要导入的内容:

  • akka-actor_2.11-2.4-M3.jar 阿卡 - actor_2.11-2.4-M3.jar
  • akka-cluster_2.11-2.4-M3.jar 阿卡 - cluster_2.11-2.4-M3.jar
  • akka-remote_2.11-2.4-M3.jar 阿卡 - remote_2.11-2.4-M3.jar
  • akka-slf4j_2.11-2.4-M3.jar 阿卡 - slf4j_2.11-2.4-M3.jar
  • byte-buddy-0.6.15.jar 字节哥们,0.6.15.jar
  • config-1.3.0.jar 配置-1.3.0.jar
  • deeplearning4j-core-0.0.3.3.4.alpha2.jar deeplearning4j核心,0.0.3.3.4.alpha2.jar
  • deeplearning4j-nlp-0.0.3.3.4.alpha2.jar deeplearning4j-NLP-0.0.3.3.4.alpha2.jar
  • deeplearning4j-scaleout-akka-0.0.3.3.4.alpha2.jar deeplearning4j-scaleout - 阿卡 - 0.0.3.3.4.alpha2.jar
  • deeplearning4j-ui-0.0.3.3.4.alpha2.jar deeplearning4j-UI-0.0.3.3.4.alpha2.jar
  • javassist-3.12.1.GA.jar Javassist进行-3.12.1.GA.jar
  • jblas-1.2.4.jar jblas-1.2.4.jar
  • jcublas-6.5.jar jcublas-6.5.jar
  • lucene-analyzers-common-4.10.3.jar Lucene的 - 分析 - 共4.10.3.jar
  • lucene-core-4.10.3.jar Lucene的核心 - 4.10.3.jar
  • nd4j-api-0.4-rc3.4.jar nd4j-API-0.4-rc3.4.jar
  • nd4j-bytebuddy-0.4-rc3.4.jar nd4j-bytebuddy-0.4-rc3.4.jar
  • nd4j-jblas-0.4-rc3.4.jar nd4j-jblas-0.4-rc3.4.jar
  • nd4j-jcublas-common-0.4-rc3.4.jar nd4j-jcublas,共0.4 rc3.4.jar
  • netty-3.10.4.Final.jar 网状-3.10.4.Final.jar
  • protobuf-java-2.6.1.jar 的protobuf-java的2.6.1.jar
  • reflections-0.9.10.jar 反射,0.9.10.jar
  • scala-library-2.12.0-M2.jar 斯卡拉库-2.12.0-M2.jar
  • selenium-server-standalone-2.47.1.jar 硒的服务器独立,2.47.1.jar

Can someone explain to me the problem? 有人可以向我解释问题吗?

The error is telling you that DeepLearning4J tried to call the method INDArray INDArray.mean(int value) but this method was not found. 该错误告诉您DeepLearning4J尝试调用方法INDArray INDArray.mean(int value)但未找到此方法。

Looking at nd4j 0.4-rc3.4 source code , you can see that the mean method actually takes a vararg int... as input. 查看nd4j 0.4-rc3.4源代码 ,您可以看到mean方法实际上将vararg int...作为输入。 Since this is not int , the error is thrown. 由于这不是int ,因此会引发错误。

This change was made by this commit when nd4j bumped version from 0.0.3.5.5.5 to 0.4-rc0 . nd4j版本从0.0.3.5.5.50.4-rc0时,通过此提交进行了更改。

As a result, you need to downgrade nd4j to version 0.0.3.5.5.5 . 结果,您需要将nd4j降级到0.0.3.5.5.5版本。 With this downgrade, you will not have any more incompatibility since this is the actual version that DeepLearning4J is depending on. 降级后,您将不再有任何不兼容性,因为这是DeepLearning4J所依赖的实际版本。 You can see that in the Maven dependencies of deeplearning4j-core-0.0.3.3.4.alpha2 . 您可以在deeplearning4j-core-0.0.3.3.4.alpha2的Maven依赖项中看到这deeplearning4j-core-0.0.3.3.4.alpha2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM