fangwei123456 / spikingjelly

SpikingJelly is an open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch.
https://spikingjelly.readthedocs.io
Other
1.22k stars 233 forks source link

请问如何才能求出整个model中所有神经元的数量?因为要计算总的脉冲平均发射率? #538

Open thebug-dev opened 2 months ago

thebug-dev commented 2 months ago

原教程如下: 你可能会好奇这一层神经元的数量是多少。对于 spikingjelly.activation_based.neuron.IFNode 中的绝大多数神经元层,神经元的数量是在初始化或调用 reset() 函数重新初始化后,根据第一次接收的输入的 shape 自动决定的。 是否有办法打印出某一层的神经元数量?

Ym-Shan commented 2 months ago

https://spikingjelly.readthedocs.io/zh-cn/latest/activation_based/monitor.html

可以通过spikingjelly的monitor对每层IF神经元的Spike进行监视以获取spike数量或者firing rate.

某一层的神经元数量就是输入特征图的元素数量(C H W),但要注意时间维度对神经元层的作用方式是重复输入,而不是每一个time都重新创建一层尺寸为[C, H, W]的神经元.

所以可以通过输出神经元前一层的特征图尺寸,再通过上述方法计算得到神经元数量.