Добро пожаловать в 5-ю часть этой серии.
В этом блоге мы поговорим о PyNN. Причина обсуждения PyNN здесь в том, что мы уже можем начать наши примеры упражнений. В предыдущих блогах мы рассказали о краткой истории нейроморфных вычислений, расширении нейронных сетей и некоторых их преимуществах.
Итак, что такое PyNN? PyNN — это независимый от симулятора язык для построения моделей нейронных сетей. Например, вы пишете код в одном из симуляторов SNN и теперь хотите протестировать его на другом симуляторе, чтобы узнать, какой симулятор дает лучшие результаты. Если вы написали свой код в PyNN, вам не о чем беспокоиться, потому что, используя PyNN API и язык программирования Python, вы можете запускать его на всех симуляторах, поддерживаемых PyNN, без изменений. Разве это не удивительно? На данный момент PyNN поддерживает симуляторы NEURON, Nest и Brain. Кроме того, он также поддерживает нейроморфные чипы/платы SpiNNaker и BrainScale.
Существует множество встроенных моделей нейронов, моделей синапсов и синаптической пластичности. Список моделей нейронов выглядит следующим образом:
- Простые модели интеграции и запуска:
- Интеграция и запуск с адаптацией:
- Модель Ходжкина-Хаксли
HH_cond_exp
- Источники спайков (входные нейроны)
Список Модели Synapse выглядит следующим образом:
- Статические/фиксированные синапсы
- Механизмы краткосрочной пластичности
- Долгосрочные механизмы пластичности
- Нативные модели пластичности
Еще одна вещь, которая требуется, чтобы написать модель один раз и запустить ее на нескольких симуляторах, — это стандартные модели ячеек. PyNN переводит стандартные имена моделей ячеек и имена параметров в имена, характерные для симулятора, например. Стандартная модель IF_curr_alpha — это iaf_neuron в NEST и StandardIF в NEURON, а SpikeSourcePoisson — это poisson_generator в NEST и NetStim в NEURON.
С активным сообществом PyNN вы можете получить помощь, когда почувствуете, что застряли. PyNN все еще находится в стадии разработки. Текущая версия — v0.10.0. Он имеет подробную документацию, где вы можете найти весь исходный код и, самое главное, большой список примеров, чтобы начать свое путешествие с PyNN.
В целом, по моему личному опыту, PyNN предоставляет вам прочную основу для построения моделей SNN. Я работаю с доской SpiNNaker, и PyNN с ней отлично работает. Но есть некоторые недостатки в использовании PyNN. Как я уже говорил ранее, это незавершенная работа, поэтому она не работает должным образом для некоторых симуляторов или выдает странные ошибки. В моем случае это симулятор Nest. Я пытаюсь преобразовать модели ANN в модели SNN, а для моделей SNN я использую PyNN. PyNN отлично работал для NEURON и SpiNNaker (хотя мои результаты пока не так хороши, я думаю, это в основном из-за ненастроенных параметров), но для симулятора NEST он выдает ошибку значения (ValueError: off_grid_spiking — это параметр ядра только для чтения). Я все еще пытаюсь решить эту проблему.
Ресурсы для изучения PyNN:
- http://neuralensemble.org/PyNN/
- Что нового в PyNN (neuralensemble.org)
- PyNN/примеры на мастере · NeuralEnsemble/PyNN (github.com)
- (45) Кристиан Бреннинкмейер — Запуск симуляций PyNN на SpiNNaker — YouTube
Это краткое введение в мир PyNN. Я надеюсь, вы получили общее представление о том, что такое PyNN и как он может упростить нам задачу. В следующем блоге я расскажу об обучении в Spiking Neural Network. Так что теперь все будет интереснее.
Увидимся в следующем блоге. заботиться.