Download Latest Version 0.3.5_ bug fixes, some of which change results source code.zip (26.2 MB) Google Add to Preferred Sources
Home / 0.3.5
Name Modified Size InfoDownloads / Week
Parent folder
0.3.5_ bug fixes, some of which change results source code.tar.gz 2026-10-29 26.1 MB
0.3.5_ bug fixes, some of which change results source code.zip 2026-10-29 26.2 MB
README.md 2026-10-29 3.1 kB
Totals: 3 Items   52.4 MB 0

Read "Results changes" before upgrading. This release fixes 40+ bugs. Most were crashes, and those fixes change nothing that ran before. A few fix code that ran without error but computed the wrong thing, so the numbers it produces change.

pip install bindsnet==0.3.5 · Python 3.11 to 3.13 · PyTorch 2.14.1

Results changes

  • reset_state_variables() now clears the traces that MSTDP, MSTDPET and Rmax carry across time steps. Before, each trial continued the previous trial's traces. This affects reward-modulated learning with resets between trials, for example examples/breakout/breakout_stdp.py and examples/dotTracing/dot_tracing.py.
  • CSRMNodes and the connections into them now clear their spike history on reset (#815).
  • DiehlAndCook2015(sparse=True) now learns. Before, its input weights never changed.
  • MeanFieldConnection now applies weight_decay (it was silently ignored), and uses each sample's own mean rate instead of mixing samples across the batch. Batch size 1 is unchanged.
  • Sparse MulticompartmentConnection weights now learn as dense ones do at batch size > 1.
  • Rmax.eligibility_trace and the state of MCC_learning.MSTDPET now have a batch dimension first: [batch, source, target].
  • Checkpoints: state_dict() now saves MulticompartmentConnection feature values. A checkpoint from an earlier version fails load_state_dict(..., strict=True); load it with strict=False.

The published results in REPRODUCING.md use code whose outputs are bit-identical before and after this release: dense DiehlAndCook2015, Connection with PostPre, and the convolutional and Izhikevich layers.

Fixed

  • About 25 crashes, mostly at batch size > 1 or with multi-dimensional layer shapes. They were in IzhikevichNodes, CSRMNodes, LocalConnection, the MaxPool connections, NetworkMonitor, MulticompartmentConnection, Rmax, MSTDPET, the weight-bounded rules on SparseConnection, and the MeanField, Normalization, Updating and adaptation features. Each crash has a test that reproduces it.
  • Normalizing an all-zero convolutional or local kernel no longer produces NaN (#814).
  • --seed now makes GPU runs of the examples repeatable. Several examples ran one sample too many, ignored --plot, or crashed; these are fixed.
  • The API reference on Read the Docs was empty; it is back, with no build warnings.

For contributors

  • New regression tests run on every pull request. Seeded networks must reproduce their stored spikes, voltages and weights exactly, and the number of operations per time step is checked. Further checks block pull requests that weaken or delete tests.
  • Changed rule: fixes that change results can ship in any release, and are always listed first in the changelog. Changes that break user code wait for 0.4.0.

Thanks to @AHMETHAKANBEZIR1 for [#813], [#814] and [#815], and for the report behind the mean-field fix (#816).

Full list: CHANGELOG.md (github.com)

Source: README.md, updated 2026-10-29