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
{{ message }}
This repository was archived by the owner on Aug 7, 2025. It is now read-only.
This needs to be a special case as GeNN handles each synapse groups input's separately. The best solution is probably to implement this in a new GSynMonitor class in recording.py:
In Recorder._record add additional cases for "gsyn_exc" and "gsyn_inh" which add a GSynMonitor - this can maybe build a list of what incoming projections parent.population with correct receptor_type (i.e. "inhibitory" if we're recording "gsyn_inh") (a new list might need adding to Population to track incoming projections)
In Recorder._record_vars, for "gsyn_exc" and "gsyn_inh", loop through the list of projections previously obtained by the GSynMonitor and copy the data from the GPU using model.pull_var_from_device(SYNAPSE_GROUP_NAME, "inSyn")
In the GSynMonitor implement init_data_view using SynapseGroup._assign_external_pointer to get access to each synapse group's "inSyn" variable
Override GSynMonitor.__call__ to sum these views.
This is infact more general. For example the GIF neuron allows recording of two adaption variables which are the sum of multiple actual state variables.
This needs to be a special case as GeNN handles each synapse groups input's separately. The best solution is probably to implement this in a new
GSynMonitorclass in recording.py:Recorder._recordadd additional cases for "gsyn_exc" and "gsyn_inh" which add aGSynMonitor- this can maybe build a list of what incoming projectionsparent.populationwith correctreceptor_type(i.e. "inhibitory" if we're recording "gsyn_inh") (a new list might need adding toPopulationto track incoming projections)Recorder._record_vars, for "gsyn_exc" and "gsyn_inh", loop through the list of projections previously obtained by theGSynMonitorand copy the data from the GPU usingmodel.pull_var_from_device(SYNAPSE_GROUP_NAME, "inSyn")GSynMonitorimplementinit_data_viewusingSynapseGroup._assign_external_pointerto get access to each synapse group's "inSyn" variableGSynMonitor.__call__to sum these views.This is infact more general. For example the GIF neuron allows recording of two adaption variables which are the sum of multiple actual state variables.