Добро пожаловать в 5-ю часть этой серии.

В этом блоге мы поговорим о PyNN. Причина обсуждения PyNN здесь в том, что мы уже можем начать наши примеры упражнений. В предыдущих блогах мы рассказали о краткой истории нейроморфных вычислений, расширении нейронных сетей и некоторых их преимуществах.

Итак, что такое PyNN? PyNN — это независимый от симулятора язык для построения моделей нейронных сетей. Например, вы пишете код в одном из симуляторов SNN и теперь хотите протестировать его на другом симуляторе, чтобы узнать, какой симулятор дает лучшие результаты. Если вы написали свой код в PyNN, вам не о чем беспокоиться, потому что, используя PyNN API и язык программирования Python, вы можете запускать его на всех симуляторах, поддерживаемых PyNN, без изменений. Разве это не удивительно? На данный момент PyNN поддерживает симуляторы NEURON, Nest и Brain. Кроме того, он также поддерживает нейроморфные чипы/платы SpiNNaker и BrainScale.

Существует множество встроенных моделей нейронов, моделей синапсов и синаптической пластичности. Список моделей нейронов выглядит следующим образом:

  • Простые модели интеграции и запуска:

IF_curr_exp

IF_curr_alpha

IF_cond_exp

IF_cond_alpha

  • Интеграция и запуск с адаптацией:

IF_cond_exp_gsfa_grr

EIF_cond_alpha_isfa_ista

EIF_cond_exp_isfa_ista

Izhikevich

  • Модель Ходжкина-Хаксли

HH_cond_exp

  • Источники спайков (входные нейроны)

SpikeSourcePoisson

SpikeSourceArray

SpikeSourceInhGamma

Список Модели 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:

Это краткое введение в мир PyNN. Я надеюсь, вы получили общее представление о том, что такое PyNN и как он может упростить нам задачу. В следующем блоге я расскажу об обучении в Spiking Neural Network. Так что теперь все будет интереснее.

Увидимся в следующем блоге. заботиться.