The repository contains some examples of pre-trained SNN (Spiking Neural Network) models.
The models were trained using the MM-BP training algorithm, and the models run on the CARLsim4 SNN simulator.
The models aim to perform image classification or speech recognition. For the image classification, the MNIST or N-MNIST dataset is used. For the speech recognition, the TI46 dataset is used.
The project has been tested under the Linux Ubuntu 16.04 LTS with CUDA 9.0.
- Linux (We have tested under ubuntu 16.04)
- CUDA 9.0 (Using other CUDA verions may not work)
-
Download CARLsim4
-
Download this project
git clone [email protected]:etri/nest-snn.git
-
Patch modified CARLsim4 source code
cd CARLsim4 patch -p1 < carlsim.patch
(Note) The neuron and synapse models assumed in MM-BP differ from those provided by CARLsim4. So, we additionally implemented the neuron and synapse models in CARLsim4. And we provide the additional implementation in the form of patch file(carlsim.patch) upon request. Please contact us if you would like to use the patch file.
-
Install CARLsim4 following the CARLsim4 installation process.
- MNIST
cd snn_models/MNIST_trained make ./trained_mnist
- N-MNIST
cd snn_models/N-MNIST_trained make ./trained_nmnist
- TI46
cd snn_models/TI46_trained make ./trained_ti46
-
MNIST dataset
Get the MNIST dataset. Place the dataset in the snn_models/MNIST_trained/mnist.
-
N-MNIST dataset
Get the N-MNIST dataset. Then encode data following the instructions provided by MM-BP github page.
We provide some input samples(snn_models/N-MNIST_trained/sample_inputs) for the test.
-
TI46 dataset
TI 46 dataset is not free, and the source code used for encoding has not been opened. Thus we do not provide input files. If you contact us via email, we can guide you on how to obtain the dataset and how to encode it.
This project is licensed under Apache 2.0 License.
PAK,EUNJI - [email protected]
Project Link: https://github.com/etri/nest-snn.git