Different simulation results in neuron Direct and LIF mode

Hi everyone,

I have implemented a system in Nengo. I tried Direct mode as neuron types at first to make sure the system works. However, when I change the neuron type to LIF my results change drastically and don’t match the results in Direct mode. I would appreciate your comments on how to choose:

  1. the number of neurons in each ensemble
  2. choosing suitable parameters for my LIF neurons so that the simulation works properly.


It’s best to start by changing one ensemble at a time, recording the output, and then seeing how noisy it is. If it’s too noisy for you to work with, you can look at increasing the number of neurons in the ensemble or adding a larger synaptic time constant on the connection. That’s a good place to start!

Thanks for your response. I have one question. When the simulation works in Direct mode, does it mean that it will eventually work in LIF or other modes as well after some trial and error in finding the proper number of neurons or is it possible it won’t work in LIF mode at all?!

Working in direct mode is the first step, but it’s no guarantee that the function will work in neurons. As a rule of thumb, lower degree polynomials are easy for neurons to approximate, and the more nonlinear a function is the harder it is to implement in neurons. If you’d like some other suggestions and heuristics, I outline a few in this recent paper: https://iopscience.iop.org/article/10.1088/2634-4386/acb286/pdf

Thanks for sharing the paper. Is changing the arguments of LIF going to help or should I leave it as default?

It can definitely help, but the default parameters are good for approximating a large range of functions.

Sorry I forgot to ask this in my previous reply. Is it OK to use several ensembles to represent calculations or should I use only one ensemble to represent the system and the integrator and nodes for other calculations to avoid noise?

i address this in the paper! :slight_smile: give that a skim (the design heuristics section) and then lmk if anything is unclear