Releases: soroushdeimi/neuroSush
Releases · soroushdeimi/neuroSush
Release list
v0.3.1
Added
- Package metadata for PyPI (summary, keywords, project links, classifiers) and
CITATION.cff.
Changed
- The README introduces the whole project, links absolutely (so it also works on PyPI), shows
the spiking sequence memory learning, and lists the limitations.
v0.3.0
Added
- Spiking temporal memory:
ActiveSegments(distal dendritic segments with NMDA-like
plateaus and a coincidence window) andMinicolumnInhibition; a layer built from them
activates exactly the cellsTemporalMemoryactivates, checked by
tests/validation/test_segment_math.pyandtest_sequence_math.py. SegmentLearning: the temporal memory's learning in spike time, andsequence_memory,
which builds a spiking sequence memory layer with derived and checked timing. It learns
the same curves asTemporalMemory(tests/validation/test_sequence_learning.py).experiments/sequence_learning.py: the full learning curves, with parameters and seeds.SpatialPooler.state_dict()/load_state_dict()and the same forTemporalMemory
(including its random generator), so both resume exactly.- More of
tests/validation: conv2d, local2d, lateral and pooling currents and the conv and
local STDP rules against the dense synapse-by-synapse definition; reward-modulated STDP
against its closed form, and the distal reward problem (Izhikevich 2007). benchmarks/suite.pyandcompare.py, run weekly by the Benchmarks workflow: throughput
normalized by a calibration workload, compared with a baseline recorded on a GitHub
runner (a case that halves fails).
Fixed
- STDP computed in torch's default dtype instead of the traces' dtype, so a float64
network learned in float32 precision (and conv and local synapses got float32 updates).
v0.2.0
Added
neurosush.htm: SDR operations with exact match probabilities, scalar, random
distributed and category encoders,SDRClassifier,SpatialPooler,TemporalMemory,
grid cell modules,ActiveDendrites, and voting columns for object recognition.neurosush.predictive_coding.PredictiveCodingNetwork: hierarchical predictive coding with
learned weights, priors and variances.examples/sequence_prediction.pyandexamples/object_recognition.py.Recorder: records attributes of a network, neuron group or synapse group over time.neurosush.checkpoint: save and load the complete state of a network and resume it
exactly, batched or not.Behavior.state_dict()/load_state_dict(), and the same for delay buffers.- Strict mypy type checking of the package (in
scripts/check.shand CI). tests/validation: the spiking core checked against the closed-form solutions of its
equations (LIF, exponential and adaptive LIF, traces, STDP, inhibitory STDP, homeostasis,
dopamine, Poisson encoders and delays).- Tests marked
gputhat compare CUDA and CPU runs, pre-commit hooks (also run by the CI
lint job), and Dependabot updates for pip and GitHub Actions.
Changed
- A synaptic input without
SpikeGatheris now an error; before, the synapse silently
delivered no current. SpikeGatherneeds anAxononly on the source;syn.post_spikeis gathered when the
destination has one too (traces and plasticity need it and say so).Axonchecks that thedst_delayof incoming synapses fits its history.- A group shape in a JSON spec that is neither an int nor three ints raises
ValueError.
v0.1.0
Added
- Simulation core:
Network,NeuronGroup,SynapseGroup,Behaviorwith an explicit
executionOrder, delay buffers, and seeded randomness. - Neurons:
LIF,ELIF,AdaptiveELIFwith pure dynamics,Fire,KWTA,InherentNoise,
Axondelays,DendriteStructureandDendriteIntegration(proximal, distal, apical),
ActivityHomeostasis,VoltageHomeostasis, andSpikeInput. - Synapses:
WeightInit(dense or sparse),DelayInit, dense, one-to-one, sparse, conv2d,
local2d, lateral and average-pooling inputs,SpikeGather,Traces,STDP,RSTDP,
ISTDP,WeightClip,WeightNormalization,CurrentNormalization. PayoffandDopaminereward modulation.- Poisson and latency encoders, DoG and Gabor kernels, grid masks,
LocationDatasetand
spike_frames. - Cortical structures: layers with ports,
connect,CorticalColumn, and JSON specs built
through a class registry. examples/two_patterns.py, which learns two input patterns with STDP.- Fast paths: ring-buffer delays validated once, and event-driven in-place STDP for dense
synapses (5-6x faster on CPU);benchmarks/dense_stdp.pymeasures it. - Batched simulation:
Network(batch_size=B)andspike_frames(..., batch_size=B)runB
samples side by side with shared weights (about 23,000 sample-steps/s on a laptop GPU for
the 784 -> 400 benchmark). - CI (lint, tests on Python 3.10 to 3.13, coverage, build) and a tag-driven release workflow
with PyPI trusted publishing.