Comments (5)
Hi Saif,
Thanks for your interesting questions.
-
Yes, we have experimented with noise added to the ANN during training. See for instance the script snn_toolbox/scripts/ann_architectures/cifar10/noise.py. You are probably aware of the work by Hunsberger et al. in this direction (https://arxiv.org/abs/1510.08829). Were you thinking of adding noise during inference of the SNN as well (instead of just during training of the ANN)? Not sure if this will bring additional benefits, as the SNN is inherently noisy itself. A way to implement noise in the SNN would be to add a random charge to each neuron's membrane potential at every time step, or to change the threshold slightly. To do this, you would have to edit the method snntoolbox.simulation.backends.inisim.temporal_mean_rate_{theano or tensorflow}.SpikeLayer.get_new_mem.
-
I have not done it myself, but since the converted SNN is essentially a Keras model, you can do whatever you would normally do with a Keras network. And of course you can make the neurons inhibitory by constraining the weights to be negative.
-
No, we generally do not retrain the weights after ANN-to-SNN conversion. We only normalize the parameters of the ANN such that the maximum activation in each layer is at most 1, to avoid saturating spike rates in the SNN. However, since the converted SNN is implemented as a Keras model, it is in principle possible to continue training the converted SNN. You just have to decide what learning rule to use (spike-based, rate-based, ...) and implement it ...
Good luck and best regards,
Bodo
from snn_toolbox.
Hi Bodo,
-
My ANN is trained with noise too. For some weird reason, one of my layers have zero activations for some samples. I was wondering if the noise might help, given I was assuming online learning too. Thanks for the clear pointer.
-
I'm learning a lot from you!
-
I'll have to dig into Keras and snntoolbox source code now. If I could implement it, I'd also be able to train a fresh SNN and compare the results. As you might have guessed, I'm a novice. Am I being overly ambitious here?
Best,
Saif
from snn_toolbox.
- There is a growing body of literature on spike-based learning in deep neural networks, with spiking versions of back-propagation, Hebbian / STDP rules etc.
This problem is far from solved, and the existing methods may take some effort to implement. I don't want to discourage you, but yes, this can be a substantial project.
from snn_toolbox.
So there's nothing at all that implements online-learning in SNNs? (even if it's without a GPU)
- What is the use of "batch_size" in the config file if there is no learning taking place?
from snn_toolbox.
- The batch_size parameter in the config file can be used to run several examples in parallel during inference.
For supervised spike-based learning implementations, have a look at
https://github.com/petered/spiking-mlp
https://github.com/fzenke/ssbm
from snn_toolbox.
Related Issues (20)
- TypeError: can't multiply sequence by non-int of type 'float' HOT 4
- IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
- SpinnmanIOException: IO Error: Failed to communicate with the machine HOT 7
- Query regarding INI simulator HOT 6
- Conv1D Conversion Normalization Issue HOT 2
- ONNX model could not be ported to Keras.Mismatched elements 100% HOT 1
- Code required for a research paper HOT 2
- ModuleNotFoundError: No module named 'keras_rewiring' HOT 2
- Which neuromorphic hardware does SNNtoolbox simulate ? HOT 3
- Error happened while building parsed model HOT 2
- Key Error HOT 1
- index -1 is out of bounds for axis 1 with size 0 HOT 2
- Membrane Potential Values after spike conv layer. HOT 1
- Loading a a converted SNN .h5 model using 'load_model' HOT 1
- Energy and runtime estimation for running the SNN on neuromorphic simulator HOT 3
- TTTFS dyn thresh and TTFS corrective not working HOT 2
- Poisson Rate Encoding HOT 4
- Quantization HOT 6
- TTFS HOT 1
- Cannot import name 'literal' from typing. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from snn_toolbox.