我正在尝试为一个有784个泊松输入的神经元绘制SpikeMonitor图。但我得到的是一块空白的地块。为什么会发生这种情况?我如何解决它?
我尝试了改变输入神经元的频率,也尝试了改变输出神经元层中神经元的数量(而不是1)。但这并不管用。
以下是我的代码,带有适当的注释:
start_scope()
#a = spike_freqs_img_120*Hz
# Create group of 784 neurons which spike at
# Poisson probability distributed time instances with given 1Hz frequency:
P = PoissonGroup(784, 1*Hz)
# Weight for connection between neurons:
W = 5*siemens
# Equation followed by neuron behaviour:
eqs1 = '''dv/dt = -(v-El)/tau : volt'''
# Create a single neuron which behaves according to the above equation:
neuron = NeuronGroup(100, eqs1, threshold='v>Vt', reset='v=Vr', method='exact')
# Set initial voltage of the neuron:
neuron.v = Vr
# Define how the connections between neurons should be:
synapses = Synapses(P, neuron, 'w: siemens')
synapses.connect() # Make connections
synapses.w = W # Set weight of connection
M = SpikeMonitor(P) # M stores the spike data of neurons in input
N = SpikeMonitor(neuron) # Similarly N stores for output neuron
run(1*second) # run the simulation for 1 second
brian_plot(M) # plot spikemonitor for input neurons
brian_plot(N) # plot spikemonitor for output neuron我得到了brian_plot(M)的正确图表,但brian_plot(N)得不到。brian_plot图形不应该是空白图形。
发布于 2020-04-23 16:22:29
SpikeMonitor是一个存储被激发神经元的时间(T)和索引(I)的对象。如果要绘制图形,则必须确定时间轴和索引轴。您的代码中有一些错误。您还没有定义tau、Er和Vr,因此接收误差是合理的。
brian_plot(M.t/ms, M.i)
brian_plot(N.t/ms, N.i) https://stackoverflow.com/questions/55511698
复制相似问题