sPyNNaker
sPyNNaker copied to clipboard
STDP doesn't work with initial post-spikes preceeding a pre-spike
It seems that if the post-neuron spikes followed by the pre-neuron, the initial spikes from the post-neuron don't cause depression. There doesn't seem to be a reason why this is.
It is possible that it instead uses time=0 for the last_pre_spike time. This should be flagged as an invalid time as it might cause potentiation when depression is expected.
Hi @rowleya,
This is a special case and indeed time=0 for last pre spike will first cause potentiation and then will evaluate depression on the actual first pre spike. Maybe you need a check in _plasticity_update_synapse - before looping through post synaptic window, check that last_pre_time!=0.
This reminds me of another issue, when there is no last pre synaptic spike in the simulation, the last bunch of post synaptic spikes will not cause depression because they never even get looked at. This can easily be solved by injecting a fake spike at the end of simulation which would not be evaluated for depression.
Regards,
Mantas
!= 0 isn't quite enough - really we need a flag to indicate if there has been a pre-spike or not (since there might actually be one at time=0)
Again I think I'm correct in saying that this issue has been dealt with in recent work.