Skip to content

fmi-basel/stork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 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 <git@github.com>: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.

Funding

The development of Stork was supported by the Swiss National Science Foundation [grant number PCEFP3_202981].

About

A differentiable spiking neural network simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages