SNN学习

因为老师拓展新方向,被分配了学习脉冲神经网络(SNN)的课题,今天才想到把自己所学的东西一点一点分享出来,和大家一起讨论学习

Nest仿真器具有python2.x用户接口:pynest, 支持众多神经元模型、突触模型和复杂网络结构。

    利用nest官网提供的已经装好nest的virtualbox虚拟电脑文件,对于nest仿真器进行熟悉,了解神经元的构建,仿真流程等。

1、仿真环境的建立




1)  启动虚拟电脑(ps:启动不了试着不启用USB控制器,开机密码nest)

2)  打开terminal,键入pyhton, 进入python Shell,然后进行程序编写


这个虚拟电脑已经装好好几个仿真器,Brain,nest,Neuron

2、Nest仿真器的使用

上图是pynest用户接口的工作原理

先以单个神经元的构建为例:

Nest中的神经网络由两个基本元素组成:nodes和connections

Step1: Creating nodes

Nodes: neurons, devices or sub-networks

使用Create,Getstatus,SetStataus命令:

import pylab  //pylab是一个抽取仿真结果数据并绘图分析的库

import nest

neuron = nest.Create(“iaf_psc_alpha”) //创建单个神经元,模型为iaf_psc_alpha

nest.GetStatus(neuron) //获取创建的神经元的所有状态信息

nest.GetStatus(neuron,[“V_reset”,”V_th”])

nest.SetStatus(neuron,{“I_e”:376.0})  //设置神经元neuron参数

multimeter = nest.Create(“multimeter”) //device,创建万用表multimeter,监测neuron膜电位变化

nest.SetStatus(multimeter,{“withtime”:True,”record_from”:[“V_m”]})  //记录膜电压V_m随时间的变化

spikedetector=nest.Create("spike_detector",params={"withgid":True, "withtime": True}) //device,创建脉冲探测器来监测脉冲活动发放

Step2:Connecting nodes

    nest.Connect(multimeter, neuron)

    nest.Connect(neuron, spikedetector)

Step3:executesimulation

     nest.Simulate(1000.0)    //进行仿真,仿真时间设置为1000ms

Step4:extracting andplotting data from devices

 dmm = nest.GetStatus(multimeter)[0]

Vms = dmm["events"]["V_m"]

ts = dmm["events"]["times"]

import pylab

pylab.figure(1)

pylab.plot(ts, Vms) //绘制膜电压随时间变化曲线

dSD =nest.GetStatus(spikedetector,keys="events")[0]

evs = dSD["senders"]

ts = dSD["times"]

pylab.figure(2)

pylab.plot(ts, evs, ".") //绘制脉冲事件发生与时间的关系

pylab.show()  //显示figure1,figure2

以上是对单个神经元输入恒定电流刺激,来仿真神经元脉冲活动

    还熟悉了单个神经元由两个泊松脉冲发生器激励训练,一个兴奋性刺激,一个一致型刺激,并对连接权重进行分配。还有两个神经元的连接,突触前神经元由恒定电流刺激。

    还熟悉了神经元群的建立方法,参数设置方法以及神经元链接方式的设置。

 具体可以参照官网的pynest参考手册

总结:

l 本周主要熟悉了nest仿真器的使用方法,对于如何在仿真器构建神经元有了初步的印象。

l Nest仿真器具有python接口,接下来对于python语言要进行学习

l 对于nest仿真器的使用要非常熟悉其库函数的使用,后面再继续熟悉仿真器的使用

l 对于以后将要用到的常用神经元模型,考虑再nest仿真器中如何构建

l 考虑大规模神经网络结构的构建,并学习如何部署在并行计算设备上

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值