Open arvoelke opened 5 years ago
Wanted to make a note somewhere that probed spikes are also 1
and not scaled by 1/dt
. I assume this is related to this issue. But it was causing some confusion for me when trying to debug differences between nengo.Simulator
and nengo_loihi.Simulator
because you get different results when you filter the spike trains.
Discovered while trying to find a work-around to #152.
When taking the
encoders
anddecoders
and using them to form a full-weight matrix (given as atransform
on aNeurons -> Neurons
connection), an additional scaling factor ofdt
is required.From what I understand, this is a consequence of
sim.data[*].weights
being divided bysim.dt
, in relation to:https://github.com/nengo/nengo-loihi/blob/f02fcebc957451559e7a05addc1e481831fc9105/nengo_loihi/builder.py#L570-L572
And so
dt
needs to be multiplied to get it back into range for use as atransform
. Regardless, if there is no way to keep this consistent, it should at least be documented, as it changes the interpretation of the decoding weights and creates a significant difference between specifying connection weights onnengo
versusnengo_loihi
.(Note the last simulation's
Sim 1
is noisier due to interneurons.)This turned out to be very difficult to debug when embedding the decoders within a full weight matrix between two ensembles, as it causes the downstream ensemble to constantly saturate (not shown).