Я ищу библиотеку нейронных сетей с открытым исходным кодом. До сих пор я смотрел FANN, WEKA и OpenNN. Остальные, на что я должен смотреть? Критерии, конечно же, это документация, примеры и простота использования.
Библиотека нейронных сетей с открытым исходным кодом
Ответ 1
Последнее обновление: 2017/12/17 (время от времени я буду обновлять этот ответ...)
Стандартные реализации нейронных сетей
- FANN - очень популярная реализация в C/С++ и имеет привязки для многих других языков.
- Я думаю, что WEKA не имеет очень хорошей реализации для нейронных сетей. Существует лучшая библиотека для Java (и С#): Encog.
- В scikit-learn (Python) 0.18 (текущая версия разработки) появится реализация нейронных сетей с обратной связью (документация по API).
- PyBrain (Python) содержит различные типы нейронных сетей и методы обучения.
- И я должен упомянуть свой собственный проект, который называется OpenANN (Документация). Он написан на С++ и имеет привязки Python.
Глубокое обучение
Поскольку существует огромная шумиха вокруг нейронных сетей ( "глубокое обучение" ), существует множество доступных исследовательских библиотек, которые, возможно, не так-то просто настроить, интегрировать и использовать. С другой стороны, они обеспечивают передовые функциональные возможности и высокую производительность (с графическими процессорами и т.д.).
- Keras является лучшим из этой категории, на мой взгляд: полезной, мощной и активно развитой. В качестве альтернативы Theano он может использовать TensorFlow, Theano и CNTK в качестве бэкэнд.
- TensorFlow от Google (С++/Python)
- CNTK от Microsoft (обучение в Python/оценка на С++/С#/Java/Python)
- Caffe из Berkeley Vision и Learning Center в С++ с привязками к Python
- Caffe2 от Facebook в С++ с привязками к Python
- PyTorch от Facebook, на Python, может быть расширен с помощью C/С++
- mxnet (С++, Python, R, Scala, Julia, Matlab, Javascript)
- Lasagne на основе Theano (Python)
- Blocks на основе Theano (Python)
- Neon обеспечивает очень эффективные реализации (Python)
- Neural Networks для Torch 7 (Lua, Torch 7 - это "Matlab-подобная среда", обзор алгоритмов машинного обучения в факеле)
- Deeplearning4j (Java)
- Chainer (Python)
- MatConvNet (Matlab)
- PaddlePaddle, CUDA/С++ с привязками к Python
- NNabla в Cuda/С++ 11 с привязками Python
Сравнение производительности для библиотек с ускорением GPU можно найти здесь (к сожалению, устарел). Сравнение графических процессоров и версий библиотек можно найти здесь.
Неактивный:
- Theano (Python) и его высокоуровневые API:
- cuda-convnet2 в CUDA/С++ с привязками Python
- Hebel (Python)
Ответ 2
Если вам нужна гибкость в определении сетевых конфигураций, таких как совместное использование параметров или создание различных типов сверточных архитектур, тогда вы должны посмотреть на семейство библиотек Torch: http://www.torch.ch/.
Я еще не просмотрел документацию для Torch 7, но документация для других версий была довольно приличной, и код очень читабельный (в Lua и С++).
Ответ 3
Вы можете использовать среду accord.net. http://accord-framework.net/
Он содержит алгоритмы нейронного обучения, такие как Levenberg-Marquardt, Parallel Resilient Backpropagation, алгоритм инициализации Nguyen-Widrow, Deep Belief Networks и ограниченные машины Boltzmann и многие другие связанные с ней нейронные сети.
Ответ 4
Netlab - обычно используемая библиотека Matlab. (свободный и открытый источник)
Инструментарий Netlab предназначен для обеспечения необходимых инструментов для моделирования теоретически обоснованной нейронной сети алгоритмы и связанные с ними модели для использования в преподавании, исследованиях и разработки приложений. Он широко используется в MSc посредством Исследования в области математики сложных систем.
Библиотека Netlab включает в себя программные реализации широкого спектра методов анализа данных, многие из которых пока недоступны в стандартные пакеты моделирования нейронной сети. Netlab работает с Matlab версии 5.0 и выше, но нужен только основной Matlab (т.е. нет другого панели инструментов). Он несовместим с более ранними версиями Matlab.