Author: AllenYolk
A new dendritic computing package dendsn
based on PyTorch and SpikingJelly.
Draw inspiration from the nonlinear nature of biological dendritic neurons!
Table of Contents:
From Github
git clone https://github.com/AllenYolk/dendritic-spiking-neuron.git
cd dendritic-spiking-neuron
pip install .
Dendritic neurons are built in a bottom-up manner in this package, and each component is implemented in a separate python script:
- dendritic neuron:
model/neuron.py
- dendrite:
model/dendrite.py
- dendritic compartments:
model/dend_compartment.py
- wiring of the compartments:
model/wiring.py
- dendritic compartments:
- soma:
model/soma.py
- dendrite:
- synapse:
model/synapse.py
- synaptic connection and weights:
model/synapse_conn.py
- Both linear and conv layers are available!
- synaptic filter:
model/synapse_filter.py
- synaptic connection and weights:
The basic assumption is: all the dendritic neurons in the same layer share exactly the same morphology!
A series of plasticity rules are available in dendsn.learning
, whose implementation is based on "monitors" in spikingjelly
.
- STDP:
learning/stdp.py
- Semi-STDP:
learning/semi_stdp.py
- A simplified form of STDP:
trace_post
anddelta_w_post_pre
will be neglected.
- A simplified form of STDP:
- Dendritic Prediction Plasticity:
learning/dpp.py
- See (Urbanczik & Senn, 2014).
Now, these learning rules can only support fully connected weight layers.
- useful functions:
functional.py
- stochastic spiking autograd functions:
stochastic_firing.py
- Add docstrings and comments to
dendsn.learning
. - Extend plasticity rules in
dendsn.learning
to convolutional layers.
- Urbanczik, R., & Senn, W. (2014). Learning by the Dendritic Prediction of Somatic Spiking. Neuron, 81(3), 521–528. https://doi.org/10.1016/j.neuron.2013.11.030