Download: Aktuelle stabile Version (4.5.1)
MLPack ist eine intuitive, schnelle und flexible C ++ -Bibliothek mit C ++ maschinell mit Bindungen an andere Sprachen. Es soll ein maschinelles Lernen analog zu Lapack sein und zielt darauf ab, eine Vielzahl von Methoden und Funktionen für maschinelles Lernen und Funktionen als "Schweizer Armeemesser" für Forscher für maschinelles Lernen zu implementieren.
Die leichte C ++ - Implementierung von MLPack macht es ideal für die Bereitstellung und kann auch zur interaktiven Prototyping über C ++ - Notebooks verwendet werden (diese können in Aktion auf der Homepage von MLPack angezeigt werden).
Zusätzlich zu ihrer leistungsstarken C ++-Schnittstelle bietet MLPack auch Befehlszeilenprogramme, Python-Bindungen, Julia-Bindungen, GO-Bindungen und R-Bindungen.
Schnelle Links:
MLPack verwendet ein offenes Governance -Modell und wird von Numfocus finanziell gesponsert. Erwägen Sie, eine steuerlich absetzbare Spende zu leisten, um das Projekt für Entwicklerzeiten, professionelle Dienstleistungen, Reisen, Workshops und eine Vielzahl anderer Bedürfnisse zu unterstützen.
Wenn Sie MLPack in Ihrer Forschung oder Software verwenden, zitieren Sie mlPack mithilfe des folgenden Zitats (angegeben im Bibtex -Format):
@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}
}
Zitate sind für das Wachstum und die Verbesserung von MLPack von Vorteil.
MLPack benötigt die folgenden zusätzlichen Abhängigkeiten:
Wenn die STB -Bibliotheksheader verfügbar sind, ist die Unterstützung für die Bildladevorstellung verfügbar.
Wenn Sie Armadillo von Hand zusammenstellen, stellen Sie sicher, dass Lapack und Blas aktiviert sind.
Detaillierte Installationsanweisungen finden Sie auf der Installations -MLPack -Seite.
Sobald die Header mit make install installiert sind, besteht die Verwendung von MLPack in einer Anwendung nur davon. Ihr Programm sollte also MLPack enthalten:
# include < mlpack.hpp > Und wenn Sie verlinken, verlinken Sie unbedingt mit Armadillo. Wenn Ihr Beispielprogramm my_program.cpp ist, ist Ihr Compiler GCC, und Sie möchten mit OpenMP -Support (empfohlen) und Optimierungen kompilieren, kompilieren Sie wie folgt:
g++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmp Beachten Sie, dass Sie, wenn Sie neuronale Netzwerke serialisieren (speichern oder laden) möchten, #define MLPACK_ENABLE_ANN_SERIALIZATION hinzufügen sollten, bevor Sie <mlpack.hpp> einbeziehen. Wenn Sie MLPACK_ENABLE_ANN_SERIALIZATION nicht definieren und Ihr Code ein neuronales Netzwerk serialisiert, tritt ein Kompilierungsfehler auf.
Siehe auch:
Makefile s.MLPack ist eine vorlagenlastige Bibliothek, und wenn keine Sorgfalt verwendet wird, kann die Kompilierungszeit eines Projekts sehr hoch sein. Glücklicherweise gibt es eine Reihe von Möglichkeiten, um die Kompilierungszeit zu verkürzen:
Geben Sie einzelne Header wie <mlpack/methods/decision_tree.hpp> an, wenn Sie nur eine Komponente verwenden, anstelle von <mlpack.hpp> . Dies verringert die Arbeit, die der Compiler erledigen muss.
Verwenden Sie nur die Definition MLPACK_ENABLE_ANN_SERIALIZATION wenn Sie neuronale Netzwerke in Ihrem Code serialisieren. Wenn diese Definition aktiviert ist, erhöht sich die Kompilierungszeit erheblich, da der Compiler Code für jeden möglichen Schichttyp generieren muss. (Die große Menge an zusätzlichen Kompilierungsaufwand ist der Grund, warum dies standardmäßig nicht aktiviert ist.)
Wenn Sie MLPack in mehreren .CPP -Dateien verwenden, sollten Sie extern templates verwenden, damit der Compiler jede Vorlage nur einmal instanziiert. Fügen Sie für jeden MLPack -Vorlagen -Typ, den Sie in einer .cpp -Datei verwenden möchten, eine explizite Vorlage -Instanziierung hinzu und verwenden Sie dann extern Definitionen an anderer Stelle, um den Compiler mitzuteilen, dass sie in einer anderen Datei existiert.
Es gibt auch andere Strategien, wie Vorkompilierung von Header, Compiler -Optionen, ccache und andere.
Siehe Abschnitt "Installationsanweis".
Weitere Dokumentationen finden Sie sowohl für Benutzer als auch für Entwickler.
Das Vision-Dokument finden Sie in der kurz- und mittelfristigen Zukunft die Entwicklungsziele von MLPack.
Wenn Sie Probleme haben, einen Fehler finden oder Hilfe benötigen, können Sie versuchen, die MLPack -Hilfeseite oder MLPack auf GitHub zu besuchen. Alternativ ist die MLPack -Hilfe auf der Matrix bei #mlpack zu finden. Siehe auch die Community -Seite.