Deep and online learning with spiking neural networks in Python
torch.compile()
torch.compile(fullgraph=True)
WIP by @gekkom in https://github.com/jeshraghian/snntorch/pull/271
tonic
in place of spikedata
by @laurentperrinet in https://github.com/jeshraghian/snntorch/pull/267
Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.7.0...v0.8.0
The biggest addition is the snntorch.export
module that interfaces snnTorch modules with the Neuromorphic Intermediate Representation. SNN models trained in various libraries (e.g., Norse, Rockpool, Sinabs, lava-dl, etc.) can be converted in order to take advantage of the backends available in specific libraries.
Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.6.4...v0.7.0
backprop.py
has been deprecatedspikegen
and loss functions updated for macbook usage (metal performance shaders "mps")Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.5.3...v0.6.0
Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.5.1...v0.5.2
RLeaky
RSynaptic
SLSTM
SConv2dLSTM
snntorch.surrogate
snntorch.functional
mse_temporal_loss
function added
Applies mean square error the first F spikes. Option for tolerance included, as well as passing labels to be converted into spike-time targets.
ce_temporal_loss
added
Applies cross entropy loss to an inversion of the first spike. Inversion options include -1 * x and 1/x which means maximizing the logit of the correct class corresponds to minimizing the correct neuron's firing time.
accuracy_temporal
added
Measures accuracy based on the occurrence of the first spike
Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.4.11...v0.5.0
Some of the bugs from the previous versions have now been fixed w.r.t. sizes of tensors in spike encoding.
snntorch.spikegen
snntorch.surrogate
Some of the bugs from the previous versions have now been fixed.
snntorch
snntorch.spikegen
snntorch.surrogate
dev notes
The first functional iteration of snnTorch!
snntorch The workhorse of the package. All neuron models are integrated here, and a default Heaviside gradient is used to override the non-differentiability with conventional autograd methods in PyTorch.
snntorch.backprop
snntorch.spikegen
snntorch.surrogate
snntorch.spikeplot
snntorch.utils