You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If anyone wants to do this, the STDP implementation can be simplified.
The idea is similar to what is described in Synaptic plasticity: taming the beast (review article in nature neuroscience). Also similar to the approach to splitting off the R/D variables
Basically, rather than using the lagstorage.c class, we store one new number per neuron.
On each timestep this is multiplied by a constant $C<1$. this depends on the tau in STDP.
On each spike, it is incremented by $A$ which is the same A as in the STDP window function.
Then when another neuron spikes, we just use this value to change the synaptic strengths.
This approach will remove a pretty significant part of the complexity of the calculation.
What can be easily removed/simplified if this is done:
src/lagstorage.*
stdp_change_calc (simplified)
DoSTDP also probably becomes simpler.
The other changes are that STDP_data uses the lags member and gets a different, simpler array instead.
Also, this will use less memory than before - (we go from a lagstorage/neuron to a float/neuron) so is faster because of that
also, the updates in lagstorage.c branch quite unpredictably so it should be faster to change to this new method
The text was updated successfully, but these errors were encountered:
If anyone wants to do this, the STDP implementation can be simplified.
The idea is similar to what is described in Synaptic plasticity: taming the beast (review article in nature neuroscience). Also similar to the approach to splitting off the R/D variables
Basically, rather than using the lagstorage.c class, we store one new number per neuron.
On each timestep this is multiplied by a constant$C<1$ . this depends on the tau in STDP.
On each spike, it is incremented by$A$ which is the same A as in the STDP window function.
Then when another neuron spikes, we just use this value to change the synaptic strengths.
This approach will remove a pretty significant part of the complexity of the calculation.
What can be easily removed/simplified if this is done:
DoSTDP
also probably becomes simpler.The other changes are that STDP_data uses the lags member and gets a different, simpler array instead.
Also, this will use less memory than before - (we go from a lagstorage/neuron to a float/neuron) so is faster because of that
also, the updates in lagstorage.c branch quite unpredictably so it should be faster to change to this new method
The text was updated successfully, but these errors were encountered: