/spynnaker-examples

An introduction to Spiking Neural Networks.

Primary LanguagePython

An Introduction to Spiking Neural Networks (SNNs)

Introduction to Spikes Photo by Scott Webb on Unsplash.

This repository contains introductory level SNN examples that I built to understand more about the neuron models and the main network types by using sPyNNaker (PyNN for SpiNNaker).


Setup

Software

Necessary Python Packages

  • sPyNNaker8*
  • matplotlib (2.2.3)
  • PyNN (0.9.3)**
  • numpy (1.16.0)

Along with Python 2.7.

Included Files and Their Usage

spynnaker-examples/
├── compare_voltages.py
├── empty_snn_pattern.py
├── izhikevich_snn.py
├── one_neuron_if_curr_exp.py
├── one_neuron_izhikevich.py
├── recurrent_network.py
├── scripts
│   ├── install_spynnaker.sh
│   └── uninstall_spynnaker.sh
├── snn_if_cond_exp.py
├── snn_if_curr_alpha.py
├── snn_if_curr_exp.py
└── util
    ├── basic_visualizer.py
    └── __init__.py

Each python file could be run separately except basic_visualizer.py and empty_snn_pattern.py.

Folder util includes utility library basic_visualizer which contains plotting functions.

Folder scripts* includes bash scripts to install and uninstall pip based sPyNNaker packages.

empty_snn_pattern.py is a pattern python file which is reproducible by filling the sections. I built this as a template for my codes.

Voltage Comparisons

Comparisons of neuron models in sPyNNaker8 with default values, reference compare_voltages.py.


Hardware

SpiNNaker neuromorphic hardware resource is used in this project. Please refer to SpiNNaker project page regarding its setup and usage.

Notes

*There is also a python package of sPyNNaker available on pip. However, the GitHub repository of the sPyNNaker is more comprehensive and up-to-date than the pip version. If you'd lke to install sPyNNaker via pip, you may refer to my scripts in the scripts folder.

**You can run these examples on a different neuromorphic hardware resource or a simulator as well. Please see PyNN documentation for alternatives.