Skip to content

dedraPL/SpikingNeuralNetwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INFO

It is my own implementation of the Spiking Neural Network system for simulation purposes.

It is a simple version with support of a single thread CPU or GPU acceleration.

Read txt or bin file with adjacency matrix merged with weight matrix of the network, apply input signal and simulate.

After reading input file you need to call BFSSort on the network object to slice the network and make layered structure of the network. Layered structure of the network is especially required by the GPU implementation, because it runs layer after layer simulation.

Currently there is available only Izhikevich model. I will add more models in the future

INPUT FILE FORMAT

TXT FILE

separator: space

first line is a list of input neuron indexes

second line is a list of output neuron indexes

next there is an adjacency matrix merged with weights

example matrix

0 1
5 6
0 0 1 1 1 0 0
0 0 1 1 1 0 0
0 0 0 0 0 1 1
0 0 0 0 0 1 1
0 0 0 0 0 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0

produces network like this

graph

where all edges have weight = 1

BIN FILE

  1. 8 bits (uint8) for settings
    1. precision (1 if float, 0 if double)
    2. not used
    3. not used
    4. not used
    5. not used
    6. not used
    7. not used
    8. not used
  2. 32 bits (uint32) num of all neurons N
  3. 32 bits (uint32) num of input neurons I
  4. 32 bits (uint32) num of output neurons O
  5. input neuron indexes (len of I)
  6. output neuron indexes (len of O)
  7. adjacency matrix (len of N*N) with specified precision (float or double)

TODO

  • working CPU single threaded version
  • working GPU version
  • save network to txt and bin file
  • multithread CPU version
  • template class with precision sellection of the Neuron and Synapse
  • more neuron models

Releases

No releases published

Packages

No packages published