All Projects → nitin-rathi → hybrid-snn-conversion

nitin-rathi / hybrid-snn-conversion

Licence: other
Training spiking networks with hybrid ann-snn conversion and spike-based backpropagation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to hybrid-snn-conversion

WheatNNLeek
Spiking neural network system
Stars: ✭ 26 (-63.89%)
Mutual labels:  spiking-neural-networks, snn
spikeflow
Python library for easy creation and running of spiking neural networks in tensorflow.
Stars: ✭ 30 (-58.33%)
Mutual labels:  spiking-neural-networks, snn
spiketorch
Experiments with spiking neural networks (SNNs) in PyTorch. See https://github.com/BINDS-LAB-UMASS/bindsnet for the successor to this project.
Stars: ✭ 83 (+15.28%)
Mutual labels:  spiking-neural-networks, snn
SNNs-In-Tensorflow
Implementation of a Spiking Neural Network in Tensorflow.
Stars: ✭ 24 (-66.67%)
Mutual labels:  spiking-neural-networks, snn
DL-NC
spiking-neural-networks
Stars: ✭ 34 (-52.78%)
Mutual labels:  spiking-neural-networks, snn
IJCNN2016
Diverse, Noisy and Parallel: a New Spiking Neural Network Approach for Humanoid Robot Control
Stars: ✭ 14 (-80.56%)
Mutual labels:  spiking-neural-networks, snn
CARLsim4
CARLsim is an efficient, easy-to-use, GPU-accelerated software framework for simulating large-scale spiking neural network (SNN) models with a high degree of biological detail.
Stars: ✭ 75 (+4.17%)
Mutual labels:  spiking-neural-networks
snn angular velocity
Event-Based Angular Velocity Regression with Spiking Networks
Stars: ✭ 91 (+26.39%)
Mutual labels:  spiking-neural-networks
bindsnet
Simulation of spiking neural networks (SNNs) using PyTorch.
Stars: ✭ 34 (-52.78%)
Mutual labels:  spiking-neural-networks
spore-nest-module
Synaptic Plasticity with Online Reinforcement learning
Stars: ✭ 24 (-66.67%)
Mutual labels:  spiking-neural-networks
brian2cuda
A brian2 extension to simulate spiking neural networks on GPUs
Stars: ✭ 46 (-36.11%)
Mutual labels:  spiking-neural-networks
nengo-dl
Deep learning integration for Nengo
Stars: ✭ 76 (+5.56%)
Mutual labels:  spiking-neural-networks
spikeRNN
No description or website provided.
Stars: ✭ 28 (-61.11%)
Mutual labels:  spiking-neural-networks
models
This repository will host models, modules, algorithms and applications developed by the INRC Community to run on the Intel Loihi Platform.
Stars: ✭ 59 (-18.06%)
Mutual labels:  spiking-neural-networks
machine learning course
Artificial intelligence/machine learning course at UCF in Spring 2020 (Fall 2019 and Spring 2019)
Stars: ✭ 47 (-34.72%)
Mutual labels:  backpropagation-algorithm
OpenNAS
OpenN@S: Open-source software to NAS automatic VHDL code generation
Stars: ✭ 15 (-79.17%)
Mutual labels:  spiking-neural-networks
LSM
Liquid State Machines in Python and NEST
Stars: ✭ 39 (-45.83%)
Mutual labels:  spiking-neural-networks
BrainModels
Brain models implementation with BrainPy
Stars: ✭ 36 (-50%)
Mutual labels:  spiking-neural-networks
snn-encoder-tools
Data encoders
Stars: ✭ 26 (-63.89%)
Mutual labels:  spiking-neural-networks
BrainSimII
Neural Simulator for AGI research and development
Stars: ✭ 51 (-29.17%)
Mutual labels:  spiking-neural-networks

Enabling Deep Spiking Neural Networks with Hybrid Conversion and Spike Timing Dependent Backpropagation

This is the code related to the paper titled "Enabling Deep Spiking Neural Networks with Hybrid Conversion and Spike Timing Dependent Backpropagation" published in ICLR, 2020

Training Methodology

The training is performed in the following two steps:

  • Train an ANN ('ann.py')
  • Convert the ANN to SNN and perform spike-based backpropagation ('snn.py')

Files

  • 'ann.py' : Trains an ANN, the architecutre, dataset, training settings can be provided an input argument
  • 'snn.py' : Trains an SNN from scratch or performs ANN-SNN conversion if pretrained ANN is available.
  • /self_models : Contains the model files for both ANN and SNN
  • 'ann_script.py' and 'snn_script.py': These scripts can be used to design various experiments, it creates 'script.sh' which can be used to run multiple models

Trained ANN models

Trained SNN models

Issues

  • Sometimes the 'STDB' activation becomes unstable during training, leading to accuracy drop. The solution is to modulate the alpha and beta parameter or change the activation to 'Linear' in 'main.py'
  • Another reason for drop in accuracy could be the leak parameter. Please change 'leak_mem=1.0' in 'main.py'. This changes the leaky-integrate-and-fire (LIF) neuron to integrate-and-fire (IF) neuron.

Citation

If you use this code in your work, please cite the following paper

@inproceedings{
Rathi2020Enabling,
title={Enabling Deep Spiking Neural Networks with Hybrid Conversion and Spike Timing Dependent Backpropagation},
author={Nitin Rathi and Gopalakrishnan Srinivasan and Priyadarshini Panda and Kaushik Roy},
booktitle={International Conference on Learning Representations},
year={2020},
url={https://openreview.net/forum?id=B1xSperKvH}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].