Home

Awesome

NDA_SNN

Pytorch implementation of Neuromorphic Data Augmentation for SNN, Accepted to ECCV 2022. Paper link: Neuromorphic Data Augmentation for Training Spiking Neural Networks.

Dataset Preparation

For CIFAR10-DVS dataset, please refer the Google Drive link below:

For N-Caltech 101, we suggest using SpikingJelly package to pre-process the data. Specifically, initialize the NCaltech101 in SpikingJelly as:

from spikingjelly.datasets.n_caltech101 import NCaltech101
dataset = NCaltech101(root='data', data_type='frame', frames_number=10, split_by='time')

If you can initialize this class, then you will be able to use our provided dataloader in functions/data_loaders.py

Run Experiments

To run a VGG-11 without NDA on CIFAR10-DVS:

python main.py --dset dc10 --amp

Here, --amp use FP16 training which can accelerate the training stage. Use --dset nc101 to change the dataset to NCaltech 101.

To enable NDA training:

python main.py --dset dc10 --amp --nda

Reference

If you find our work is interesting, please consider cite us:

@article{li2022neuromorphic,
  title={Neuromorphic Data Augmentation for Training Spiking Neural Networks},
  author={Li, Yuhang and Kim, Youngeun and Park, Hyoungseob and Geller, Tamar and Panda, Priyadarshini},
  journal={arXiv preprint arXiv:2203.06145},
  year={2022}
}