ダウンロード:現在の安定バージョン(4.5.1)
MLPackは、他の言語にバインディングを備えた直感的で高速で柔軟なヘッダーのみのC ++機械学習ライブラリです。これは、ラパックへの機械学習アナログであることを意図しており、機械学習研究者向けの「スイスアーミーナイフ」としてさまざまな機械学習方法と機能を実装することを目指しています。
MLPackの軽量C ++実装により、展開に最適であり、C ++ノートブックを介したインタラクティブなプロトタイピングにも使用できます(MLPackのホームページではアクションで見られます)。
強力なC ++インターフェイスに加えて、MLPackはコマンドラインプログラム、Python Bindings、Julia Bindings、Go Bindings、R Bindingsも提供しています。
クイックリンク:
MLPackはオープンガバナンスモデルを使用し、Numfocusが財政的に後援しています。プロジェクトが開発者の時間、専門サービス、旅行、ワークショップ、その他のさまざまなニーズの支払いを支援するために、税控除可能な寄付をすることを検討してください。
調査またはソフトウェアでMLPackを使用している場合は、以下の引用を使用してMLPackを引用してください(Bibtex形式で与えられます):
@article{mlpack2023,
title = {mlpack 4: a fast, header-only C++ machine learning library},
author = {Ryan R. Curtin and Marcus Edel and Omar Shrit and
Shubham Agrawal and Suryoday Basak and James J. Balamuta and
Ryan Birmingham and Kartik Dutt and Dirk Eddelbuettel and
Rishabh Garg and Shikhar Jaiswal and Aakash Kaushik and
Sangyeon Kim and Anjishnu Mukherjee and Nanubala Gnana Sai and
Nippun Sharma and Yashwant Singh Parihar and Roshan Swain and
Conrad Sanderson},
journal = {Journal of Open Source Software},
volume = {8},
number = {82},
pages = {5026},
year = {2023},
doi = {10.21105/joss.05026},
url = {https://doi.org/10.21105/joss.05026}
}
引用は、MLPackの成長と改善に有益です。
MLPackには、次の追加依存関係が必要です。
STBライブラリヘッダーが利用可能な場合、画像の読み込みサポートが利用可能になります。
Armadilloを手でコンパイルしている場合は、LapackとBlasが有効になっていることを確認してください。
詳細なインストール手順は、MLPackのインストールページにあります。
ヘッダーがmake installでインストールされると、アプリケーションでMLPackを使用することは、それを含めることのみで構成されます。したがって、プログラムにはmlpackを含める必要があります。
# include < mlpack.hpp >リンクするときは、必ずアルマジロに対してリンクしてください。サンプルプログラムがmy_program.cppの場合、コンパイラはGCCであり、OpenMPサポート(推奨)でコンパイルし、次のようにコンパイルします。
g++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmpニューラルネットワークをシリアル化(保存またはロードする)場合は、 <mlpack.hpp>を含める前に#define MLPACK_ENABLE_ANN_SERIALIZATIONを追加する必要があることに注意してください。 MLPACK_ENABLE_ANN_SERIALIZATIONを定義しないと、コードがニューラルネットワークをシリアル化すると、コンパイルエラーが発生します。
参照:
Makefile sを使用して、リポジトリリポジトリの例。MLPackはテンプレートが多いライブラリであり、ケアが使用されない場合、プロジェクトの編集時間は非常に高くなる可能性があります。幸いなことに、編集時間を短縮する方法はいくつかあります。
<mlpack.hpp>ではなく、1つのコンポーネントのみを使用している場合、 <mlpack/methods/decision_tree.hpp>などの個別のヘッダーを含めます。これにより、コンパイラがしなければならない作業の量が減ります。
コード内のニューラルネットワークをシリアル化している場合のみ、 MLPACK_ENABLE_ANN_SERIALIZATION定義を使用してください。この定義が有効になると、コンパイラが可能なすべてのタイプのレイヤーに対してコードを生成する必要があるため、コンパイル時間は大幅に増加します。 (大量の追加のコンピレーションオーバーヘッドが、これがデフォルトで有効にされていない理由です。)
複数の.cppファイルでMLPackを使用している場合は、コンパイラが各テンプレートを1回のみインスタンス化するように、 extern templatesを使用することを検討してください。 .cppファイルで使用する各mlpackテンプレートタイプの明示的なテンプレートインスタンス化を追加し、他の場所でextern定義を使用して、コンパイラに別のファイルに存在することを知らせます。
事前コンパイルされたヘッダー、コンパイラオプション、 ccacheなど、他の戦略も存在します。
インストール命令セクションを参照してください。
ユーザーと開発者の両方がより多くのドキュメントを利用できます。
短期および中期の将来におけるMLPackの開発目標について学ぶには、ビジョン文書を参照してください。
問題がある場合、バグを見つけ、ヘルプが必要な場合は、MLPackヘルプページまたはGitHubのMLPackにアクセスしてみてください。あるいは、mlpackヘルプは#mlpackのマトリックスで見つけることができます。コミュニティページも参照してください。