私たちはニューラルネットワークを使ってJavaでプロジェクトを進めています。我々は、我々のデータセット上の異なるネットワーク構造をテストしたい。ここでは、Java Neural Networksのどれがパフォーマンス面で最適かを評価します。 Encog、Neuroph、DL4Jを評価しています。あなたはこれについていくつかの良い資源やあなた自身の経験を教えてもらえますか? おかげパフォーマンスEncog対Deeplearning4J
答えて
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ツールであり、世界の上位5 DLライブラリの1つです。
Deeplearning4jは、数値計算のlib ND4J、またはJavaのn次元配列によって供給されます。基本的には、NumpyをJVMに移植しました。これにより、DL4Jは拡張可能になります。近い将来、補強学習のような他のアルゴを追加することができます。 ND4Jは、計算を高速化するC++ライブラリlibND4Jで動作します。また、ベクター化ライブラリCanovaを構築しました。これは、あらゆるタイプのデータを取り込んで、ニューラルネットが理解できるベクトルに変換します。私たちは、NNから上流のいくつかのETL問題を解決しようとしています。
Neurophは強力な視覚化機能を備えていますが、残りのフレームワークを判断する立場にはありません。
https://github.com/deeplearning4j
ギッターにDeeplearning4jのユーザーサポートチャネルで約2000の開発者があります。
は、私が唯一のJavaの世界でDeeplearning4jとEncogといくつかの経験を持っている、と私はそれが非常にあなたの目標が何であるかに依存だと思う:あなたが質問がある場合はそこにご参加ください。 Deeplearning4jは確かに2の最も洗練されたフレームワークです。それはGPUで動作し、LSTMや畳み込みNNのようなものをサポートしています。すでに分散トレーニングなどのために設定されています。 しかし、それは洗練されていて涼しいので、PITAでもかまいません。ホームページでは、特定のIDEを使用して、依存しているプロジェクトの長いインストールガイドを指示すると、それほど簡単ではないことがわかります。 しかし、それが必要な場合はそれの価値があります。
しかし、いくつかのケースでは、まだEncogのために言わなければならないことがたくさんあります。それは非常に簡単にすべてのJavaプロジェクトと統合します。それは含まれていて、あなたから離れているただ1つの.jarです。 非常に高速で、CPUコアを非常に効率的に使用しています。とても使いやすく、わかりやすいAPIを備えています。フィードフォワードNNを効率的に実装するためにJavaライブラリが必要な場合や、機械学習の一般的な使い方について少し学びたい場合は、Encogを十分にお勧めできません。 Encogの制限に遭遇したときは、Deeplearning4jを試してみるか、Javaを少し超えて見て、Tensorflow(Javaのサポートもあります)のようなものを試してみてください。
私はあなたに私の経験を伝えることができます。
2015年には、Deep Learningのための優れたJavaフレームワークを探していました。最初の研究の後、私はEncogを訪れました。私はすぐに現代のニューラルネットの多くの構成要素が欠けていることを認識しました。つまり、それはかなり時代遅れであり、私はそれを設定してもそれほど柔軟性がありませんでした。 BtwではCPUの並列計算が可能です。
私は自分のフレームワークを書くことにしました。これは私がまだ使用していて、うまく機能しています。それから、私はdeeplearning4jに出くわしました、そして、私はそれが非常に完全であり、非常に速い計算をしていることをあなたに伝えることができます。私は、15年前に戻ってきた神経回路網のフレームワークがEncogを使用しているかどうかを見たいと思ったら、それを使用する理由はありません。 deeplearning4jを使用するか、Python DLフレームワークを試してみてください。
- 1. Joone対Encog - プロダクションアプリ
- 2. Neuroph Vs Encog
- 3. Encog Simulated Annealing Parameters
- 4. encog RBFトレーニング
- 5. はdeeplearning4Jへ
- 6. deeplearning4j:オンラインWord2Vecトレーニング
- 7. Deeplearning4j LSTM例
- 8. Deeplearning4J Androidの例
- 9. GRU in DeepLearning4J
- 10. kcov対lcov対生のパフォーマンス?
- 11. Deeplearning4jニューラルネットの設定
- 12. deeplearning4j word2vec出力wordvectors
- 13. Go:Seek + Write対WriteAtパフォーマンス
- 14. ESENTパフォーマンスVista対XP
- 15. SPI対PLPGSQLのパフォーマンス
- 16. jQuery.getScript対yepnopeのパフォーマンス
- 17. aspx対htmlのパフォーマンス
- 18. S3対EBSのパフォーマンス
- 19. Java EncogのOpenCLバックエンド3
- 20. encogフレームワークベンチで始める
- 21. serialize java encog network to database
- 22. 2D描画パフォーマンス(SlimDX対GDI +)
- 23. aws ELB対ALBレビュー:パフォーマンス、レジリアンス
- 24. SCAN対RedisのKEYSパフォーマンス
- 25. Selenium Webdriverのパフォーマンス対時間
- 26. エンティティフレームワーク4.1対エンタープライズデータアプリケーションブロック最大パフォーマンス
- 27. CLR 2.0対4.0のパフォーマンス?
- 28. x86-64相対jmpパフォーマンス
- 29. Mvc RenderActionのパフォーマンス対RenderPartial
- 30. System.Data.Sqlite(C#)対Sqlite(C)のパフォーマンス
BtwもNeurophを試してみました。あなたはそれを使いたくないです。 – Diego