Comments (4)
个人看法:
1.MNIST的样例中,使用的是泊松编码器。由于图像像素值的范围是0-255,所以至少要仿真255步才能生成255个不同频率的输入脉冲序列。编码器教程中有一副图片展示了泊松编码器输出的累计脉冲,非常直观:
理论上仿真时间太短的话,很多取值相近的像素会无法区分。实际上对于MNIST这样的简单数据集,T可以取很小,因为即便输入图片被二值化也很容易辨认。之后的FashionMNIST识别教程中,直接将图片输入且取了很小的T=8,实际上即便T=1也能有80以上的正确率。
2.增加时间步长可以增加SNN的表达能力。T=1的网络表达能力会明显弱于T=2的网络,类似于半精度的ANN拟合能力要低于全精度网络。
3.MNIST确实比较简单,但直接训练的SNN的拟合能力很强。例如最新的Going Deeper With Directly-Trained Larger Spiking Neural Networks,直接训练的SNN在ImageNet上也能达到接近ANN的性能了。
from spikingjelly.
感谢您的及时回复!
关于3,SNN肯定是可以训练的起来的。因为相比于二值网络,SNN对数据的处理显然是要宽松许多的。既然二值网络可以达到,那SNN肯定也是没有问题的。
而且SNN网络和量化网络的研究内容,如果抛开时间维度的信息的话,重合度非常的高。
所以一直很疑惑,这里的步长信息,究竟是起到的什么样的决定性作用呢?
因为没有任何步长信息的量化网络,也可以取得很好的结果
另外,关于仿真步长的话,在基于模型转换的方法里面,我们都很明确的知道,只有足够长的仿真步长,才能够更好的表示频率的信息。但是在直接训练的模型里面,仿真步长的作用难到依然是起到一个无偏估计的作用吗?
from spikingjelly.
不知,这个问题还没有人专门研究过。数学上倒是有一定意义,更大的T相当于更小的dt,差分方程对微分方程的逼近误差会更小。但并非模型越“仿真”性能就越好
from spikingjelly.
十分感谢!
from spikingjelly.
Related Issues (20)
- Question on the T parameter and the way the input is presented to a SNN HOT 1
- Question on the channels HOT 1
- monitor占显存严重 HOT 11
- How to obtain the surrogate gradient of loss function w.r.t. inputs in SNNs? HOT 2
- 关于测试集精度的问题 HOT 6
- 关于利用STDP优化器与梯度下降混合使用无法分类的问题 HOT 7
- Question on the input encoding in SNN vs SCNN HOT 3
- DVS CIFA准确率问题 HOT 4
- 请问框架中的tdBN方法是还没有完成吗? HOT 7
- PyTorch DDP 无法使用 SyncBatchNorm,疑似因为多步模式下 C 与 N 维度互换 HOT 2
- 请问转换后的基于torch.fx的模型可以进行训练吗 HOT 2
- 自定义神经元参数不更新 HOT 2
- 请教关于“事件驱动”和“时间驱动”的问题 HOT 3
- 关于新神经元模型SRM的开发请求
- Compatibility with the latest NumPy version 1.24 which removes "numpy.int" entry HOT 4
- 运行结果出错 HOT 1
- 如何实现TTFS的神经元 HOT 17
- Is it possible to use the raw event stream (Neuromorphic dataset) to train an SNN model without using frame reconstruction? HOT 1
- 关于ann2snn中snn结构及各个参数的问题
- ann2snn转换结果理解问题 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 spikingjelly.