Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/colinator/spikeflow
Python library for easy creation and running of spiking neural networks in tensorflow.
https://github.com/colinator/spikeflow
computational-neuroscience python snn spiking-neural-networks tensorflow
Last synced: 3 months ago
JSON representation
Python library for easy creation and running of spiking neural networks in tensorflow.
- Host: GitHub
- URL: https://github.com/colinator/spikeflow
- Owner: colinator
- License: mit
- Created: 2019-01-29T01:06:51.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-21T02:08:54.000Z (over 5 years ago)
- Last Synced: 2024-06-21T19:56:27.909Z (5 months ago)
- Topics: computational-neuroscience, python, snn, spiking-neural-networks, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 4.6 MB
- Stars: 32
- Watchers: 6
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-spiking-neural-networks - spikeflow - library for spiking neural networks on top of Tensorflow. (Repositories :open_file_folder: / Neuromorphic hardware)
README
# spikeflow
Spiking neural networks in tensorflow.
***Installation:*** pip install coming soon. I'll wait until it achieves just a little bit of stability... some feedback'd help here...
**Hypothesis:** Biological plausibility in neural networks is not an obstacle, but a benefit, for machine learning applications.
**Proof:** None. Yet.
The purpose of this library is to explore the connection between computational neuroscience and machine learning, and to practice implementing efficient and fast models in tensorflow.
Spikeflow makes it easy to create arbitrarily connected layers of spiking neurons into a tensorflow graph, and then to 'step time'.
Spikeflow will concentrate on facilitating the exploration of spiking neuron models, local-only learning rules, dynamic network construction, the role of inhibition in the control of attractor dynamics, etc.
The library will implement:
- multiple models of spiking neurons, including
- [x] Leaky Integrate-and-fire
- [x] Izhikevich
- [x] Poisson (can convert things like images to spike trains)
- [ ] Hodgkin-Huxley? Taking requests...
- arbitrary connections between layers of similar neurons, including
- [x] feed-foward
- [x] recurrent
- [x] inhibitory
- [x] layer compositing (layers can have sub-layers with a single input and output)
- multiple models of synapses, including
- [x] simple weights
- [x] synapses with decay
- [x] synapses with failure
- [x] synapses with post-synaptic reset
- [x] synapses with delay
- out-of-graph and in-graph learning rules, including
- [x] out-of-graph weight modification
- [x] out-of-graph STDP, compatible with model.step_time's end timestep callback
- [x] in-graph STDP with weight bounds
- [x] symmetric STDP
- [ ] three-factor STDP
- [ ] others? taking requests!
- forms of dynamic neural network construction, including
- [ ] Synaptic pruning and synaptogenesis
- [ ] Neuron pruning and neurogenesis
- [ ] Other structure modification#### The basic modeling idea is this:
```
model = BPNNModel.compiled_model(input_shape,
[ neuronlayer1, neuronlayer2, ...],
[ connections1, connections2, ...])model.run_time(data_generator, end_time_step_callback)
```See the examples in the `jupyter_examples` directory.
Feedback and collaborators welcome!