オープンソースのニューラル ネットワーク ライブラリを探しています。これまで、FANN、WEKA、および OpenNN を見てきました。私が見るべき他のものはありますか?もちろん、基準はドキュメント、例、使いやすさです。
4 に答える
最終更新: 2020/03/24 (この回答は随時更新します...)
ニューラル ネットワークの簡単な実装
- FANNは C/C++ で非常に一般的な実装であり、他の多くの言語のバインディングがあります。
- scikit-learn (Python) 0.18 (現在の開発バージョン) では、フィードフォワード ニューラル ネットワークが実装されます ( API ドキュメント)。
- そして、 OpenANN ( Documentation )と呼ばれる私自身のプロジェクトについて言及する必要があります。C++ で書かれており、Python バインディングがあります。
ディープラーニング
現在、ニューラル ネットワークは研究や業界で非常に人気があるため (「ディープ ラーニング」)、多くの研究用ライブラリが利用可能です。それらのほとんどは、セットアップ、統合、および使用が簡単です。上記のライブラリほど簡単ではありませんが。最先端の機能と高性能 (GPU などを使用) を提供します。これらのライブラリのほとんどには、自動微分機能もあります。新しいアーキテクチャ、損失関数などを簡単に指定でき、バックプロパゲーションを手動で指定する必要はありません。
- Googleの TensorFlow (C++/Python)
- Python の Facebook のPyTorchは、C/C++ で拡張できます。
- mxnet (C++、Python、R、Scala、Julia、Matlab、Javascript)
- ディープラーニング4j (Java)
- Microsoftの CNTK (Python でのトレーニング / C++/C#/Java/Python での評価)
- チェイナー(Python)
- Python バインディングを使用した CUDA/C++ の Baidu のPaddlePaddle
- Python バインディングを使用した Cuda/C++11 の Sony のNNabla
GPU で高速化されたライブラリのパフォーマンス比較は、こちらで確認できます(残念ながら少し古くなっています)。GPU とライブラリ バージョンの比較については、こちらを参照してください。
非活性:
- Keras : Tensorflow、Theano、およびCNTKをバックエンドとして使用できます。(現在、その高レベル インターフェースとして tensorflow の一部です。)
- Python バインディングを使用した C++ の Berkeley Vision and Learning Center のCaffe
- Darknet : C の CNN。YOLO オブジェクト検出器の実装で知られています。
- Intel Nervana のNeonは非常に効率的な実装を提供します (Python)
- MatConvNet (Matlab)
- Theano (Python) とその高レベル API:
- パイラーン 2
- テアネット
- scikit-ニューラルネットワーク
- ラザニア
- Theano に基づくブロック(Python)
- Python バインディングを使用した CUDA/C++の cuda-convnet2
- ヘーベル(パイソン)
- Python バインディングを使用した C++ の Facebook のCaffe2 。PyTorch に参加しました
- Torch 7 のニューラル ネットワーク(Lua、Torch 7 は「Matlab のような環境」、Torch の機械学習アルゴリズムの概要)
- PyBrain (Python) には、さまざまな種類のニューラル ネットワークとトレーニング方法が含まれています。
- Encog (Java および C#)
パラメータの共有やさまざまなタイプの畳み込みアーキテクチャの作成など、ネットワーク構成の定義に柔軟性が必要な場合は、Torch ライブラリのファミリを参照する必要があります: http://www.torch.ch/。
Torch 7 のドキュメントはまだ読んでいませんが、他のバージョンのドキュメントはかなりまともで、コードは非常に読みやすいです (Lua と C++)。
accord.net フレームワークを使用できます。http://accord-framework.net/
これには、Levenberg-Marquardt、Parallel Resilient Backpropagation、Nguyen-Widrow 初期化アルゴリズム、Deep Belief Networks、Restrictured Boltzmann Machines、その他多くのニューラル ネットワーク関連アイテムなどのニューラル学習アルゴリズムが含まれています。
Netlabは、一般的に使用される Matlab ライブラリです。(無料でオープンソース)
Netlab ツールボックスは、教育、研究、およびアプリケーション開発で使用するための、理論的に十分に確立されたニューラル ネットワーク アルゴリズムおよび関連モデルのシミュレーションに必要な中心的なツールを提供するように設計されています。複雑系の数学の研究により、修士課程で広く使用されています。
Netlab ライブラリには、さまざまなデータ分析手法のソフトウェア実装が含まれていますが、その多くは標準のニューラル ネットワーク シミュレーション パッケージではまだ利用できません。Netlab は Matlab バージョン 5.0 以降で動作しますが、コアの Matlab のみが必要です (つまり、他のツールボックスは必要ありません)。以前のバージョンの Matlab とは互換性がありません。