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
Is your feature request related to a problem? Please describe.
KerasSpiking supports using a different time-constant for each dimension (such that they can all be trained separately). But nengo.Connection(..., synapse=synapse) uses the same synapse for every dimension (in particular, the same time-constants). And there are lots of useful methods out there that use two or more time-constants, for example:
At the API level, this could be implemented by allowing the time-constant(s) to be an array_like or Distribution. At the backend level, this could be implemented in the same way as KerasSpiking (i.e., by broadcasting the array of discretized time-constants onto the operations that concurrently update all of the synaptic state variables).
Describe alternatives you've considered
This is supported in nengolib by using a Node: https://arvoelke.github.io/nengolib-docs/nengolib.synapses.HeteroSynapse.html#nengolib.synapses.HeteroSynapse -- but this approach is really only useful for experimentation / prototyping. It's also a bit overkill, because it supports using synapses of all different types. More importantly, it doesn't help if you wanted to compile the network onto, say, Loihi (which supports heterogeneous time-constants). It also doesn't help if you wanted to convert a KerasSpiking model to Nengo.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
KerasSpiking supports using a different time-constant for each dimension (such that they can all be trained separately). But
nengo.Connection(..., synapse=synapse)
uses the same synapse for every dimension (in particular, the same time-constants). And there are lots of useful methods out there that use two or more time-constants, for example:Describe the solution you'd like
At the API level, this could be implemented by allowing the time-constant(s) to be an
array_like
orDistribution
. At the backend level, this could be implemented in the same way as KerasSpiking (i.e., by broadcasting the array of discretized time-constants onto the operations that concurrently update all of the synaptic state variables).Describe alternatives you've considered
This is supported in nengolib by using a Node: https://arvoelke.github.io/nengolib-docs/nengolib.synapses.HeteroSynapse.html#nengolib.synapses.HeteroSynapse -- but this approach is really only useful for experimentation / prototyping. It's also a bit overkill, because it supports using synapses of all different types. More importantly, it doesn't help if you wanted to compile the network onto, say, Loihi (which supports heterogeneous time-constants). It also doesn't help if you wanted to convert a KerasSpiking model to Nengo.
The text was updated successfully, but these errors were encountered: