You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we are mixing synapse and soma dynamics in the neuron implementation. I'm starting to believe this is sub-optimal for several reasons
Inflexbility; the synapse dynamics are implicitly defined in the functional implementations. It is documented well, but, as a user, I do not have the freedom to decouple synapse dynamics from soma dynamics.
Difficult to analyze; it is hard to separately analyze the impact of synapses and membrane potentials because the equations are interlinked.
Difficult to extend; if we are to expand to exploit other types of integration, it would make sense to create a lighter code-base we could easily adapt to other integration methods.
Finally, it is harder to benchmark, because we are "locked" to fewer neuron versions. Some simulators, for instance do not have synapse models in their implementation, which makes it unfair to compare against us, because we simply do more calculations.
I'm opening a discussion because I think it's a big topic that we would have to align on as a community. If we agree to something along these lines, it would require significant refactoring. I am not proposing to remove the existing methods. Rather, I envision we would
Retain existing modules (such at LIF), but let them internally compose synapse and neuron dynamics (this is btw a nicely compatibly with functorch)
Using the new benchmarking features, it would be easy to measure the performance impact. If we do this right, I don't suspect this will have much impact because we can jit-compile the composition away.
Refactor the functional part to essentially have a synapse and soma section.
This would eliminate a significant amount of code duplication, because the same leaky-integrator dynamics appear in a host of models
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Currently, we are mixing synapse and soma dynamics in the neuron implementation. I'm starting to believe this is sub-optimal for several reasons
functional
implementations. It is documented well, but, as a user, I do not have the freedom to decouple synapse dynamics from soma dynamics.I'm opening a discussion because I think it's a big topic that we would have to align on as a community. If we agree to something along these lines, it would require significant refactoring. I am not proposing to remove the existing methods. Rather, I envision we would
LIF
), but let them internally compose synapse and neuron dynamics (this is btw a nicely compatibly with functorch)functional
part to essentially have asynapse
andsoma
section.Beta Was this translation helpful? Give feedback.
All reactions