fangwei123456 / spikingjelly

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

使用visualizing.plot_one_neuron_v_s绘图时,电压未达到阈值就释放脉冲 #415

Closed Taotaonoangry closed 1 year ago

Taotaonoangry commented 1 year ago

`if_layer = neuron.IFNode()

if_layer.reset() x = torch.as_tensor([0.05]) T = 150 s_list = [] v_list = [] for t in range(T): s_list.append(if_layer(x)) v_list.append(if_layer.v)

dpi = 300 figsize = (12, 8) visualizing.plot_one_neuron_v_s(torch.cat(v_list).numpy(), torch.cat(s_list).numpy(), v_threshold=if_layer.v_threshold, v_reset=if_layer.v_reset, figsize=figsize, dpi=dpi) plt.show() `

image

结果显示电压未达到阈值就释放脉冲,请问这是为什么

fangwei123456 commented 1 year ago

v_list.append(if_layer.v) 是放电后的电压,也就是v[t],而你还需要记录h[t]才能显示出充电后、放电前的过阈值的电压 在教程中,把x设置的很小,T设置很大,使得看起来是一样的

下图是一个记录所有H和放电后的V的示例(LIF神经元)

image

Taotaonoangry commented 1 year ago

@fangwei123456 感谢您的及时回复!