Comments (4)
Thanks a lot for the clarification!
It saved me a lot of time as I am trying to port one of these applications to a hardware simulator for spiking neural networks to study their hardware-related properties.
This is a great tool for people trying to understand and use SNNs .
from snn_toolbox.
This is in contrast with my understanding that membrane potential should reset to 0 once the threshold is reached. Also, isn't the threshold supposed to be fixed at 1 for all timesteps?
This is correct. (There is an option in INIsim to reset not to zero but to the excess charge above threshold, called "reset by subtraction". There the membrane potential is reduced by the threshold value at the time of a spike.)
I have noticed weird artifacts in the membrane potential plots before. I attribute them to matplotlib not being able to show the overlapping traces of a large number of neurons, so that sometimes the reset lines and others disappear. But I can't say if it's the case here without seeing the plot.
Try to compare the potential plot against the spiketrain plot. Do the times when the membrane potential crosses threshold have a corresponding dot in the rasterplot?
By the way, which simulator are you using, the builtin INIsim (default) or pyNN? Is the accuracy of the SNN ok?
from snn_toolbox.
Hello, Thanks for your reply.
I am using the default INIsim simulator and SNN accuracy 100% for the single input image. I ran the same simulation again, but this time, changed the reset config to "reset to zero". I also tried plotting the neuron membrane potential by setting "plot_vars = {'v_mem'}" in the config file. However, the tool failed to plot any membrane potential data (it's plotting the other metrics such as correlation, spikerate etc. ok). As a result, I am unable to compare it against the spike train raster plot.
from snn_toolbox.
Oh, I see now - you mentioned that you were looking at the output layer. This layer is special in that it has a softmax nonlinearity. We have different ways of implementing this nonlinearity in INIsim; the default one uses stochastic neurons that just fire in proportion to their membrane potential, without resetting. In the other layers, you should observe the reset as expected.
And yes, when using INIsim, plotting the v_mem is not supported. You can plot the membrane potential when using pyNN simulators.
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.