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
It would be awesome if we could generate textual reports as the simulation is being run to clarify exactly what is being run.
An example taken from what Keras does:
This is done by calling a method such as model.summary(). It shows each layer (population) in the network, with number of parameters (synapses) and output shape (which contains information about number of neurons as well).
I'm requesting something like this for SpiNNaker because otherwise I write my own for every single project. For example:
================================================================================
Creating projection aa_goc from granule to golgi with a weight of 0.020000 uS and a delay of 2.0 ms
Creating projection aa_pc from granule to purkinje with a weight of 0.075000 uS and a delay of 2.0 ms
Creating projection bc_pc from basket to purkinje with a weight of -0.009000 uS and a delay of 4.0 ms
Creating projection gj_bc from basket to basket with a weight of -0.002500 uS and a delay of 4.0 ms
Creating projection gj_goc from golgi to golgi with a weight of -0.008000 uS and a delay of 1.0 ms
Creating projection gj_sc from stellate to stellate with a weight of -0.002000 uS and a delay of 1.0 ms
Creating projection glom_dcn from glomerulus to dcn with a weight of 0.000006 uS and a delay of 4.0 ms
Creating projection glom_goc from glomerulus to golgi with a weight of 0.002000 uS and a delay of 4.0 ms
Creating projection glom_grc from glomerulus to granule with a weight of 0.009000 uS and a delay of 4.0 ms
================================================================================
Number of neurons in each population
--------------------------------------------------------------------------------
golgi -> 219 neurons
glomerulus -> 7073 neurons
granule -> 88158 neurons
purkinje -> 69 neurons
basket -> 603 neurons
stellate -> 603 neurons
dcn -> 12 neurons
TOTAL -> 96737 neurons
================================================================================
================================================================================
Number of synapses per projection:
--------------------------------------------------------------------------------
goc_grc -> 206092 synapses [inh]
pc_dcn -> 314 synapses [inh]
aa_pc -> 17256 synapses [exc]
pf_goc -> 350399 synapses [exc]
glom_dcn -> 1763 synapses [exc]
gj_sc -> 2411 synapses [inh]
glom_grc -> 352474 synapses [exc]
bc_pc -> 1379 synapses [inh]
TOTAL -> xxxx synapses
================================================================================
Number of incoming connections per population:
--------------------------------------------------------------------------------
golgi -> 451168 incoming synapses
glomerulus -> 0 incoming synapses
granule -> 558566 incoming synapses
basket -> 606900 incoming synapses
purkinje -> 1977916 incoming synapses
dcn -> 2077 incoming synapses
stellate -> 617588 incoming synapses
================================================================================
Normalised number of incoming connections per population:
--------------------------------------------------------------------------------
golgi -> 2060.13 incoming synapses
glomerulus -> 0.00 incoming synapses
granule -> 6.34 incoming synapses
basket -> 1006.47 incoming synapses
purkinje -> 28665.45 incoming synapses
dcn -> 173.08 incoming synapses
stellate -> 1024.19 incoming synapses
================================================================================
Generally, important statistics are: number of neurons, number of realised synapses (sPyNNaker will happily accept synpase source/target ids that are larger than the number of neurons), fan-in per population, maximum fan-in per neuron.
Important, but generally overlooked: there's a mismatch between e.g. weight values defined on the host and what they become on SpiNNaker (16 bit precision, weight scaling etc). I find it enormously useful to compare the values I think I put in and what it actually is on chip.
================================================================================
Average weight per projection
--------------------------------------------------------------------------------
goc_grc -> 0.00500011 uS c.f. -0.00500000 uS (100.00%)
bc_pc -> 0.00900269 uS c.f. -0.00900000 uS ( 99.97%)
aa_pc -> 0.07499695 uS c.f. 0.07500000 uS (100.00%)
pf_goc -> 0.00048828 uS c.f. 0.00040000 uS ( 81.92%)
pf_pc -> 0.00001526 uS c.f. 0.00002000 uS ( 76.29%)
================================================================================
The text was updated successfully, but these errors were encountered:
It would be awesome if we could generate textual reports as the simulation is being run to clarify exactly what is being run.
An example taken from what Keras does:
This is done by calling a method such as
model.summary()
. It shows each layer (population) in the network, with number of parameters (synapses) and output shape (which contains information about number of neurons as well).I'm requesting something like this for SpiNNaker because otherwise I write my own for every single project. For example:
Generally, important statistics are: number of neurons, number of realised synapses (sPyNNaker will happily accept synpase source/target ids that are larger than the number of neurons), fan-in per population, maximum fan-in per neuron.
Important, but generally overlooked: there's a mismatch between e.g. weight values defined on the host and what they become on SpiNNaker (16 bit precision, weight scaling etc). I find it enormously useful to compare the values I think I put in and what it actually is on chip.
The text was updated successfully, but these errors were encountered: