CN114186665A - 一种基于gpu的脉冲神经网络仿真方法 - Google Patents

一种基于gpu的脉冲神经网络仿真方法 Download PDF

Info

Publication number
CN114186665A
CN114186665A CN202111282064.1A CN202111282064A CN114186665A CN 114186665 A CN114186665 A CN 114186665A CN 202111282064 A CN202111282064 A CN 202111282064A CN 114186665 A CN114186665 A CN 114186665A
Authority
CN
China
Prior art keywords
pulse
neuron
gpu
neural network
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111282064.1A
Other languages
English (en)
Inventor
袁家斌
夏涛
李若玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202111282064.1A priority Critical patent/CN114186665A/zh
Publication of CN114186665A publication Critical patent/CN114186665A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于GPU的脉冲神经网络仿真方法,初始化神经网络结构和网络权值;加载数据集并采用脉冲编码模块进行脉冲编码;调用GPU计算模块根据计算任务的数据量、计算量和优先级选择合适的GPU计算脉冲神经元膜电压,并比较是否超过阈值,发放脉冲;创建脉冲队列,将触发脉冲的神经元加入脉冲队列;若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复S3‑S5,直至到达输出层;根据输出层的结果与实际脉冲结果计算损失函数,并采用梯度下降的方式更新神经网络,至此一次迭代完成。本发明加速了脉冲神经网络的训练速度,发挥了脉冲神经网络在低功耗和低延时方面的优势,避免了数据集过大,显存不够,无法训练的情况。

Description

一种基于GPU的脉冲神经网络仿真方法
技术领域
本发明属于脉冲神经网络、类脑计算、高性能计算技术领域,具体涉及一种基于GPU的脉冲神经网络仿真方法。
背景技术
脉冲神经网络是第三代人工神经网络,以脉冲神经元为基本单位,彼此连接形成的神经网络。脉冲神经元的膜电位以非线性的方式累积,达到阈值电位后发放脉冲并进入不应期冷却,同时脉冲传递给下一个神经元。大型的脉冲神经网络不仅可以获得强大的计算能力,而且可以更好的验证生物动力学特性。
随着脉冲神经网络技术的成熟,脉冲神经网络趋向更加深层庞大的网络。利用硬件加速脉冲神经网络的方法受到了研究学者们的关注,硬件主要可以归为三类:类脑芯片、GPU和CPU结合的异构架构、FPGA。类脑芯片无论是功耗还是效率均是为脉冲神经网络量身定制,不过普及率低;FPGA具有低功耗、灵活性好等优点,同样也不普及,学习成本也是一个问题;相比较之下,在GPU越来越普及的情况下利用GPU加速脉冲神经网络方式可以大大提高研究人员的研发效率。
但是,现有的基于GPU的脉冲神经网络仿真技术仍存在以下缺点:脉冲神经网络模型多是时间驱动的方式,没有充分发挥脉冲稀疏性的优势;基于GPU的脉冲神经网络多是利用GPU进行加速,不能扩展到多节点下进行加速;GPU的脉冲神经网络训练中存在大量的无效运算,浪费计算资源。
发明内容
针对上述技术的不足之处,本发明提出了一种基于GPU的脉冲神经网络仿真方法,通过结合时间驱动和脉冲驱动的方式,更好的利用了脉冲神经网络的脉冲稀疏性特点,节省了大量无效运算;同时可以支持多GPU和多节点下的大型数据集训练,可以根据任务量和优先级对GPU进行合理的计算任务分配。
为实现上述目的,本发明采用的技术方案为:
一种基于GPU的脉冲神经网络仿真方法,包括以下步骤:
S1.初始化神经网络结构和网络权值;
S2.加载数据集并采用脉冲编码模块进行脉冲编码;
S3.调用GPU计算模块根据计算任务的数据量、计算量和优先级选择合适的GPU计算脉冲神经元膜电压,并比较是否超过阈值,发放脉冲;
S4.创建脉冲队列,将触发脉冲的神经元加入脉冲队列;
S5.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层;
S6.根据输出层的结果与实际脉冲结果计算损失函数,并采用梯度下降的方式更新神经网络,至此一次迭代完成。
所述步骤S1的具体步骤为:
S11.根据数据集的类型选择合适的神经网络结构,并搭建对应的神经网络结构;网络权值采用随机数的方式随机生成权值。
进一步的,所述步骤S2的具体步骤为:
S21.脉冲编码模块采用的是首脉冲编码的方式,即根据输入数据集的最大值与最小值计算脉冲的发放时间;首先规定总时间片长度为T,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
Figure BDA0003331504270000021
其中:ti表示第i个数据经过脉冲编码转换后脉冲发放的时间,Imax表示数据集各个特征的最大值,Imin表示数据集各个特征的最小值,Ii表示数据集各个特征的当前值,T表示总时间片长度;通过脉冲编码模块对数据集进行脉冲编码之后,数据集的各个实数就被转换成各个仅包含0和1的脉冲序列,将数据集处理成脉冲序列;
进一步的,所述步骤S3的具体步骤为:
S31.调用GPU计算模块获取当前计算机的GPU信息,计算模块会根据GPU的显存使用情况和GPU使用率进行排序,优先调用GPU使用空闲并且显存剩余的GPU来处理紧急任务,具体GPU的选择还要根据计算任务本身的数据量、计算量和优先级来决定;
S32.计算任务记作τ,共有n个计算任务,其中:第i个任务记作τi,假设任务队列Γ={τ0,τ1,…τi,…τn-1}有n个任务,对于每一个任务有数据量、计算量和优先级三个属性,其中:任务的数据量是根据数据集大小来计算其显存占用大小,任务的计算量是根据任务的实际计算操作数量乘以数据量的大小,优先级满足后层网络优先级高于前层网络,并且时间片早的任务优先级大于时间片晚的任务优先级;
S33.当单任务需要处理时候,首先根据任务的三个属性寻找是否有满足要求的GPU,找出最空闲的GPU,并开始处理任务;当没有找到满足要求的GPU时候,若数据量无法一次性装载进显存,则调用计算模块的功能函数对数据进行拆分;
S34.当多任务同时需要处理时候,首先根据任务的优先级情况,优先挑选出高优先级的任务选择合适的GPU完成计算需求,当优先级相同时,优先选择数据量小的任务完成,当数据量也相同时,优先选择计算量小的任务完成;
S35.最后根据任务计算出来的脉冲神经元的电压值,与阈值作比较,判断是否发放脉冲,令τm称为膜时间常数,Rm是电阻常量,u(t)为膜电压值,I(t)为输入电流,LIF神经元膜电压计算公式可以写成如下形式:
Figure BDA0003331504270000031
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
Figure BDA0003331504270000032
进一步的,所述步骤S4的具体步骤为:
S41.脉冲队列是用于存放当前时刻发放脉冲的神经元的容器,当模型从t=0时刻迭代开始,首先根据步骤S3计算输入脉冲的电压值找出产生脉冲的神经元,若无脉冲产生,则直接跳转至下一时刻重新输入脉冲;若有脉冲产生则找到神经网络中下一层中对应连接的神经元,并将下一层中对应连接的神经元入队列,并将发放脉冲的神经元的电压调整至复位电压。
进一步的,所述步骤S5的具体步骤为:
S51.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层且当前时刻为时间片总长度T,最后保存其输出脉冲序列;当脉冲队列中神经元是输出层神经元,且当前时刻不为T,则t=t+1从输入脉冲开始迭代。
进一步的,所述步骤S6的具体步骤为:
S61.根据输出层的结果与实际脉冲结果误差计算损失函数,令e为所有输出神经元的损失列表,c为输出神经元数量,ek为第k个输出神经元的损失,Tk为目标脉冲输出序列第k个输出神经元的脉冲发放时间,tk为实际脉冲输出序列第k个输出神经元的脉冲发放时间,具体定义如下:
e=[e1,e2,…,ec]and ek=(Tk-tk)/T
总损失函数L定义为:
Figure BDA0003331504270000041
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
对于隐藏层,采用了Spiking Relu函数更新权值,
Figure BDA0003331504270000042
为第l层m个神经元,
Figure BDA0003331504270000043
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure BDA0003331504270000044
为l-1层p个神经元是否发放脉冲,更新规则如下所示:
Figure BDA0003331504270000045
LIF模型的更新规则如下,L为总损失函数,
Figure BDA0003331504270000046
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure BDA0003331504270000047
为第l层第m个神经元的损失值,
Figure BDA0003331504270000048
为第l层第m个神经元的脉冲发放时间,
Figure BDA0003331504270000049
为第l-1层第p个神经元的脉冲序列。
Figure BDA00033315042700000410
批处理反向传播更新神经网络权值,至此次迭代完成。
与现有技术相比,本发明具有以下有益效果:
本发明通过利用GPU对脉冲神经网络进行仿真加速,提出了一种利用脉冲队列方式实现的脉冲驱动和时间驱动结合的脉冲神经网络,此外本发明提出了一种脉冲神经网络在多GPU下任务分发的策略。通过脉冲驱动方式将计算任务按照策略分发到各个GPU上运行,既能发挥多GPU加速计算的效果,同时避免了大量无脉冲产生的无效运算,极大的降低了模型训练的时间成本,充分发挥了脉冲神经网络在低功耗和低延时等方面的优势。
本发明所涉及的脉冲驱动与时间驱动结合策略,多GPU下任务分配策略等均具有较强的通用型和可扩展性,可以应用于绝大部分脉冲神经网络的情况,弥补脉冲神经网络在训练方面的劣势。同时由于其低延时、低耗能的优势,可以更方面的应用于生产实际的生活中。
附图说明
图1为本发明的方法流程示意图;
图2为软件架构设计图;
图3为系统流程图;
图4为时间驱动和事件驱动的模拟方式;
图5为GPU分发任务策略。
具体实施方式
下面结合实施例对本发明作更进一步的说明。
实施例1
一种基于GPU的脉冲神经网络仿真方法,包括以下步骤:
S1.初始化神经网络结构和网络权值;
所述步骤S1的具体步骤为:
S11.根据数据集的类型选择合适的神经网络结构,并搭建对应的神经网络结构,具体地讲:比如对于MNIST数据集可以选择搭建二层的神经网络结构,并采用全连接的方式连接层与层之间的神经元;对于CiFar数据集可以搭建多层的神经网络结构,先进行一些卷积层的操作,再通过全连接层输出结果;对于Iris数据集可以选用单个神经元结构;网络权值采用随机数的方式随机生成权值,即网络权值采用随机数的方式随机生成一定范围正态分布的权值。
S2.加载数据集并采用脉冲编码模块进行脉冲编码;
所述步骤S2的具体步骤为:
S21.脉冲编码模块采用的是首脉冲编码的方式,即根据输入数据集的最大值与最小值计算脉冲的发放时间;首先规定总时间片长度为T,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
Figure BDA0003331504270000051
其中:ti表示第i个数据经过脉冲编码转换后脉冲发放的时间,Imax表示数据集各个特征的最大值,Imin表示数据集各个特征的最小值,Ii表示数据集各个特征的当前值,T表示总时间片长度;通过脉冲编码模块对数据集进行脉冲编码之后,数据集的各个实数就被转换成各个仅包含0和1的脉冲序列,将数据集处理成脉冲序列;
S3.调用GPU计算模块根据计算任务的数据量、计算量和优先级选择合适的GPU计算脉冲神经元膜电压,并比较是否超过阈值,发放脉冲;
所述步骤S3的具体步骤为:
S31.调用GPU计算模块获取当前计算机的GPU信息,计算模块会根据GPU的显存使用情况和GPU使用率进行排序,优先调用GPU使用空闲并且显存剩余的GPU来处理紧急任务,具体GPU的选择还要根据计算任务本身的数据量、计算量和优先级来决定;
S32.计算任务记作τ,共有n个计算任务,其中:第i个任务记作τi,假设任务队列Γ={τ0,τ1,…τi,…τn-1}有n个任务,对于每一个任务有数据量、计算量和优先级三个属性,其中:任务的数据量是根据数据集大小来计算其显存占用大小,任务的计算量是根据任务的实际计算操作数量乘以数据量的大小,优先级满足后层网络优先级高于前层网络,并且时间片早的任务优先级大于时间片晚的任务优先级;
S33.当单任务需要处理时候,首先根据任务的三个属性寻找是否有满足要求的GPU,找出最空闲的GPU,并开始处理任务;当没有找到满足要求的GPU时候,若数据量过大,即数据量无法一次性装载进显存,则调用计算模块的功能函数对数据进行拆分;
S34.当多任务同时需要处理时候,首先根据任务的优先级情况,优先挑选出高优先级的任务选择合适的GPU完成计算需求,当优先级相同时,优先选择数据量小的任务完成,当数据量也相同时,优先选择计算量小的任务完成;
S35.最后根据任务计算出来的脉冲神经元的电压值,与阈值作比较,判断是否发放脉冲,令τm称为膜时间常数,Rm是电阻常量,u(t)为膜电压值,I(t)为输入电流,LIF神经元膜电压计算公式可以写成如下形式:
Figure BDA0003331504270000061
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
Figure BDA0003331504270000071
S4.创建脉冲队列,将触发脉冲的神经元加入脉冲队列;
所述步骤S4的具体步骤为:
S41.脉冲队列是用于存放当前时刻发放脉冲的神经元的容器,当模型从t=0时刻迭代开始,首先根据步骤S3计算输入脉冲的电压值找出产生脉冲的神经元,若无脉冲产生,则直接跳转至下一时刻重新输入脉冲;若有脉冲产生则找到神经网络中下一层中对应连接的神经元,并将下一层中对应连接的神经元入队列,并将发放脉冲的神经元的电压调整至复位电压。
S5.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层;
所述步骤S5的具体步骤为:
S51.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层且当前时刻为时间片总长度T,最后保存其输出脉冲序列;当脉冲队列中神经元是输出层神经元,且当前时刻不为T,则t=t+1从输入脉冲开始迭代。
S6.根据输出层的结果与实际脉冲结果计算损失函数,并采用梯度下降的方式更新神经网络,至此一次迭代完成;
所述步骤S6的具体步骤为:
S61.根据输出层的结果与实际脉冲结果误差计算损失函数,令e为所有输出神经元的损失列表,c为输出神经元数量,ek为第k个输出神经元的损失,Tk为目标脉冲输出序列第k个输出神经元的脉冲发放时间,tk为实际脉冲输出序列第k个输出神经元的脉冲发放时间,具体定义如下:
e=[e1,e2,…,ec]and ek=(Tk-tk)/T
总损失函数L定义为:
Figure BDA0003331504270000081
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
对于隐藏层,采用了Spiking Relu函数更新权值,
Figure BDA0003331504270000082
为第l层m个神经元,
Figure BDA0003331504270000083
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure BDA0003331504270000084
为l-1层p个神经元是否发放脉冲,更新规则如下所示:
Figure BDA0003331504270000085
LIF模型的更新规则如下,L为总损失函数,
Figure BDA0003331504270000086
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure BDA0003331504270000087
为第l层第m个神经元的损失值,
Figure BDA0003331504270000088
为第l层第m个神经元的脉冲发放时间,
Figure BDA0003331504270000089
为第l-1层第p个神经元的脉冲序列。
Figure BDA00033315042700000810
批处理反向传播更新神经网络权值,至此次迭代完成。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种基于GPU的脉冲神经网络仿真方法,其特征在于,包括以下步骤:
S1.初始化神经网络结构和网络权值;
S2.加载数据集并采用脉冲编码模块进行脉冲编码;
S3.调用GPU计算模块根据计算任务的数据量、计算量和优先级选择合适的GPU计算脉冲神经元膜电压,并比较是否超过阈值,发放脉冲;
S4.创建脉冲队列,将触发脉冲的神经元加入脉冲队列;
S5.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层;
S6.根据输出层的结果与实际脉冲结果计算损失函数,并采用梯度下降的方式更新神经网络,至此一次迭代完成。
2.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S1的具体步骤为:
S11.根据数据集的类型选择合适的神经网络结构,并搭建对应的神经网络结构;网络权值采用随机数的方式随机生成权值。
3.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S2的具体步骤为:
S21.脉冲编码模块采用的是首脉冲编码的方式,即根据输入数据集的最大值与最小值计算脉冲的发放时间;首先规定总时间片长度为T,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
Figure FDA0003331504260000011
其中:ti表示第i个数据经过脉冲编码转换后脉冲发放的时间,Imax表示数据集各个特征的最大值,Imin表示数据集各个特征的最小值,Ii表示数据集各个特征的当前值,T表示总时间片长度;通过脉冲编码模块对数据集进行脉冲编码之后,数据集的各个实数就被转换成各个仅包含0和1的脉冲序列,将数据集处理成脉冲序列。
4.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S3的具体步骤为:
S31.调用GPU计算模块获取当前计算机的GPU信息,计算模块会根据GPU的显存使用情况和GPU使用率进行排序,优先调用GPU使用空闲并且显存剩余的GPU来处理紧急任务,具体GPU的选择还要根据计算任务本身的数据量、计算量和优先级来决定;
S32.计算任务记作τ,共有n个计算任务,其中:第i个任务记作τi,假设任务队列Γ={τ0,τ1,…τi,…τn-1}有n个任务,对于每一个任务有数据量、计算量和优先级三个属性,其中:任务的数据量是根据数据集大小来计算其显存占用大小,任务的计算量是根据任务的实际计算操作数量乘以数据量的大小,优先级满足后层网络优先级高于前层网络,并且时间片早的任务优先级大于时间片晚的任务优先级;
S33.当单任务需要处理时候,首先根据任务的三个属性寻找是否有满足要求的GPU,找出最空闲的GPU,并开始处理任务;当没有找到满足要求的GPU时候,若数据量无法一次性装载进显存,则调用计算模块的功能函数对数据进行拆分;
S34.当多任务同时需要处理时候,首先根据任务的优先级情况,优先挑选出高优先级的任务选择合适的GPU完成计算需求,当优先级相同时,优先选择数据量小的任务完成,当数据量也相同时,优先选择计算量小的任务完成;
S35.最后根据任务计算出来的脉冲神经元的电压值,与阈值作比较,判断是否发放脉冲,令τm称为膜时间常数,Rm是电阻常量,u(t)为膜电压值,I(t)为输入电流,LIF神经元膜电压计算公式可以写成如下形式:
Figure FDA0003331504260000021
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
Figure FDA0003331504260000022
5.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S4的具体步骤为:
S41.脉冲队列是用于存放当前时刻发放脉冲的神经元的容器,当模型从t=0时刻迭代开始,首先根据步骤S3计算输入脉冲的电压值找出产生脉冲的神经元,若无脉冲产生,则直接跳转至下一时刻重新输入脉冲;若有脉冲产生则找到神经网络中下一层中对应连接的神经元,并将下一层中对应连接的神经元入队列,并将发放脉冲的神经元的电压调整至复位电压。
6.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S5的具体步骤为:
S51.若脉冲队列不为空,则根据网络结构找到下一层对应的突触后神经元,重复步骤S3-S5,直至到达输出层且当前时刻为时间片总长度T,最后保存其输出脉冲序列;当脉冲队列中神经元是输出层神经元,且当前时刻不为T,则t=t+1从输入脉冲开始迭代。
7.根据权利要求1所述的基于GPU的脉冲神经网络仿真方法,其特征在于,
所述步骤S6的具体步骤为:
S61.根据输出层的结果与实际脉冲结果误差计算损失函数,令e为所有输出神经元的损失列表,c为输出神经元数量,ek为第k个输出神经元的损失,Tk为目标脉冲输出序列第k个输出神经元的脉冲发放时间,tk为实际脉冲输出序列第k个输出神经元的脉冲发放时间,具体定义如下:
e=[e1,e2,…,ec]and ek=(Tk-tk)/T
总损失函数L定义为:
Figure FDA0003331504260000031
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
对于隐藏层,采用了Spiking Relu函数更新权值,
Figure FDA0003331504260000032
为第l层m个神经元,
Figure FDA0003331504260000033
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure FDA0003331504260000034
为l-1层p个神经元是否发放脉冲,更新规则如下所示:
Figure FDA0003331504260000035
LIF模型的更新规则如下,L为总损失函数,
Figure FDA0003331504260000036
为第l层第m个神经元与上一层第p个神经元的连接权重,
Figure FDA0003331504260000037
为第l层第m个神经元的损失值,
Figure FDA0003331504260000038
为第l层第m个神经元的脉冲发放时间,
Figure FDA0003331504260000039
为第l-1层第p个神经元的脉冲序列;
Figure FDA00033315042600000310
批处理反向传播更新神经网络权值,至此次迭代完成。
CN202111282064.1A 2021-11-01 2021-11-01 一种基于gpu的脉冲神经网络仿真方法 Pending CN114186665A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111282064.1A CN114186665A (zh) 2021-11-01 2021-11-01 一种基于gpu的脉冲神经网络仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111282064.1A CN114186665A (zh) 2021-11-01 2021-11-01 一种基于gpu的脉冲神经网络仿真方法

Publications (1)

Publication Number Publication Date
CN114186665A true CN114186665A (zh) 2022-03-15

Family

ID=80601759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111282064.1A Pending CN114186665A (zh) 2021-11-01 2021-11-01 一种基于gpu的脉冲神经网络仿真方法

Country Status (1)

Country Link
CN (1) CN114186665A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114638360A (zh) * 2022-05-19 2022-06-17 之江实验室 一种用于脉冲神经网络学习与仿真的计算平台及方法
CN114692857A (zh) * 2022-03-31 2022-07-01 东南大学 一种基于事件驱动的脉冲神经网络集群计算框架

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692857A (zh) * 2022-03-31 2022-07-01 东南大学 一种基于事件驱动的脉冲神经网络集群计算框架
CN114692857B (zh) * 2022-03-31 2024-07-02 东南大学 一种基于事件驱动的脉冲神经网络集群计算框架
CN114638360A (zh) * 2022-05-19 2022-06-17 之江实验室 一种用于脉冲神经网络学习与仿真的计算平台及方法
WO2023221668A1 (zh) * 2022-05-19 2023-11-23 之江实验室 用于脉冲神经网络学习与仿真的计算平台、方法及装置

Similar Documents

Publication Publication Date Title
CN111858009B (zh) 基于迁移和强化学习的移动边缘计算系统任务调度方法
CN107092959B (zh) 基于stdp非监督学习算法的脉冲神经网络模型构建方法
CN106845633B (zh) 神经网络信息转换方法和系统
CN114186665A (zh) 一种基于gpu的脉冲神经网络仿真方法
CN104751842B (zh) 深度神经网络的优化方法及系统
JP2017509953A (ja) 低スパイキングレートのためのニューラルネットワークを構成すること
CN113570039B (zh) 一种基于强化学习的优化共识的区块链系统
CN109976908A (zh) 一种基于rnn时间序列预测的服务器集群动态伸缩方法
CN113077052A (zh) 用于稀疏奖励环境的强化学习方法、装置、设备及介质
CN113485826A (zh) 一种边缘服务器负载均衡方法、系统
CN112288080A (zh) 面向脉冲神经网络的自适应模型转化方法及系统
CN115374853A (zh) 基于T-Step聚合算法的异步联邦学习方法及系统
CN116579418A (zh) 联邦边缘学习环境下模型分割优化的隐私数据保护方法
CN112307667A (zh) 一种蓄电池的荷电状态估算方法、装置、电子设备及存储介质
CN115936070A (zh) 一种低延时低功耗脉冲神经网络转换方法
CN114202068B (zh) 面向类脑计算芯片的自学习实现系统
CN115470889A (zh) 基于强化学习的片上网络自主最优映射探索系统及方法
CN117234710A (zh) 一种采用强化学习实现ai模型训练内存优化的方法
KR102191346B1 (ko) 버스트 스파이크에 기반한 스파이킹 신경망 생성 방법 및 스파이킹 신경망 기반 추론 장치
CN116039715A (zh) 列车虚拟编组运行控制方法及装置
CN114401192B (zh) 一种多sdn控制器协同训练方法
CN114708639A (zh) 一种基于异构脉冲神经网络的人脸识别的fpga芯片
Gao Study on new evolutionary neural network
CN114239405A (zh) 一种脉冲神经网络神经元膜电压计算方法
CN113361892A (zh) 基于时序云模型的电动汽车需求响应潜力估计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination