Why does the example neuron model use `updates` instead of `sets`?

In the Nengo documentation example for creating a rectified linear neuron, the operator uses updates:

        self.reads = [J]
        self.updates = [output]
        self.sets = []
        self.incs = []

However, in the Nengo reference backend, the neuron models use sets instead of updates:

I believe updates will induce a single time-step delay in the neural response, whereas sets will take effect at the start of the time-step?

Neuron models used to be “updates”, and the example neuron code was probably copied from that time period. I don’t think there’s any particular motivation to it.

I believe updates will induce a single time-step delay in the neural response, whereas sets will take effect at the start of the time-step?

Yep, that’s correct!

1 Like