Skip to content
forked from JRBCH/stork-1

A differentiable spiking neural network simulator

License

Notifications You must be signed in to change notification settings

kmnilsson/stork

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stork

Stork is a library designed for the training of spiking neural networks (SNNs). In contrast to conventional deep learning methods, SNNs operate on spikes instead of continuous activation functions, this is why stork extends PyTorch's auto-differentiation capabilities with surrogate gradients (Zenke & Ganguli, 2018) to enable the training of SNNs with backpropagation through time (BPTT).
Stork supports leaky integrate-and-fire (LIF) neurons including adaptive LIF neurons and different kinds of synaptic connections allowing to use e.g. Dalian and Convolutional layers as well as constructing network architectures with recurrent or skip connections. For each neuron group, customizable activity regularizers are available to e.g. apply homeostatic plasticity.
Furthermore, stork uses per default initialization in the fluctuation-driven regime, what enhances SNN training especially in deep networks.

Citing Stork

If you find this library useful and use it for your research projects, please cite

Rossbroich>, J., Gygax, J., and Zenke, F. (2022).
Fluctuation-driven initialization for spiking neural network training.
Neuromorph. Comput. Eng.

Bibtex Citation:

@article{rossbroich_fluctuation-driven_2022,
 title = {Fluctuation-driven initialization for spiking neural network training},
 author = {Rossbroich, Julian and Gygax, Julia and Zenke, Friedemann},
 doi = {10.1088/2634-4386/ac97bb},
 journal = {Neuromorphic Computing and Engineering},
 year = {2022},
}

Setup

  1. Create and activate a virtual environment.
  2. Download stork or clone the repository with
    git clone <[email protected]>:fmi-basel/stork.git
  3. Change into the stork directory.
    cd stork
  4. Install the requirements with
    pip install -r requirements.txt
  5. Install stork with
    pip install -e .

Examples

The examples directory contains notebooks and Python scripts that contain examples of different complexities.

About

A differentiable spiking neural network simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%