I'm opening this issue because i couldn't find a way to identify the output neurons, after hardware deployment, on DYNAP-SE2:
- The generated hardware configuration object, after network mapping, doesn't contain any reference to them: contrarily to what happens for the input neurons that are referenced and tracked in the input_channel_map attribute.
- The output neurons seem to be missing in the configuration object and, therefore, not allocated (see attached code snippet)
n_input_channels = 12
n_population = 32
n_output_channels = 2
net = Sequential(
LinearTorch((n_input_channels, n_population)), # 12 Input neurons
LIFTorch(n_population, **neuron_parameters), # 32 Neurons
LinearTorch((n_population, n_population)),
LIFTorch(n_population,has_rec=True, **neuron_parameters), #32 Neurons
LinearTorch((n_population, n_output_channels)),
LIFTorch(n_output_channels, **neuron_parameters), # 2 Output Neurons
) # Tot neurons: 12+32+32+2 = 78
net_graph = net.as_graph()
spec = mapper(net_graph)
spec["Iscale"] *= 10
spec.update(autoencoder_quantization(**spec))
config = config_from_specification(**spec)
print(spec['n_neuron'] ) # Correctly prints 66 neurons (not considering the 12 input neurons)
# Print all synapses tags for every allocated neuron
tag = []
for core in config["config"].chips[0].cores:
for neuron in core.neurons:
for synapse in neuron.synapses:
tag.append(synapse.tag)
print(np.unique(tag))
# Prints the tags of 76 neurons (but they should be 78):
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
# 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
# 72 73 74 75]
# Print all destinations tags for every allocated neuron
tag = []
for core in config["config"].chips[0].cores:
for neuron in core.neurons:
for destination in neuron.destinations:
if destination.x_hop != -7 and destination.tag != 0:
tag.append(destination.tag)
print(np.unique(tag))
# Prints the tags of 64 neurons (but they should be 66):
# [12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
# 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
# 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75]
I'm opening this issue because i couldn't find a way to identify the output neurons, after hardware deployment, on DYNAP-SE2: