Альтернативи Python OSS для Matlab Neural Network Toolbox. Будь-які взаємосполучення?


16

Я хотів би бути незалежним від комерційного програмного забезпечення для своєї наукової роботи. Я вважаю залежність комерційних пакетів, таких як Matlab та його інструментарі, незадовільною, тому що я не знаю, чи матиму я доступ до Matlab у майбутньому, і тому, що мова мені не подобається. Тому я шукаю альтернативи.

На щастя, я досить добре володію Python (і я люблю мову), і з NumPy, SciPy, Matplotlib, Basemap та NetCDF рутинними програмами для читання та запису, це задовольняє більшість моїх потреб. Більшість - я все ще повертаюся до Matlab, коли мені потрібно тренувати супутникові пошуки, використовуючи багатошарові перцептрони подачі вперед, наприклад, для використання штучних нейронних мереж.

Як і незвично з програмним забезпеченням з відкритим кодом, існує не один пакет, який робить нейронні мережі. Значно більше одного:

  • Деякий час тому я спробував PyBrain , "швейцарський армійський ніж для нейронних мереж", але мені не вдалося за короткий час досягти задовільних результатів (як час розробки, так і час виконання). Можливо, я не дуже старався, або, можливо, не дуже орієнтований на мою точну потребу.

  • Щойно я виявив, що існує пакет під назвою neurolab , який виглядає багатообіцяючим: проста і потужна бібліотека нейронних мереж для Python , з таким API, як Neural Network Toolbox (NNT) від MATLAB .

  • Існує FFnet , швидкий і простий у використанні прямоточною нейронної мережі рішенням для підготовки пітона

  • Є simplenn

  • Є Peach , бібліотека для обчислювального інтелекту та машинного навчання

  • Існує прив'язка Python до FANN , бібліотека швидкої штучної нейронної мережі , описана як фактичний стандарт у цій публікації StackOverflow .

  • Напевно, є й інші.

Хто-небудь доклав зусиль для порівняння різних варіантів, заснованих на таких критеріях, як зручність у використанні, швидкість тощо? Мій власний випадок використання - це супутникові пошуки, наприклад, що відповідає сильно нелінійній функції багатьох змінних. Я дуже користувач нейронних мереж; Мені не цікаво досліджувати їхню внутрішню роботу.

Це питання на Stats.SE пов'язане, але з різною увагою.


Ваше запитання дуже цікаве, але я думаю, ви занадто багато просите. Комплексна оцінка різних програмних засобів нейронної мережі в python занадто широка, щоб відповісти на цьому форумі. Може бути корисним звузити фокус свого питання на конкретний критерій та програмне забезпечення, яке вас цікавить.
Павло

Крім того, ми не можемо перенести ваше запитання, оскільки воно занадто старе . Якщо ви вважаєте, що для вашого питання більше підходить інший веб-сайт SE, вам доведеться видалити цей і перезавантажити його на інший сайт. Навіть якщо ви переписуєте це питання, я все одно вважаю, що це вам у інтересах звузити сферу вашого питання, щоб збільшити ймовірність отримати хорошу відповідь.
Павло

Не Python, але зараз я використовую кафе для нейронної мережі. Переважно для конвертної нейронної мережі, але ще простіше налаштувати звичайний NN.
Сіюань Рен

Дублікат між сайтом: datascience.stackexchange.com/q/694/6
gerrit

Відповіді:


1

Ви перевірили scikit-learn ? Це абсолютно не мій домен, але я чув дуже позитивний досвід користувачів ...


Попаде б у категорію Напевно є й інші - додавання ще однієї бібліотеки до списку не вирішує мою проблему, але, скоріше, розширює сферу взаємозв’язку, якого я сподіваюся побачити ...
gerrit

Ну а з того, що я чув і читав, перевага scikit-learn полягає в тому, що це рамка, що містить безліч методів. Можливо, це полегшить вашу роботу, коли ви будете робити порівняння методів, застосованих до вашої проблеми.
GertVdE

3
scikit-learn не містить методів нейронної мережі, модель штучної нейронної мережі була видалена в 0,12, і вони рекомендували в той час, коли користувачі, які потребували цієї функціональності, перейшли на PyBrain.
Арон Ахмадія

1

Ви подивилися на Теано ? здається досить потужним .


1
Дійсно, Теано дуже потужний. Але компілятор (або фреймворк) дозволяє записувати код python, який потім компілюється та виконується в GPU. Theano може використовуватися для реалізації мереж, але це не бібліотека ML.
Артем Соболєв

1

Я теж перейшов від використання нейронних мереж у Matlab до Python. Однією з найпотужніших бібліотек Python є "Pylearn2" http://deeplearning.net/software/pylearn2/ . В даний час це найактивніша бібліотека і має багато різних функцій, з якими можна експериментувати. Він заснований на Theano і як такий швидкий, і його можна запустити на GPU. На жаль, і в цьому є його недолік: API постійно змінюється і має високу криву навчання. Вам також потрібно налаштувати свої нейронні мережі, використовуючи файли YAML. Я мав більший успіх у використанні PyBrain для створення основних нейронних мереж. Мені потрібно було вирішити проблему регресії, де мені довелося прогнозувати навантаження на електростанцію на основі погодних факторів. Посібник тут: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ дав мені 90% розчину, який мені знадобився.

Одне з проблем, які я знайшов у PyBrain, - швидкість. Це написано рідною мовою Python. Я виявив, що тренування нейронної мережі на 50 разів повільніше, ніж у Matlab. Деякі інші знайшли успіх у прискоренні навчального процесу PyBrain з бібліотекою arac.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.