spikingjelly icon indicating copy to clipboard operation
spikingjelly copied to clipboard

平均发放速率

Open chenjiefighting opened this issue 2 years ago • 16 comments

你好,我想问一下,随着网络深度的增加,脉冲平均发放频率应该成什么样的趋势?

chenjiefighting avatar Oct 24 '22 00:10 chenjiefighting

不做任何矫正的话,容易出现趋向于0

fangwei123456 avatar Oct 24 '22 02:10 fangwei123456

不做任何矫正的话,容易出现趋向于0

请问一下,有哪些矫正的方法呢?

yizx6 avatar Nov 02 '22 02:11 yizx6

不做任何矫正的话,容易出现趋向于0

请问一下,有哪些矫正的方法呢?

参考最近几年顶会里面涉及SNN的normalization的文章

fangwei123456 avatar Nov 02 '22 02:11 fangwei123456

随着网络深度的增加,脉冲平均发放频率趋于零,请问一下,这和梯度消失是一回事吗?这两者之间有什么联系?

chenjiefighting avatar Nov 21 '22 09:11 chenjiefighting

有一定的关系,如果梯度正常,那网络应该能正常训练;能正常训练的网络就不会出现深层一直输出0的情况

fangwei123456 avatar Nov 21 '22 09:11 fangwei123456

我搭建了一个脉冲神经网络,训练时统计了每一层的脉冲平均发放频率,发现从5层开始脉冲平均发放频率为0了,最终结果也都分为一类,按照你的说法这种情况应该不是梯度消失,可以帮忙分析一下吗?

chenjiefighting avatar Nov 21 '22 10:11 chenjiefighting

可以在cov后面加bn,参考这个

yizx6 avatar Nov 21 '22 10:11 yizx6

梯度不消失只是收敛的必要条件,所以有梯度但不收敛也是正常的

fangwei123456 avatar Nov 21 '22 10:11 fangwei123456

你好,我还有一个问题,目前我使用公式avg_firing_rate = spikes/(neuronT*batchsize)得到网络每一层的平均脉冲发放率,请问如何估算网络的运算量?

chenjiefighting avatar Feb 08 '23 09:02 chenjiefighting

运算量用flop相关的计算库,例如 https://github.com/Lyken17/pytorch-OpCounter

fangwei123456 avatar Feb 08 '23 09:02 fangwei123456

感谢回复,如果是从理论分析ANN的计算开销主要是乘法操作和加法操作,而SNN的计算开销主要是加法操作,请问SNN的可以这样进行估算吗? image

chenjiefighting avatar Feb 08 '23 12:02 chenjiefighting

感谢回复,如果是从理论分析ANN的计算开销主要是乘法操作和加法操作,而SNN的计算开销主要是加法操作,请问SNN的可以这样进行估算吗

原理是这样的

fangwei123456 avatar Feb 09 '23 01:02 fangwei123456

可能是我的表述有问题,其实我想问的是如何用平均脉冲发放率估算SNN的加法操作次数,是在公式1.10的基础上乘平均脉冲发放率吗?

chenjiefighting avatar Feb 09 '23 01:02 chenjiefighting

这个我不确定,我并没有检查这个公式的正确性。

fangwei123456 avatar Feb 09 '23 01:02 fangwei123456

有一个本组师兄做的开源工具,可以试试

https://github.com/iCGY96/syops-counter

fangwei123456 avatar Feb 09 '23 03:02 fangwei123456

好嘞,太感谢了

chenjiefighting avatar Feb 09 '23 03:02 chenjiefighting