Snntorch Versions Save

Deep and online learning with spiking neural networks in Python

v0.8.1

2 months ago

New Features

Compatibility with NIR

Compatibility with torch.compile()

Leaky Parallel Neurons

Custom Surrogate Gradients

State Quantization

Other Additions

Bug Fixes

Docs + Tutorials

New Contributors

Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.7.0...v0.8.0

v0.7.0

10 months ago

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.

What's Changed

New Contributors

Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.6.4...v0.7.0

v0.6.0

1 year ago

What's Changed

  • Recurrent neuron models have been added and revamped
  • backprop.py has been deprecated
  • Neuron model has been modified such that the rest function is scaled by beta. Seems to enable better performance.
  • Reset mechanisms have been fixed
  • spikegen and loss functions updated for macbook usage (metal performance shaders "mps")
  • neuron computations fixed for DDP (thanks @ridgerchu !)
  • graded spikes have been added (thanks @ahenkes1 !)
  • BatchNormThroughTime (thanks @vinniesun !)
  • Updated Surrogate functions & default surrogate converted to ATan (@ridgerchu again)
  • Input & Output Functions (@ridgerchu again again)

New Contributors

Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.5.3...v0.6.0

v0.5.2

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/jeshraghian/snntorch/compare/v0.5.1...v0.5.2

v0.5.0

2 years ago

What's new?

  • refactored structure of neuron models to make it easier to integrate custom neurons
  • added recurrent Leaky neuron RLeaky
  • added recurrent Synaptic neuron RSynaptic
  • Spiking LSTM neurons added SLSTM
  • Spiking Convolutional 2d LSTMs added SConv2dLSTM
  • learnable thresholds for all neurons
  • learnable explicit recurrence
  • Reset mechanism now includes 'none' as an option
  • update unit tests

snntorch.surrogate

  • Triangular surrogate
  • Straight through estimator

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

v0.2.11

3 years ago

Some of the bugs from the previous versions have now been fixed w.r.t. sizes of tensors in spike encoding.

What's new?

snntorch.spikegen

  • Data & target conversion have been separated out
  • Conversion sizes have been fixed
  • Time dimension is only created if tensor is time-varying (i.e., latency will always have time-dimension; rate might not)
  • Latency & rate target conversion
  • interpolation, on/off spike vals, time to first spike, on/off rate options included

snntorch.surrogate

  • Parameterization of surrogate gradients has been removed from global variable to local variables within closures
  • Spike operator (1/u)
  • Leaky Local spike operator (leaky relu shifted equivalent)
  • Local stochastic spike operator

v0.2.1

3 years ago

Some of the bugs from the previous versions have now been fixed.

What's new?

snntorch

  • SRM0 neuron model fix
  • Reset now applies the threshold rather than '1'
  • Reset by subtraction and reset to zero methods applied to both Stein and SRM0 neurons

snntorch.spikegen

  • Delta modulation

snntorch.surrogate

  • Optimized grad calculation

dev notes

  • Travis-CI is no longer free. Replaced travis.yml with GH actions integration + tox

v0.1.2

3 years ago

The first functional iteration of snnTorch!

What's new?

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.

  • Stein's neuron model
  • SRM0 neuron model
  • firing inhibition, thanks to @xxwang1
  • hidden states can optionally be initialized as instance variables if the user wants to just use a built-in backprop method

snntorch.backprop

  • Backprop through time (BPTT)
  • Truncated backprop through time (TBPTT)
  • Real-time recurrent learning (RTRL)

snntorch.spikegen

  • Poisson spike train generator
  • Rate coding
  • Latency coding

snntorch.surrogate

  • FastSigmoid
  • Sigmoid
  • Spike Rate Escape

snntorch.spikeplot

  • Raster plots
  • Feature map animator
  • Spike count animator

snntorch.utils

  • Data split
  • Data reduction

Plans for alpha-2

  • delta & delta-sigma spike generators for snntorch.spikegen
  • Simplified Stein's model (reduce hidden states from 2 to 1)
  • More surrogate and backprop methods
  • add more tests