Skip to content

A new dendritic computing package based on pytorch and spikingjelly. Draw inspiration from the nonlinear nature of biological dendritic neurons!

Notifications You must be signed in to change notification settings

AllenYolk/dendritic-spiking-neuron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dendritic-spiking-neuron

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:

Installation

Install from source code

From Github

git clone https://github.com/AllenYolk/dendritic-spiking-neuron.git
cd dendritic-spiking-neuron
pip install .

Modules in dendsn

Dendritic Neuron Models

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
    • soma: model/soma.py
  • 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

The basic assumption is: all the dendritic neurons in the same layer share exactly the same morphology!

Learning Rules

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 and delta_w_post_pre will be neglected.
  • Dendritic Prediction Plasticity: learning/dpp.py
    • See (Urbanczik & Senn, 2014).

Now, these learning rules can only support fully connected weight layers.

Other Modules:

  • useful functions: functional.py
  • stochastic spiking autograd functions: stochastic_firing.py

TODOs

  • Add docstrings and comments to dendsn.learning.
  • Extend plasticity rules in dendsn.learning to convolutional layers.

References

About

A new dendritic computing package based on pytorch and spikingjelly. Draw inspiration from the nonlinear nature of biological dendritic neurons!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages