2016-05-13 96 views
3

我們正在使用神經網絡開發一個Java項目。我們想在我們的數據集上測試不同的網絡結構。現在我們評估哪些Java神經網絡在性能方面最好。我們正在評估Encog,Neuroph和DL4J。你能告訴我們一些好的資源或你自己的經驗嗎? 感謝性能Encog vs Deeplearning4J

回答

6

Deeplearning4j創作者在這裏:

  • Encog是在90年代初寫的傑夫·希頓,並在很長的時間標準的Java DL框架。我不相信Encog處理分佈式計算,可以與GPU,Hadoop,Spark或Kafka一起工作,或者自2006年以來考慮到DL中許多算法的進步。(傑夫,如果我錯了,請糾正我)

  • Deeplearning4j完成所有這些事情。它適用於使用Spark作爲訪問層的分佈式CPU或GPU。它已經通過CDH5認證,並很快通過HDP認證......它包括LSTM(RNN),深度卷積網絡,RBM,DBN和word2vec以及其他神經網絡的實現。它是目前最流行的用於JVM的DL工具,也是全球排名前五的DL庫之一。

  • Deeplearning4j由數值計算庫ND4J或用於Java的n維數組驅動。基本上,我們將Numpy移植到JVM。這使DL4J具有可擴展性,並且您會看到我們在不久的將來添加了其他算法,如強化學習。反過來,ND4J在libND4J上運行,這是一個使計算速度更快的C++庫。我們還構建了矢量化庫Canova,它可以處理任何類型的數據,並將其轉換爲神經網絡可以理解的矢量。我們正試圖解決神經網絡上游的一些ETL問題。

  • Neuroph有很強的可視化,但我不能判斷他們框架的其餘部分,所以我會讓他們爲自己說話!

    http://deeplearning4j.org

    https://github.com/deeplearning4j

    https://github.com/deeplearning4j/nd4j

    https://github.com/deeplearning4j/libnd4j

有在Deeplearning4j的Gitter的用戶支持渠道近2000個開發者。請有加入我們,如果您有任何疑問:

https://gitter.im/deeplearning4j/deeplearning4j

1

我只有在Java世界Deeplearning4j和Encog一些經驗,我認爲這完全取決於你的目標是什麼。 Deeplearning4j無疑是2中最複雜的框架;它有很棒的工具,它可以與GPU一起工作,它支持像LSTM和卷積NN這樣的東西,它已經被設置用於分佈式培訓等。 雖然它既複雜又酷,它也可以是一個PITA。當主頁希望您使用特定的IDE並指向冗長的依賴項目的安裝指南時,您知道它不會非常簡單。 但它是值得的,如果你需要它。

這就是說,在某些情況下,Encog仍然有很多需要說明的地方。它非常容易與任何Java項目集成;它只是一個.jar包含和離開你去。 它非常快速並且非常高效地使用您的CPU內核,它有一個非常好的和易於理解的API。如果你需要一個Java庫來高效地實現一個前饋NN,或者如果你想了解更多關於機器學習的知識,我不能推薦Encog。 當你碰到Encog的限制時,試試Deeplearning4j或者看看java之外的東西,然後嘗試類似Tensorflow(它也有一些Java支持)。

0

我可以告訴你我的經驗。

早在2015年,我一直在尋找一個優秀的深度學習Java框架。經過最初的研究後,我遇到了Encog。我很快意識到它缺乏現代神經網絡的許多組件,即它已經過時了,而且即使設置它也有很多麻煩(它不是很靈活)。順便說一句,它允許在CPU上進行並行計算。

所以我決定寫我自己的框架,我仍然使用和運作良好。然後我遇到了deeplearning4j,我可以告訴你它非常完整,計算速度非常快。我想說的是,如果你想看看15年前神祕的網絡框架使用Encog,否則沒有理由使用它,使用deeplearning4j,或嘗試一些python DL框架。

+0

順便說一句,也試過Neuroph當時...你不想使用它。 – Diego