Closed JesusEV closed 4 months ago
Going down the rabbit hole, it seems that the problem arises from the write_update_to_history()
function. This function adds the following shift
's: t_current_update + shift
and t_previous_update + shift
.
When this shift
is removed the problem described above disappears. However, this requires a little more analysis.
Describe the bug The
erase_used_eprop_history()
function appears to be removing an excessive number of entries when executing online tasks. This issue manifests within thecompute_gradient()
function, particularly evident during the execution of:Subsequent to invoking
erase_used_eprop_history()
, the conditiont_previous_spike - 1 != eprop_hist_it->t_
arises unexpectedly. This indicates a problem since the expected behavior would be for these values to match.To Reproduce Run
using the following patch (sine-waves does not produce the problem as
erase_used_eprop_history()
never erases all values due to lazy neurons )