2015-09-25 79 views
2

我是神經網絡和NLP的新手。我找到了這個庫:DeepLearning4J。我試圖得到它的工作,但每當我執行該指令:如果我搜索的單詞映射到網絡我得到下面的異常DeepLearning4J NoSuchMethodError

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

​​67844042773956

我知道NoSuchMethodError可能是由於庫不同的版本。在這個特定情況下,這可能是由nd4j引起的。我檢查版本大量的時間,這是我目前進口什麼:

  • 阿卡 - actor_2.11-2.4-M3.jar
  • 阿卡 - cluster_2.11-2.4-M3的.jar
  • 阿卡-remote_2.11-2.4-M3.jar
  • 阿卡-slf4j_2.11-2.4-M3.jar
  • 字節好友-0.6.15.jar
  • 配置-1.3.0 .jar
  • deeplearning4j-core-0.0.3.3.4.alpha2.jar
  • deeplearning4j-NLP-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
  • 了Javassist-3.12.1.GA.jar
  • jblas-1.2.4.jar
  • jcublas-6.5.jar
  • 的lucene-分析器-共4.10.3.jar
  • lucene的-芯 - 4.10.3.jar
  • nd4j-api-0.4-rc3.4.jar
  • nd4j-bytebuddy-0.4-rc3.4.jar
  • nd4j-jblas-0.4-rc3.4.jar
  • nd4j-jcublas-共0.4 rc3.4.jar
  • 網狀-3.10 .4.Final.jar
  • 的protobuf-java的2.6.1.jar
  • 反射-0.9.10.jar
  • 的Scala庫-2.12.0-M2.jar
  • 硒的服務器獨立-2.47.1.jar

有人可以向我解釋這個問題嗎?

回答

3

錯誤是告訴你DeepLearning4J試圖調用方法INDArray INDArray.mean(int value),但未找到此方法。

看着nd4j 0.4-rc3.4 source code,您可以看到mean方法實際上將可變參數int...作爲輸入。由於這不是int,所以會引發錯誤。

此更改由this commit進行,當nd4j從​​碰撞到0.4-rc0時。

因此,您需要將nd4j降級至版本​​。由於這是DeepLearning4J所依賴的實際版本,因此降級後不會再有任何不兼容問題。你可以看到在deeplearning4j-core-0.0.3.3.4.alpha2的Maven依賴關係中。

+0

這正是問題所在。降級後,我不得不修復一些其他依賴項,但現在工作正常。有趣的是我原來有這個版本,我不記得我爲什麼升級。我花了無數小時試圖修復它,而且如果沒有你的幫助,我可能從未想過這件事。非常感謝你。 – Aurasphere