CN114186665A - 一种基于gpu的脉冲神经网络仿真方法 - Google Patents
一种基于gpu的脉冲神经网络仿真方法 Download PDFInfo
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000004088 simulation Methods 0.000 title claims abstract description 16
- 210000002569 neuron Anatomy 0.000 claims abstract description 83
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims abstract description 22
- 239000012528 membrane Substances 0.000 claims abstract description 14
- 230000001242 postsynaptic effect Effects 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 5
- 210000004205 output neuron Anatomy 0.000 claims description 15
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims description 12
- 210000000225 synapse Anatomy 0.000 claims description 12
- 238000010304 firing Methods 0.000 claims description 9
- 238000012421 spiking Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000036279 refractory period Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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和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,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
其中: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神经元膜电压计算公式可以写成如下形式:
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
进一步的,所述步骤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定义为:
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
批处理反向传播更新神经网络权值,至此次迭代完成。
与现有技术相比,本发明具有以下有益效果:
本发明通过利用GPU对脉冲神经网络进行仿真加速,提出了一种利用脉冲队列方式实现的脉冲驱动和时间驱动结合的脉冲神经网络,此外本发明提出了一种脉冲神经网络在多GPU下任务分发的策略。通过脉冲驱动方式将计算任务按照策略分发到各个GPU上运行,既能发挥多GPU加速计算的效果,同时避免了大量无脉冲产生的无效运算,极大的降低了模型训练的时间成本,充分发挥了脉冲神经网络在低功耗和低延时等方面的优势。
本发明所涉及的脉冲驱动与时间驱动结合策略,多GPU下任务分配策略等均具有较强的通用型和可扩展性,可以应用于绝大部分脉冲神经网络的情况,弥补脉冲神经网络在训练方面的劣势。同时由于其低延时、低耗能的优势,可以更方面的应用于生产实际的生活中。
附图说明
图1为本发明的方法流程示意图;
图2为软件架构设计图;
图3为系统流程图;
图4为时间驱动和事件驱动的模拟方式;
图5为GPU分发任务策略。
具体实施方式
下面结合实施例对本发明作更进一步的说明。
实施例1
一种基于GPU的脉冲神经网络仿真方法,包括以下步骤:
S1.初始化神经网络结构和网络权值;
所述步骤S1的具体步骤为:
S11.根据数据集的类型选择合适的神经网络结构,并搭建对应的神经网络结构,具体地讲:比如对于MNIST数据集可以选择搭建二层的神经网络结构,并采用全连接的方式连接层与层之间的神经元;对于CiFar数据集可以搭建多层的神经网络结构,先进行一些卷积层的操作,再通过全连接层输出结果;对于Iris数据集可以选用单个神经元结构;网络权值采用随机数的方式随机生成权值,即网络权值采用随机数的方式随机生成一定范围正态分布的权值。
S2.加载数据集并采用脉冲编码模块进行脉冲编码;
所述步骤S2的具体步骤为:
S21.脉冲编码模块采用的是首脉冲编码的方式,即根据输入数据集的最大值与最小值计算脉冲的发放时间;首先规定总时间片长度为T,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
其中: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神经元膜电压计算公式可以写成如下形式:
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
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定义为:
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
批处理反向传播更新神经网络权值,至此次迭代完成。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
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,然后根据数据集每个特征的最大值、最小值以及当前值计算唯一脉冲发放时间,公式:
其中: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神经元膜电压计算公式可以写成如下形式:
一个具体的LIF神经元电压值由电流I(t)决定,而输入电流I(t)是由各个突触上的输入脉冲与其权值求出,令N为神经元输入突触个数,wj为神经元第j个突触的权值,Ij(t)是第j条突触t时刻产生的脉冲,输入电流I(t)写成如下形式:
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定义为:
S62.根据计算出来的损失函数采用梯度下降的方式更新神经网络;
批处理反向传播更新神经网络权值,至此次迭代完成。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114638360A (zh) * | 2022-05-19 | 2022-06-17 | 之江实验室 | 一种用于脉冲神经网络学习与仿真的计算平台及方法 |
CN114692857A (zh) * | 2022-03-31 | 2022-07-01 | 东南大学 | 一种基于事件驱动的脉冲神经网络集群计算框架 |
-
2021
- 2021-11-01 CN CN202111282064.1A patent/CN114186665A/zh active Pending
Cited By (4)
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 |