Альтернативи 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.