Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a delay parameter to synapses #224

Open
laurentperrinet opened this issue Jul 5, 2021 · 2 comments
Open

Add a delay parameter to synapses #224

laurentperrinet opened this issue Jul 5, 2021 · 2 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Milestone

Comments

@laurentperrinet
Copy link

laurentperrinet commented Jul 5, 2021

Transmission of a spike from one neuron to another often takes a given delay. It is most often accounted by the transduction delay along the axon and thus depends on the distance between neurons and of the axonal types (e.g width, myelin, ...).

To develop generic SNN models, adding the capability to have a delay between neurons would allow to develop more realistic models for which one would see the propagation in the hierarchy, or within a single layer. As such it is related to #94 - yet adding a delay would be a specific feature.

An alternative would be to consider changing the dynamical equation for the delay that would be approaching asymptotically that of a pure delay.

@cpehle
Copy link
Member

cpehle commented Jul 8, 2021

Delay is indeed an important thing to consider. One way to solve this is by introducing a delay buffer between layers, that even works for recurrence with some work, but it is problematic from a memory efficiency perspective. This is what is done for example https://github.com/IGITUGraz/LSNN-official/blob/a9158a3540da92ae51c46a3b7abd4eae75a2bb86/lsnn/spiking_models.py#L282.

@cpehle cpehle self-assigned this Jul 8, 2021
@cpehle cpehle added enhancement New feature or request documentation Improvements or additions to documentation labels Jul 8, 2021
@Jegp
Copy link
Member

Jegp commented Sep 20, 2021

We could of course add this to individual neuron dynamics, but what aobut adding a "delay" layer that simply caches spikes for a certain time period, depending on a matrix of delay times? Could look something like this:

model = SequentialState(
    LIFCell(),
    SynapseDelay(),
    ...
)

Where SynapseDelay would initialize with something like positive uniform values. This could also be used in recurrent layers, because we could just add it to the recurrent linear weighting,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants