-
Notifications
You must be signed in to change notification settings - Fork 341
Description
In the supervised_mnist.py -example, the "All activity accuracy" and the "Proportion weighting accuracy" are calculated every update_interval iterations. Also, the "assignments" of labels to the neurons in the excitatory layer are calculated, which are used for plotting.
This would be very handy to keep track of how the training is progressing, were it not for the fact that this seems to not be working accurately.
E.g. if you run the example with default arguments, at the end of the training you still get print-outs like
"All activity accuracy: 2.40 (last), 5.26 (average), 93.20 (best)
Proportion weighting accuracy: 82.00 (last), 18.16 (average), 93.20 (best)",
while I personally would have assumed it to be a lot better after 5000 training-iterations.
I think the cause of the issue is that the networks predictions are just compared to the label of the one datum for the next iteration instead of to all the labels of all the data of the last update_interval, for which they are the predictions. This also becomes clear if you look at the description of the method "assign_labels", which calculates the "assignments", "proportions" and "rates": Here, there is explicitly talk of labels as a vector of size n_samples with data labels corresponding to the spiking activity of the network.
P.S. Thank you so much for the great package, by the way :)