Nothing Special   »   [go: up one dir, main page]

Skip to content

mervess/spynnaker-examples

Repository files navigation

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.

Releases

No releases published

Packages

No packages published