Подтвердить что ты не робот

Библиотека нейронных сетей с открытым исходным кодом

Я ищу библиотеку нейронных сетей с открытым исходным кодом. До сих пор я смотрел FANN, WEKA и OpenNN. Остальные, на что я должен смотреть? Критерии, конечно же, это документация, примеры и простота использования.

4b9b3361

Ответ 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 можно найти здесь (к сожалению, устарел). Сравнение графических процессоров и версий библиотек можно найти здесь.

Неактивный:

Ответ 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.