This repository is the official implementation of Training Spiking Neural Networks with Event-driven Backpropagation (Neurips 2022) [pdf].
- pytorch=1.10.0
- torchvision=0.11.0
- spikingjelly
Modify the data path and network settings in the .yaml config files (in the networks folder).
We recommend you to run the code in Linux environment, since we use pytorch cuda functions in the backward stage and the compile process is inconvenient in Windows environment.
In addition, we have implemented two backends for neuron functions in our algorithm: The python backend and the cuda backend, where the cuda backend significantly accelerates the neuron functions.
The backend option can be configured by setting backend: "cuda" or backend: "python" in the .yaml config files.
$ CUDA_VISIBLE_DEVICES=0 python main.py -config networks/config_file.yaml