Generally the way to do this in Nengo currently is to create a custom neuron model that will handle everything from the “+” node, onwards, as in:
There are a couple examples on how to use random samples to generate a spike train, here: https://github.com/nengo/nengo/issues/1487. There is also a short tutorial on adding new objects to Nengo here: https://www.nengo.ai/nengo/examples/usage/rectified_linear.html.
For the rest of the drawing: The $\gamma_i$ term is supplied automatically by the ensemble, through its bias
term. Likewise, the $\alpha$ terms are computed and supplied automatically by Nengo on the connection to the ensemble, through the product of the ensemble’s encoders
, the presynaptic decoders
(trained by Nengo), and the ensemble’s gain
. You can also customize these terms by providing them to nengo.Ensemble
. All of the resulting weights are generated automatically and solved for by connecting into the ensemble and specifying the function
and transform
.