Скачать: текущая стабильная версия (4.5.1)
MLPACK -это интуитивно понятная, быстрая и гибкая библиотека машинного обучения только для заголовков с привязками с другими языками. Он предназначен для того, чтобы быть аналогом машинного обучения с Lapack, и направлен на реализацию широкого спектра методов и функций машинного обучения в качестве «швейцарского армейского ножа» для исследователей машинного обучения.
Легкая реализация C ++ от MLPACK делает его идеальным для развертывания, и его также можно использовать для интерактивного прототипирования с помощью ноутбуков C ++ (их можно увидеть в действии на домашней странице MLPACK).
В дополнение к мощному интерфейсу C ++, MLPACK также предоставляет программы командной строки, привязки Python, привязки Julia, привязки GO и R-привязки.
Быстрые ссылки:
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 и BLA включены.
Подробные инструкции по установке можно найти на странице установки MLPACK.
После установки заголовков с помощью make install , использование MLPACK в приложении состоит только из включения его. Итак, ваша программа должна включать MLPACK:
# include < mlpack.hpp > И когда вы ссылаетесь, обязательно связывайтесь против Armadillo. Если ваш пример программы - my_program.cpp , ваш компилятор - GCC, и вы хотели бы компилировать с поддержкой OpenMP (рекомендуется) и оптимизацией, компилируйте, как это:
g++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmp Обратите внимание, что если вы хотите сериализовать (сохранить или загружать) нейронные сети, вам следует добавить #define MLPACK_ENABLE_ANN_SERIALIZATION прежде чем включать <mlpack.hpp> . Если вы не определяете MLPACK_ENABLE_ANN_SERIALIZATION , и ваш код сериализует нейронную сеть, произойдет ошибка компиляции.
Смотрите также:
Makefile S.MLPACK-это библиотека с тяжелым шаблоном, и если осторожность не используется, время компиляции проекта может быть очень высоким. К счастью, есть ряд способов сократить время компиляции:
Включите отдельные заголовки, такие как <mlpack/methods/decision_tree.hpp> , если вы используете только один компонент, вместо <mlpack.hpp> . Это уменьшает объем работы, которую должен выполнять компилятор.
Используйте определение MLPACK_ENABLE_ANN_SERIALIZATION только, если вы сериализуете нейронные сети в своем коде. Когда это определение включено, время компиляции значительно увеличится, так как компилятор должен генерировать код для каждого возможного типа слоя. (Большое количество дополнительных накладных расходов на компиляцию - это то, почему это не включено по умолчанию.)
Если вы используете MLPACK в нескольких файлах .cpp, рассмотрите возможность использования extern templates , чтобы компилятор только экземпляры только один шаблон один раз; Добавьте явную экземпляр шаблона для каждого типа шаблона MLPACK, который вы хотите использовать в файле .CPP, а затем используйте extern определения в других местах, чтобы компилятор знал, что он существует в другом файле.
Существуют и другие стратегии, такие как предварительные заголовки, параметры компилятора, ccache и другие.
См. Раздел инструкции по установке.
Больше документации доступно как для пользователей, так и для разработчиков.
Чтобы узнать о целях развития MLPACK в краткосрочном и среднесрочном будущем, посмотрите документ Vision.
Если у вас есть проблемы, найдите ошибку или нужна помощь, вы можете попробовать посетить страницу справки MLPACK или MLPACK на GitHub. Альтернативно, MLPack Help можно найти на Matrix в #mlpack ; Смотрите также страницу сообщества.