web-dev-qa-db-ja.com

オープンソースニューラルネットワークライブラリ

オープンソースのニューラルネットワークライブラリを探しています。これまで、FANN、WEKA、およびOpenNNを見てきました。私が見るべき他のものはありますか?基準は、もちろん、ドキュメント、例、使いやすさです。

62
Loozie

最終更新:2019/01/07(この回答は随時更新します...)

ニューラルネットワークの簡単な実装

  • [〜#〜] fann [〜#〜] はC/C++で非常に人気のある実装であり、他の多くの言語のバインディングがあります。
  • WEKAにはニューラルネットワークの実装があまり良くないと思います。 Java(およびC#): Encog のためのより良いライブラリがあります。
  • Scikit-learn(Python)0.18(現在の開発バージョン)には、フィードフォワードニューラルネットワークの実装があります( APIドキュメント )。
  • そして、 OpenANNDocumentation )と呼ばれる自分のプロジェクトに言及する必要があります。 C++で記述されており、Pythonバインディングがあります。

深層学習

現在、ニューラルネットワークは非常に人気があるため(「ディープラーニング」)、多くの研究ライブラリが利用可能です。それらのほとんどは、セットアップ、統合、使用が簡単です。上記のライブラリほど簡単ではありませんが。最先端の機能と高性能(GPUなど)を提供します。これらのライブラリのほとんどには、自動区別もあります。新しいアーキテクチャや損失関数などを簡単に指定でき、逆伝播を手動で指定する必要はありません。

  • Keras は、私の意見ではこのカテゴリーの最高です:使いやすく、強力で、積極的に開発されています。 TensorflowTheano 、および [〜#〜] cntk [〜#〜] をバックエンドとして使用できます。
  • TensorFlow Googleから(C++/Python)
  • [〜#〜] cntk [〜#〜] Microsoftから(Python/C++/C#/ Java/Pythonでの評価)でトレーニング)
  • Caffe Berkeley Vision and Learning Center with C++ with Python bindings
  • PyTorch PythonのFacebookから、C/C++で拡張可能
  • mxnet (C++、Python、R、Scala、Julia、Matlab、Javascript)
  • ブロック Theano(Python)に基づく
  • Neon Intel Nervanaが提供する非常に効率的な実装(Python)
  • Deeplearning4j (Java)
  • Chainer (Python)
  • MatConvNet (Matlab)
  • PaddlePaddle CUDA/C++のBaiduでPythonバインディング
  • NNabla SonyのCuda/C++ 11でPythonバインディングを使用

GPUで高速化されたライブラリのパフォーマンス比較は here (残念ながら少し時代遅れです)にあります。 GPUとライブラリバージョンの比較は こちら にあります。

非アクティブ:

59
alfa

パラメータの共有やさまざまなタイプの畳み込みアーキテクチャの作成など、ネットワーク構成の定義に柔軟性が必要な場合は、Torchライブラリのファミリーをご覧ください: http://www.torch.ch/

Torch 7のドキュメントはまだ読んでいませんが、他のバージョンのドキュメントはかなりまともで、コードは非常に読みやすくなっています(LuaとC++で)。

5
user1149913

Accord.netフレームワークを使用できます。 http://accord-framework.net/

これには、Levenberg-Marquardt、Parallel Resilient Backpropagation、Nguyen-Widrow初期化アルゴリズム、Deep Belief Networks、Restrictured Boltzmann Machines、およびその他の多くのニューラルネットワーク関連アイテムなどのニューラル学習アルゴリズムが含まれています。

3
turgay

Netlab は、一般的に使用されるMatlabライブラリです。 (無料でオープンソース)

Netlabツールボックスは、理論的に十分に確立されたニューラルネットワークアルゴリズムのシミュレーションに必要な中心的なツールと、教育、研究、およびアプリケーション開発で使用する関連モデルを提供するように設計されています。複雑系の数学の研究により修士課程で広く使用されています。

Netlabライブラリには、幅広いデータ分析技術のソフトウェア実装が含まれています。その多くは、標準のニューラルネットワークシミュレーションパッケージではまだ利用できません。 Netlabは、Matlabバージョン5.0以降で動作しますが、コアMatlabのみが必要です(つまり、他のツールボックスは不要です)。 Matlabの以前のバージョンとは互換性がありません。

2