Skip to content

PyTorch implementation of IJCAI 2020 paper Exploiting Neuron and Synapse Filter Dynamics in Spatial Temporal Learning of Deep Spiking Neural Network

License

Notifications You must be signed in to change notification settings

zhongyuchen/snn-iir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

snn-iir

PyTorch implementation of IJCAI 2020 paper Exploiting Neuron and Synapse Filter Dynamics in Spatial Temporal Learning of Deep Spiking Neural Network [arXiv] [IJCAI 2020]

Prerequisites

Install all the required Python packages:

pip install -r requirements.txt

Train Model

Run Python script to train the corresponding model:

python *.py --train

Prepare Trained Weights for Testing

To Use Your Own Trained Weights

Move them to the appropriate path.

To Use ZIP Weights

  • Download the ZIP weights by initializing and updating the snn-iir-checkpoints git submodule;
    git submodule init
    git submodule update
    
  • Unzip ZIP files to get trained weights;
  • Move to appropriate path;

Test Model

  • Modify test_checkpoint_path in .yaml config file;
  • Run Python script to test the corresponding model with assigned weights: python *.py --test

Models

Details of the models for the following 3 tasks.

Associative Memory

experiment network states filter dataset encoding length
associative_memory MLP zero dual exp iir Pattern Dataset original 300

Vision Tasks

experiment network states filter dataset encoding length
snn_mlp_1 MLP zero dual exp iir MNIST copy along time dimension 25
snn_mlp_1_non_zero MLP preserved dual exp iir MNIST copy along time dimension 25
snn_mlp_1_poisson_input MLP zero dual exp iir MNIST rate-based poisson 25
snn_mlp_2 MLP zero first order low pass MNIST copy along time dimension 25
snn_mlp_2_poisson_input MLP zero first order low pass MNIST rate-based poisson 25
snn_conv_1_mnist CNN zero dual exp iir MNIST copy along time dimension 25
snn_conv_1_mnist_poisson_input CNN zero dual exp iir MNIST rate-based poisson 25
snn_conv_1_nmnist CNN zero dual exp iir N-MNIST accumulate within time window(OR) 30
snn_conv_1_gesture CNN zero dual exp iir DVS128 Gesture Dataset accumulate within time window(OR) 50
snn_conv_1_gesture_30 CNN zero dual exp iir DVS128 Gesture Dataset accumulate within time window(OR) 30
snn_conv_1_gesture_max CNN zero dual exp iir DVS128 Gesture Dataset accumulate within time window(SUM)/frame(MAX) 30

Times Series Classification

Not implemented.

Results

The results of the following 3 tasks.

Associative Memory

experiment train dev test best epoch paper
associative_memory 0.0031(93) 0.00369(92) 0.0042(92) 92 -

Vision Tasks

experiment train dev test best epoch paper
snn_mlp_1 99.252(72) 98.58(72) 98.94(72) 72 -
snn_mlp_1_non_zero 99.116(93) 98.488(93) 98.858(93) 93 -
snn_mlp_1_poisson_input 99.208(98) 98.628(98) 98.928(98) 98 -
snn_mlp_2 99.3(72) 98.66(72) 98.96(72) 72 -
snn_mlp_2_poisson_input 99.284(96) 98.748(96) 98.978(96) 96 -
snn_conv_1_mnist 99.84(99) 99.47(99) 99.59(99) 99 -
snn_conv_1_mnist_poisson_input 99.822(93) 99.479(93) 99.519(93) 93 99.46
snn_conv_1_nmnist 99.998(51) 98.708(89) 98.558(89) 89 99.39
snn_conv_1_gesture 95.474(46) 85.156(46) 66.319(46) 46 96.09
snn_conv_1_gesture_30 96.094(59) 85.938(59) 68.75(59) 59 96.09
snn_conv_1_gesture_max 97.845(68) 75.781(68) 70.486(68) 68 96.09

Times Series Classification

Not implemented.

Author

Zhongyu Chen

About

PyTorch implementation of IJCAI 2020 paper Exploiting Neuron and Synapse Filter Dynamics in Spatial Temporal Learning of Deep Spiking Neural Network

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published