While debugging some code implementing a modified version of BCM I came about something that I wasn’t expecting: the behaviour of Lowpass.filt() in Nengo 2.8.0 and 3.0.0 seems to be different.
Specifically, in Nengo 3.0.0 the method returns values that are scaled of a factor of 100, as can be seen by running the same exact model with the two different backends.
As an example and proof of this, observe the theta
variable that is the given by:
self.lowpass = nengo.Lowpass( 1.0 )
theta = self.lowpass.filt( out_rates )
in Nengo 2.8.0
and in Nengo 3.0.0
I guess that this is by design, having seen the following commit:
In any case, this is causing problems with my BCM implementation because my algorithm now thinks that post-synaptic activations are always over threshold.
Which would be the best, cleanest, most logical way to deal with the issue? Divide my theta
by a factor of 100, which I imagine is due to the simulation step being dt=0.001
?