Skip to content

Latest commit

 

History

History
140 lines (118 loc) · 9.42 KB

README.md

File metadata and controls

140 lines (118 loc) · 9.42 KB

SpikeNET

Although, as of 2021, the code is still functional, this project is no longer supported.

SpikeNET is a program designed for simulating large networks of asynchronous spiking neurons. Neurons are simulated with a limited number of parameters that include classic properties like the post-synaptic potential and threshold and more novel features like dendritic sensitivity. SpikeNET can be used to simulate networks with millions of neurons and hundreds of millions of synaptic weights. Optimization of computation time and the aim of real-time computation has been one of the driving forces behind the development of SpikeNET.

What SpikeNET can do

  • Perform image processing using a biologically plausible network of neurons.
  • Simulate millions of integrate-and-fire neurons organized in retinotopical maps.
  • Connect these neuronal maps using projection files, and regroup common synaptic weights to save memory in order to be able to declare several hundreds of billions of synaptic connections.
  • Convert gray level images into lists of spikes (also SpikeNET can perform a variety of preprocessing on the input images).
  • Implement a complex mechanism for projection between neuronal maps of different sizes.
  • Implement supervised learning.
  • Implement the efficient neuronal Rank-Order-Coding scheme (optional)

What SpikeNET cannot do

  • SpikeNET does not have a comprehensive graphic interface. The neural network topology must be described using several configuration files (documented below).
  • SpikeNET has never been used to process more than one spike per neuron (SpikeNET was initially designed to test the biological plausibility of feed-forward processing using at most one spike per neuron). Note that it is still possible to implement lateral inhibition or excitation and feedback as long as neurons discharge only once.
  • SpikeNET can not implement synaptic connections with various delays. All synaptic connections are instantaneous.

A glimpse at SpikeNET performances

See this page for more information.

When we tested the performance of SpikeNET in 1999 rigorously, SpikeNET could compute roughly 20 million connections per second on a standard desktop computer (Macintosh Power PC 233 Mhz). At this time, we believe that SpikeNET was the most powerful convolutional neural network for image classification available.

Publications

Publications directly related to SpikeNET

  • Delorme, A., Thorpe, S. (2003). SpikeNET: An Event-driven Simulation Package for Modeling Large Networks of Spiking Neurons, Network: Comput. Neural Syst., 14, 613:627. Author's PDF, journal's link.
  • Delorme, A., Thorpe, S. (2001) Face processing using one spike per neuron: resistance to image degradation. Neural Networks,  14(6-7), 795-804. Author's PDF, Science Direct.

  • Delorme, A., Gautrais, J., VanRullen, R., & Thorpe, S.J. (1999). SpikeNET: A simulator for modeling large networks of integrate and fire neurons. Neurocomputing, 26-27, 989-996. Author's PDF, Science Direct.
  • Van Rullen, R., Gautrais, J., Delorme, A., & Thorpe, S. (1998). Face processing using one spike per neurone. Biosystems, 48(1-3), 229-239. Author's PDF, Science Direct.

Publications indirectly related to SpikeNET

  • Delorme, A. (2003) Early Cortical Orientation Selectivity: How Fast Shunting Inhibition Decodes the Order of Spike Latencies. Journal of Computational Neuroscience, 15, 357-365. Author's PDF, journal's link.
  • Thorpe, S., Delorme, A., VanRullen, R. (2001) Spike based strategies for rapid processing. Neural Networks, 14(6-7), 715-726. Author's PDF, Science Direct.
  • Perrinet, L., Delorme, A., Thorpe, S. (2001) Network of integrate-and-fire neurons using Rank Order Coding A: how to implement spike timing dependant plasticity. Neurocomputing, 38-40(1-4), 817-822. Author's PDF, Science Direct.
  • Delorme, A., Perrinet, L., Thorpe, S. (2001) Network of integrate-and-fire neurons using Rank Order Coding B: spike timing dependant plasticity and emergence of orientation selectivity. Neurocomputing, 38-40(1-4), 539-545. Author's PDF, Science Direct.
  • VanRullen, R., Delorme, A. & Thorpe S.J. (2001). Feed-forward contour integration in primary visual cortex based on asynchronous spike propagation. Neurocomputing, 38-40(1-4), 1003-1009. Author's PDF, Science Direct.
  • Thorpe, S.J., Delorme, A., VanRullen, R., Paquier, W. (2000) Reverse engineering of the visual system using networks of spiking neurons. IEEE International Symposium on Circuits and Systems, 2000, 4, 405 -408. Author's PDF, journal's link.
  • Delorme, A., Gautrais, J., VanRullen, R., & Thorpe, S.J. (1999). SpikeNET: A simulator for modeling large networks of integrate and fire neurons. Neurocomputing, 26-27, 989-996. Author's PDF, Science Direct.

Using SpikeNET

1 - Install

SpikeNet is compiled by default for OSX 64 bit and Linux Fedora core.

To recompile SpikeNET. Edit the Makefile file to change the location of the X11 librairies (type "locate X11" on your command line prompt). SpikeNET intentionnaly uses very few external librairies.

cd src
make clean
make
cd ..

This creates an executable named "SpikeNET".

2 - Run Demo

In the main SpikeNET folder type one of the following depending of your platform

./SpikeNET
./SpikeNET_linux
./SpikeNET_osx

3 - Directory content

Convolution (weights) files for demo and examples

Convolutions
convos40Faces
FaceConvos
MSFaceConvos

Image folder

Images

SpikeNET demo and example model directories

networkdemo40faceslearn
networkdemo40facesrandom
networkdemo40facesrun
networkdemodetection
networkdemodetectionms
network_example_4faceslearn
network_example_4facesoptimize
network_example_orientation

SpikeNET convolution output directory

save_convos

SpikeNET source directory

src

SpikeNET GNU license

license.txt

Arnaud Delorme, February, 17, 2021