Releases: jeshraghian/snntorch
v0.8.1
New Features
Compatibility with NIR
- add Synaptic support for CubaLIF, update tau/r for Leaky by @pengzhouzp in #227
- Update NIR <> snnTorch by @stevenabreu7 in #246
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
- LeakyParallel Neuron Implementation by @jeshraghian in #266
- Parallel by @jeshraghian in #288
Custom Surrogate Gradients
- Custom Surrogate Gradient Function by @mehranfaraji in #237
- remove duplicated arctangent formula by @abrasumente233 in #238
- Update snntorch.surrogate.rst by @ahenkes1 in #239
State Quantization
- State Quantization more robust for 2-bits by @SreyesVenkatesh in #231
Other Additions
- Btnn tests by @saiftyfirst in #243
- Add MPS as a possible computing backend by @laurentperrinet in #247
- Saiftyfirst/imbalanced class weighting by @saiftyfirst in #255
Bug Fixes
- Update build.yml by @jeshraghian in #233
- modify on synaptic neuron by @be-Berserker in #235
Docs + Tutorials
- Update README.rst by @jeshraghian in #241
- zh-cn Tutorial_1 Merge Request by @ruhai-lin in #245
- citation update by @jeshraghian in #249
- Update tutorial_5_FCN.ipynb by @jeshraghian in #251
- Update README.rst by @jeshraghian in #259
- Add DVS Gesture Tutorial by @DerrickL25 in #264
- Update tutorial_regression_1.rst by @seanvenadas in #268
- Update tutorial_regression_1.rst by @seanvenadas in #269
- BSNN tutorial by @mercadoerik1031 in #272
- Exoplanet Hunter & zh-cn tutorials Uploaded by @ruhai-lin in #281
- using
tonic
in place ofspikedata
by @laurentperrinet in #267 - adding George's POKERDVS Tutorial by @george203 in #295
- STMNIST addition to snntorch by @shatoparbabanerjee in #273
- Optimized and meticulously refined tutorial materials, meticulously crafted for comprehension and effectiveness. by @djlouie in #297
New Contributors
- @be-Berserker made their first contribution in #235
- @mehranfaraji made their first contribution in #237
- @abrasumente233 made their first contribution in #238
- @ruhai-lin made their first contribution in #245
- @laurentperrinet made their first contribution in #247
- @saiftyfirst made their first contribution in #243
- @DerrickL25 made their first contribution in #264
- @seanvenadas made their first contribution in #268
- @mercadoerik1031 made their first contribution in #272
- @gekkom made their first contribution in #271
- @stevenabreu7 made their first contribution in #246
- @george203 made their first contribution in #295
- @shatoparbabanerjee made their first contribution in #273
- @djlouie made their first contribution in #297
Full Changelog: v0.7.0...v0.8.0
v0.7.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.
What's Changed
- Update leaky.py by @ahenkes1 in #217
- Graded spikes for Leaky by @ahenkes1 in #218
- Fix graded_spikes registration by @ahenkes1 in #220
- feat(neuron, synaptic): add missing args in example by @gianfa in #222
- Fix regression tutorial 2 MNIST data path for linux by @timoklein in #224
- add docstrings to NIR export function by @jeshraghian in #226
New Contributors
- @timoklein made their first contribution in #224
Full Changelog: v0.6.4...v0.7.0
v0.6.0
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
- @ahenkes1 made their first contribution in #127
- @katywarr made their first contribution in #130
- @gianfa made their first contribution in #132
- @TrellixVulnTeam made their first contribution in #135
- @aloe8475 made their first contribution in #174
Full Changelog: v0.5.3...v0.6.0
v0.5.2
What's Changed
- leaky and rleaky state function substract function fix by @pengzhouzp in #95
- Detach and Reset Spikes in RLeaky by @manuelbre in #108
- Integrate ATan Surrogate function. by @ridgerchu in #111
- bptt bug may trigger device inconsistency. by @ridgerchu in #115
- Add a new feature 'probe' by @ridgerchu in #117
New Contributors
- @pengzhouzp made their first contribution in #95
- @manuelbre made their first contribution in #108
- @ridgerchu made their first contribution in #111
- @MegaYEye made their first contribution in #118
Full Changelog: v0.5.1...v0.5.2
alpha-4 release
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
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
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
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