Skip to content

Releases: jeshraghian/snntorch

v0.8.1

17 Mar 02:41
Compare
Choose a tag to compare

New Features

Compatibility with NIR

Compatibility with torch.compile()

  • Add support for torch.compile(fullgraph=True) WIP by @gekkom in #271
  • Add torch.compile(fullgraph=True) support for more neuron models by @gekkom in #292
  • Remove default values in autograd functions that break torch.compile by @gekkom in #291

Leaky Parallel Neurons

Custom Surrogate Gradients

State Quantization

Other Additions

Bug Fixes

Docs + Tutorials

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

12 Jul 20:51
Compare
Choose a tag to compare

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: v0.6.4...v0.7.0

v0.6.0

21 Feb 02:41
Compare
Choose a tag to compare

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: v0.5.3...v0.6.0

v0.5.2

04 Aug 08:45
Compare
Choose a tag to compare
v0.5.2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.5.1...v0.5.2

alpha-4 release

10 Feb 20:25
Compare
Choose a tag to compare

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: v0.4.11...v0.5.0

alpha-3 release

17 May 01:23
Compare
Choose a tag to compare
alpha-3 release Pre-release
Pre-release

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

alpha-2 release

27 Feb 08:58
Compare
Choose a tag to compare
alpha-2 release Pre-release
Pre-release

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

alpha-1 release

11 Feb 08:27
Compare
Choose a tag to compare
alpha-1 release Pre-release
Pre-release

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