MesoNet: neuron-to-class assignment and evaluation split
unsupervised features, then labels for readout assignment. keep assignment data away from the held-out evaluation set
Readout functions: get_neuron_assignments(spike_counts, labels) assigns each neuron to the digit class with its largest mean response; classify_spike_pattern(spike_counts, assignments) sums the responses of neurons assigned to a class and divides by the number assigned to it before ranking classes.
Meaning: feature learning can be unsupervised while this label-assignment/readout stage still uses labels. Document the assignment subset separately from the held-out evaluation subset. The readout's label access should not disappear behind the phrase “unsupervised accuracy.”
Reference questions: are class means computed with equal sample counts? What happens when no neurons are assigned to a class? Are assignments frozen before the final test? If a neuron never fires, does the default zero-valued assignment unintentionally place it in class 0?
Artifacts to retain: training/assignment/test indices, frozen weights, neuron assignments, per-example spike counts and predicted rankings. The archived PDF shows the functions but not a complete provenance chain from them to every later score.
Dataset protocol discrepancy to resolve: the later paper describes a 70/30 training/evaluation split and a one-pass schedule, while the archive contains multiple reference scripts and settings. Select the actual procedure per experiment rather than combining descriptions from different prototypes.
