nest的使用

1.nest中的物理量
时间:ms 电压:mV 电流:pA 电容:pF 电导:nS 脉冲尖峰率:spikes/s 频率:Hz
2.神经元的模型

nest的使用_第1张图片
3.dir(nest)可用来查看nest可用的功能
4.节点和连接:节点可以是神经元,设备和子网络。

neurons=nest.Create("iaf_psc_alpha",100)  #创建神经元及神经元数量100个
get_neuron=nest.GetStatus(neurons)#是一个元组({}).里面的参数有{'t_ref'=30.0,'V_m'=-70.0,'module'=iaf_psc_alpha,'I_e':0.0,'global_id':1,'element_type':neuron,'thread':0,'V_th':-55.0'V_reset':-70.0,}
voltmeter=nest.Create("voltmeter")#获取神经元的电压。
nest.connect(voltmeter,neurons)
get_voltmeter= nest.GetStatus(voltmeter)#是一个元组,类似({},)里面的参数有{'events':{'times':array([1.,2.,3.,4.,5.,.....]),'V_m':array([-70.,-70.,-69.7,-65.,-55.8,.......]),'senders':array([2,2,2,2,2......])},'thread':0},)其中times代表时间,V_m代表神经元膜电位,senders代表神经元id。
spikedetector = nest.Create("spike_detector")#detector用来监测神经元的发射脉冲
nest.connect(neurons,spikedetector)
get_detector=nest.GetStatus(spikedetector,'events')[0]#'events':{'times':array([...]),'senders':array([.....])}.times代表脉冲发射的时间。senders代表发射脉冲的神经元id。
spike_times = get_detector['times']
nest.GetStatus(neuron)  #通过字典进行访问节点属性
nest.SetStatus(neuron, {"I_e": 376.0,"t_ref":30.0})#修改字典中的属性
multimeter = nest.Create("multimeter")#创建万用表来记录神经元膜电位
spikedetector = nest.Create("spike_detector", params={"withgid": True, "withtime": True})#记录神经元产生的尖峰
  1. 连接节点
nest.Connect(pos,pre),#eg:nest.Connect(multimeter, neuron);nest.Connect(neuron, spikedetector)

6.创建参数化的节点群neuronpop = nest.Create("iaf_psc_alpha", 100, params={*** })

你可能感兴趣的:(SNN)