CN114398949A - 一种脉冲神经网络模型的训练方法、存储介质及计算设备 - Google Patents
一种脉冲神经网络模型的训练方法、存储介质及计算设备 Download PDFInfo
- Publication number
- CN114398949A CN114398949A CN202111519679.1A CN202111519679A CN114398949A CN 114398949 A CN114398949 A CN 114398949A CN 202111519679 A CN202111519679 A CN 202111519679A CN 114398949 A CN114398949 A CN 114398949A
- Authority
- CN
- China
- Prior art keywords
- computing node
- neural network
- network model
- computing
- local
- 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.)
- Granted
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 112
- 238000012549 training Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000004913 activation Effects 0.000 claims abstract description 47
- 238000005457 optimization Methods 0.000 claims description 72
- 238000012421 spiking Methods 0.000 claims description 31
- 238000013528 artificial neural network Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 10
- 230000001902 propagating effect Effects 0.000 claims 1
- 210000002569 neuron Anatomy 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002490 cerebral effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种脉冲神经网络模型的训练方法、存储介质及计算设备,方法包括:各计算节点进行前向传播确定激活值;各计算节点根据激活值计算并传输局部梯度,使得计算节点仅保存其对应的所有局部梯度;根据所有局部梯度确定目标梯度,根据目标梯度确定局部模型参数;将局部模型参数传输至其他计算节点以更新模型参数。本申请中各计算节点计算每个计算节点的局部梯度,传输并删除其他计算节点的局部梯度,使得各计算节点仅保存其对应的所有局部梯度,这样每个计算节点仅需要存放自身的局部梯度及激活值等,降低对计算节点的显示占用量,从而可以增大脉冲神经网络模型的训练批量,提高脉冲神经网络模型的训练速度。
Description
技术领域
本申请涉及人工智能技术领域,特别涉及一种脉冲神经网络模型的训练方法、存储介质及计算设备。
背景技术
脉冲神经网络(SNN)被誉为“第三代神经网络”,其模拟生物大脑神经元的运作机制,与传统的神经网络相比,在低功耗方面具有较大突破,吸引了越来越多的学者对其进行深入研究。
脉冲神经网络使用最拟合生物神经元机制的模型来进行信号的处理和计算,脉冲神经网络采用脉冲信号,当神经元达到了某一电位值脉冲时产生脉冲信息并重置该神经元的点位。2012年C.Eliasmith提出了一个250万神经元规模的SNN小型类脑模型,该模型可以完成手写数字识别和机械臂运动输出等任务响应。此后,越来越多的SNN模型相继提出,且SNN模型的表现效果也越发的出色。近年来,研究人员通过增加SNN模型中神经元的数量来提升模型的学习能力,例如,结合残差网络的SNN模型包括超过2000万神经元。
然而,在SNN模型能力提升的同时,SNN模型中的神经元的数量也在不断增加,使得SNN模型的越来越复杂。因而,在脉冲神经网络模型的训练过程中,不仅需要依赖大量的昂贵的硬件设施来进行超大规模网络模型的部署,还需要消耗大量的训练时间来进行训练,使得SNN模型的训练成本高且训练效率低。
因而现有技术还有待改进和提高。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种脉冲神经网络模型的训练方法、存储介质及计算设备。
为了解决上述技术问题,本申请实施例第一方面提供了一种脉冲神经网络模型的训练方法,所述的训练方法应用于分布式计算系统,所述分布式计算系统包括多个计算节点,各计算节点均存储所述脉冲神经网络模型的模型参数以及参数优化区间;所述的训练方法包括:
各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值;
对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度;
各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度,并根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数;
各计算节点将各自对应的局部模型参数传输至其他计算节点,以使得各计算节点更新其存储的脉冲神经网络模型的模型参数。
所述脉冲神经网络模型的训练方法,其中,所述脉冲神经网络模型的构建过程具体包括:
构建Resnet269的残差网络,将所述Resnet269的残差网络中的激活层替换为脉冲神经网络层,以得到脉冲神经网络模型。
所述脉冲神经网络模型的训练方法,其中,所述各计算节点各自对应的参数优化区间互不相同,并且各计算节点各自对应的参数优化区间的区间长度相同。
所述脉冲神经网络模型的训练方法,其中,所述各计算节点根据各自对应的训练样本集对脉冲神经网络进行前向传播,确定所述脉冲神经网络模型的激活值具体包括:
各计算节点从数据集中读取相同批量且互不相交的样本数据,以得到各计算节点各自对应的训练样本集;
各计算节点将各自对应的训练样本集输入所述脉冲网络模型进行前向传播,确定所述脉冲神经网络模型的激活值。
所述脉冲神经网络模型的训练方法,其中,对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度具体包括:
在多个计算节点中选取一计算节点作为目标计算节点,各计算节点根据各自对应的激活值分别计算所述目标计算节点的参数优化区间对应的局部梯度;
除所述目标计算节点外的各计算节点将各自计算的局部梯度传输至所述目标计算节点,并删除各自计算的局部梯度;
继续执行在多个计算节点中选取一计算节点作为目标计算节点步骤,直至遍历多个计算节点中的每个计算节点,其中,每次选取的计算节点互不相同。
所述脉冲神经网络模型的训练方法,其中,所述各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度具体为:
各计算节点将各自对应的参数优化区间的所有局部梯度进行Reduce操作,以得到目标梯度。
所述脉冲神经网络模型的训练方法,其中,所述脉冲神经网络模的模型参数为FP32浮点数;所述各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值之前,所述方法包括:
将所述脉冲神经网络模型的模型参数转换为FP16半精度浮点数。
所述脉冲神经网络模型的训练方法,其中,所述目标梯度为FP16半精度浮点数;所述根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数具体包括:
各计算节点将各自对应的目标梯度转换为FP32浮点数;
各计算节点采用FP32浮点数的目标梯度优化各自存储的模型参数中与参数优化区间对应的部分模型参数,以得到局部模型参数。
本申请实施例第二方面提供了一种分布式训练系统,所述分布式训练系统包括多个计算节点,各计算节点均存储所述脉冲神经网络模型的模型参数以及参数优化区间,所述多个计算节点用于执行如上所述的脉冲神经网络模型的训练方法。
本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的脉冲神经网络模型的训练方法中的步骤。
本申请实施例第四方面提供了一种计算设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的脉冲神经网络模型的训练方法中的步骤。
有益效果:与现有技术相比,本申请在反向传播过程中各计算节点分别计算每个计算节点各自对应的参数优化区间的局部梯度,并在将其他计算节点的局部梯度传输给其他计算节点之后将其他计算节点的局部梯度删除,以使得各计算节点仅保存各自对应的参数优化区间的所有局部梯度,这样可以每个计算节点仅需要存放各自对应的局部梯度、激活值以及更新后的参数,降低了对计算节点的显示占用量,从而可以增大脉冲神经网络模型的训练样本的批量,以提高脉冲神经网络模型的训练速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的脉冲神经网络模型的训练方法的流程图。
图2为本申请提供的脉冲神经网络模型的训练方法的脉冲神经网络模型的构建过程的示意图。
图3为本申请提供的脉冲神经网络模型的训练方法的分布式训练的示例图。
图4为本申请提供的脉冲神经网络模型的训练方法的个计算节点存储数据的示意图。
图5为本申请提供的计算设备的结构原理图。
具体实施方式
本申请提供一种脉冲神经网络模型的训练方法、存储介质及计算设备,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
发明人经过研究发现,脉冲神经网络(SNN)被誉为“第三代神经网络”,其模拟生物大脑神经元的运作机制,与传统的神经网络相比,在低功耗方面取得较大突破,吸引了越来越多的学者对其进行深入研究。
脉冲神经网络使用最拟合生物神经元机制的模型来进行信号的处理和计算,脉冲神经网络采用脉冲信号,当神经元达到了某一电位值脉冲时产生脉冲信息并重置该神经元的点位。2012年C.Eliasmith提出了一个250万神经元规模的SNN小型类脑模型,该模型可以完成手写数字识别和机械臂运动输出等任务响应。此后,越来越多的SNN模型相继提出,且SNN模型的表现效果也越发的出色。近年来,研究人员通过增加SNN模型中神经元的数量来提升模型的学习能力,例如,结合残差网络的SNN模型包括超过2000万神经元。
然而,在SNN模型能力提升的同时,SNN模型中的神经元的数量也在不断增加,使得SNN模型的变得越来越复杂。因而,在脉冲神经网络模型的训练过程中,不仅需要依赖大量的昂贵的硬件设施来进行超大规模网络模型的部署,还需要消耗大量的训练时间来进行训练,使得SNN模型的训练成本高且训练效率低。
为了解决上述问题,在本申请实施例中,各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值;对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度;各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度,并根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数;各计算节点将各自对应的局部模型参数传输至其他计算节点,以使得各计算节点更新其存储的脉冲神经网络模型的模型参数。本申请在反向传播过程中各计算节点分别计算每个计算节点各自对应的参数优化区间的局部梯度,并在将其他计算节点的局部梯度传输给其他计算节点之后将其他计算节点的局部梯度删除,以使得各计算节点仅保存各自对应的参数优化区间的所有局部梯度,这样可以每个计算节点仅需要存放各自对应的局部梯度、激活值以及更新后的参数,降低了对计算节点的显示占用量,从而可以增大脉冲神经网络模型的训练样本的批量,以提高脉冲神经网络模型的训练速度。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
本实施例提供了一种脉冲神经网络模型的训练方法,所述的训练方法可以应用于分布式计算系统,所述分布式计算系统可以包括若干服务器,若干服务器中的每个服务器均配置一个或者多个计算节点,每个服务器上配置的每个计算节点均作为实现本实施例提供的脉冲神经网络模型的训练方法的一个计算节点。也就是说,若干服务器包括的所有计算节点可以组成用于脉冲神经网络模型的训练方法的分布式训练系统。其中,计算节点可以为CPU设备,GPU设备,NPU(神经网络处理器)或者其他类型的计算设备,计算设备之间可以成环形连接、网形连接或者其他方式连接。
本实施例提供的一种脉冲神经网络模型的训练方法,如图1所示,所述的训练方法包括:
S10、各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值。
具体地,所述脉冲神经网络模型为超大型脉冲神经网络模型,也就是说,脉冲神经网络模型中的神经元的数量超过一定数量,例如,脉冲神经网络模型中的神经元超过2000万等。在一个实现方式中,脉冲神经网络模型为结合残差网络的网络模型,其中,可以将残差网络中的激活层替换为脉冲神经网络层。基于此,所述脉冲神经网络模型的构建过程具体包括:
构建Resnet269的残差网络,将所述Resnet269的残差网络中的激活层替换为脉冲神经网络层,以得到脉冲神经网络模型。
具体地,Resnet269的残差网络包括若干如图2所示残差模块,其中,所述残差模块与现有Resnet269的残差网络相比,脉冲神经网络模型将现有Resnet269的残差网络中的残差模块中的ReLU激活层用脉冲神经网络(SN)层替换。当然,在实际应用中,脉冲神经网络模型还可以采用其他模型结构,例如,脉冲神经网络模型中的基础残差网络采用ResNeSt101等。
如图3所示,分布式计算系统中的每个计算节点均存储有脉冲神经网络模型的模型参数以及参数优化区间,其中,参数优化区间用于反映在计算节点上进行优化的部分模型参数在模型参数中的位置。基于参数优化区间可以在模型参数中选取到需要在计算节点上进行优化的部分模型参数,其中,部分模型参数包含于脉冲神经网络模型的模型参数中。此外,多个计算节点中的每个计算节点均存储有参数优化区间,各计算节点各自存储的参数优化区间的区间长度相同且互不相交,各计算节点各自存储的参数优化区间的并集等于脉冲神经网络模型的模型参数的参数区间。
在一个实现方式中,参数优化区间可以基于计算节点数量确定,具体地,在确定计算节点数量后,将模型参数按照计算节点数量等分为计算节点数量份的部分模型参数,每个计算节点存储划分后的一份部分模型参数在所述模型参数中的参数位置,以得到各计算节点各自对应的参数优化区间。例如,多个计算节点的节点数量为N,那么将模型参数划分为N份部分模型参数。
所述训练样本集可以包括若干训练样本,训练样本的类型可以是图像样本、语音样本以及自然语音处理样本等。例如,待训练的脉冲神经网络模型是神经网络及其翻译模型时,每条训练样本是一个文本对,该文本对是第一语种文本和第二语种文本的对应关系。此外,训练样本集可以从数据集中选取的部分训练样本构成,也就是说,各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播之前,会从数据集中选取各自对应的训练样本集,并基于选取到的训练样本集对脉冲神经网络模型进行前向传播。
基于此,所述各计算节点根据各自对应的训练样本集对脉冲神经网络进行前向传播,确定所述脉冲神经网络模型的激活值具体包括:
各计算节点从数据集中读取相同批量且互不相交的样本数据,以得到各计算节点各自对应的训练样本集;
各计算节点将各自对应的训练样本集输入所述脉冲网络模型进行前向传播,确定所述脉冲神经网络模型的激活值。
具体地,各计算节点可以同步从数据集中读取相同批量且互不相交的样本数据,其中,批量用于反映训练样本集中的样本数据。也就是说,各计算节点对应的训练样本集包括的样本数据的数量相同,当各训练样本集中的样本数据互不相同。此外,各计算节点可以将各自对应的训练样本集输入到脉冲网络模型执行前向传播,确定所述脉冲神经网络模型的激活值,以便于后续各计算节点基于各自对应的激活值执行反向传播。
S20、对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度。
具体地,梯度为梯度向量,脉冲神经网络模型的每个模型参数对应梯度向量的一个元素,局部梯度包括参数优化区间所包含的各模型参数的梯度元素,局部梯度包含脉冲神经网络模型的模型梯度内。此外,每个计算节点均是基于自身进行前向传播所确定的激活值来计算各计算节点对应的局部梯度,例如,假设多个计算节点包括计算节点A、计算节点B以及计算节点C,计算节点A对应激活值a,计算节点B对应激活值b,计算节点C对应激活值c,计算节点A对应参数优化区间d,计算节点B对应参数优化区间e,计算节点C对应参数优化区间f;那么,当确定计算节点A对应的所有局部梯度时,计算节点A基于激活值a计算参数优化区间d对应的局部梯度t1;计算节点B基于激活值b计算参数优化区间d对应的局部梯度t2,计算节点C基于激活值c计算参数优化区间d对应的局部梯度t3。
在本实施例的一个实现方式中,对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度具体包括:
在多个计算节点中选取一计算节点作为目标计算节点,各计算节点根据各自对应的激活值分别计算所述目标计算节点的参数优化区间对应的局部梯度;
除所述目标计算节点外的各计算节点将各自计算的局部梯度传输至所述目标计算节点,并删除各自计算的局部梯度;
继续执行在多个计算节点中选取一计算节点作为目标计算节点步骤,直至遍历多个计算节点中的每个计算节点,其中,每次选取的计算节点互不相同。
具体地,目标计算节点为多个计算节点中的一个计算节点,各计算节点为多个计算节点中的每个计算节点,包括目标计算节点本身。由此,目标计算节点对应的所有局部梯度的数量与多个计算节点的节点数量相同,其中,所有局部梯度中的一个局部梯度为目标计算节点计算得到的,其余各局部梯度为除目标计算节点外的其他计算节点计算并传输给目标计算节点的。其中,除所述目标计算节点外的各计算节点在将目标计算节点对应的局部梯度传输给目标计算节点后,会将目标计算节点对应的局部梯度清除,这样可以除目标计算节点外的各计算节点不存储目标计算节点对应的局部梯度,从而可以减少各计算节点中的梯度存储量,进而减少对显存的占用量。此外,在实际应用中,除所述目标计算节点外的各计算节点清除目标计算节点对应的局部梯度时,会将用于计算局部梯度的局部激活值清除,进一步降低对显存的占用量。
进一步,在目标计算节点获取到所有局部梯度后,会检测多个计算节点中是否存在为获取到所有局部梯度的计算节点,以确定是否遍历多个计算节点中的每个计算节点;当遍历多个计算节点中的每个计算节点时,完成各计算节点的局部梯度确定过程,反之,当未遍历多个计算节点中的每个计算节点时,在未被遍历多个计算节点中的选取一个计算节点作为目标计算节点以使得每次选取的计算节点互不相同,从而可以避免重复操作。
举例说明:多个计算节点为N个GPU,分别记为GPU0,GPU1,...,GPUN-1,首先计算GPUN-1对应的PN-1部分模型参数(即PN-1部分的参数优化区间对应的部分模型参数)对应的局部梯度:每个GPU各自计算PN-1部分的局部梯度,每个GPU将各自PN-1部分的局部梯度发送到GPUN-1上进行Reduce操作并将PN-1部分的目标梯度保存在GPUN-1,GPU0至GPUN-2分别上PN-1部分的激活值和局部梯度;然后,计算PN-2部分模型参数对应的局部梯度:每个GPU各自计算PN-2部分的局部梯度,每个GPU将各自PN-2部分的局部梯度发送到GPUN-2上进行Reduce操作并将PN-2部分的目标梯度保存在GPUN-2,GPU0至GPUN-3和GPUN-1上清除PN-2部分的激活值和局部梯度,依次类推计算P0至PN-3部分的目标梯度。
S30、各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度,并根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数。
具体地,如图所示,各计算节点仅保存各自对应的所有局部梯度,清除其他计算节点对应的局部梯度。在获取到自身对应的所有局部梯度,将获取到的所有局部梯度进行Reduce操作以得到目标梯度。可以理解的是,目标梯度为计算节点将其对应的参数优化区间的所有局部梯度进行Reduce操作得到。此外,如图4所示,在各计算节点确定各自对应的目标梯度后,可以同步基于各自对应的目标梯度对目标梯度对应的部分模型参数进行优化,以得到优化后的部分模型参数,并且各计算节点将各自对应的优化后的部分模型参数作为各自对应的局部模型参数。其中,根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数时,可以采用Adam优化器进行优化。
S40、各计算节点将各自对应的局部模型参数传输至其他计算节点,以使得各计算节点更新其存储的脉冲神经网络模型的模型参数。
具体地,各计算节点得到各自对应的局部模型参数,可以通过广播形式将各自对应的局部模型参数发送至多个计算节点中每个计算节点,以使得各计算节点获得各计算节点确定的局部模型参数(优化后的模型参数),每个计算节点保存其他计算节点发送的局部模型参数,从而使得每个计算节点均保存了一份优化后的模型参数。这样在下一轮训练过程中,可以采用各自保存的优化后的模型参数作为脉冲神经网络模型的模型参数。
在本实施例的一个实现方式中,所述脉冲神经网络模型的模型参数采用FP32浮点数,在脉冲神经网络模型的训练过程中采用混合精度机制,集在前向计算之前将模型参数转换为FP16半精度浮点数,使得局部梯度以及目标梯度均采用FP16半精度浮点数,然后在基于目标梯度优化模型参数时,将目标梯度转换为FP32浮点数,并采用FP32浮点数的目标梯度对未进行数据类型转好的模型参数进行优化,这样可以通过采用FP16半精度浮点数存储目标梯度,可以进一步减少局部梯度所占用的显存,从而可以进一步脉冲神经网络模型的训练批量,从而可以进一步提高脉冲神经网络模型的训练速度。
基于此,所述各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,计算所述脉冲神经网络模型的模型损失之前,所述方法包括:将所述脉冲神经网络模型的模型参数转换为FP16半精度浮点数。以及,所述根据所述目标模型梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数具体包括:各计算节点将各自对应的目标模型梯度转换为FP32浮点数;各计算节点采用FP32浮点数的目标模型梯度优化各自存储的模型参数中与参数优化区间对应的部分模型参数,以得到局部模型参数。
综上所述,本实施例提供了一种脉冲神经网络模型的训练方法,所述方法包括各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值;对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度;各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度,并根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数;各计算节点将各自对应的局部模型参数传输至其他计算节点,以使得各计算节点更新其存储的脉冲神经网络模型的模型参数。本申请在反向传播过程中各计算节点分别计算每个计算节点各自对应的参数优化区间的局部梯度,并在将其他计算节点的局部梯度传输给其他计算节点之后将其他计算节点的局部梯度删除,以使得各计算节点仅保存各自对应的参数优化区间的所有局部梯度,这样可以每个计算节点仅需要存放各自对应的局部梯度、激活值以及更新后的参数,降低了对计算节点的显示占用量,从而可以增大脉冲神经网络模型的训练样本的批量,以可以提高脉冲神经网络模型的训练速度。
基于上述脉冲神经网络模型的训练方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的脉冲神经网络模型的训练方法中的步骤。
基于上述脉冲神经网络模型的训练方法,本申请还提供了一种计算设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及计算设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种脉冲神经网络模型的训练方法,其特征在于,所述的训练方法应用于分布式计算系统,所述分布式计算系统包括多个计算节点,各计算节点均存储所述脉冲神经网络模型的模型参数以及参数优化区间;所述的训练方法包括:
各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值;
对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度;
各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度,并根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数;
各计算节点将各自对应的局部模型参数传输至其他计算节点,以使得各计算节点更新其存储的脉冲神经网络模型的模型参数。
2.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,所述脉冲神经网络模型的构建过程具体包括:
构建Resnet269的残差网络,将所述Resnet269的残差网络中的激活层替换为脉冲神经网络层,以得到脉冲神经网络模型。
3.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,所述各计算节点各自对应的参数优化区间互不相同,并且各计算节点各自对应的参数优化区间的区间长度相同。
4.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,所述各计算节点根据各自对应的训练样本集对脉冲神经网络进行前向传播,确定所述脉冲神经网络模型的激活值具体包括:
各计算节点从数据集中读取相同批量且互不相交的样本数据,以得到各计算节点各自对应的训练样本集;
各计算节点将各自对应的训练样本集输入所述脉冲网络模型进行前向传播,确定所述脉冲神经网络模型的激活值。
5.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,对于每个计算节点,各计算节点根据各自对应的激活值计算所述计算节点的参数优化区间对应的局部梯度,并将局部梯度传输至所述计算节点,以使得各计算节点保存各自对应的参数优化区间的所有局部梯度具体包括:
在多个计算节点中选取一计算节点作为目标计算节点,各计算节点根据各自对应的激活值分别计算所述目标计算节点的参数优化区间对应的局部梯度;
除所述目标计算节点外的各计算节点将各自计算的局部梯度传输至所述目标计算节点,并删除各自计算的局部梯度;
继续执行在多个计算节点中选取一计算节点作为目标计算节点步骤,直至遍历多个计算节点中的每个计算节点,其中,每次选取的计算节点互不相同。
6.根据权利要求1所述的脉冲神经网络模型的训练方法,其特征在于,所述各计算节点根据各自对应的参数优化区间的所有局部梯度确定目标梯度具体为:
各计算节点将各自对应的参数优化区间的所有局部梯度进行Reduce操作,以得到目标梯度。
7.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,所述脉冲神经网络模的模型参数为FP32浮点数;所述各计算节点根据各自对应的训练样本集对脉冲神经网络模型进行前向传播,确定所述脉冲神经网络模型的激活值之前,所述方法包括:
将所述脉冲神经网络模型的模型参数转换为FP16半精度浮点数。
8.根据权利要求1所述脉冲神经网络模型的训练方法,其特征在于,所述目标梯度为FP16半精度浮点数;所述根据所述目标梯度优化各自对应的参数优化区间对应的部分模型参数,以得到局部模型参数具体包括:
各计算节点将各自对应的目标梯度转换为FP32浮点数;
各计算节点采用FP32浮点数的目标梯度优化各自存储的模型参数中与参数优化区间对应的部分模型参数,以得到局部模型参数。
9.一种分布式训练系统,其特征在于,所述分布式训练系统包括多个计算节点,各计算节点均存储所述脉冲神经网络模型的模型参数以及参数优化区间,所述多个计算节点用于执行如权利要求1-8任一所述的脉冲神经网络模型的训练方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的脉冲神经网络模型的训练方法中的步骤。
11.一种计算设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的脉冲神经网络模型的训练方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111519679.1A CN114398949B (zh) | 2021-12-13 | 2021-12-13 | 一种脉冲神经网络模型的训练方法、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111519679.1A CN114398949B (zh) | 2021-12-13 | 2021-12-13 | 一种脉冲神经网络模型的训练方法、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398949A true CN114398949A (zh) | 2022-04-26 |
CN114398949B CN114398949B (zh) | 2024-07-26 |
Family
ID=81227010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111519679.1A Active CN114398949B (zh) | 2021-12-13 | 2021-12-13 | 一种脉冲神经网络模型的训练方法、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398949B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116681973A (zh) * | 2023-08-03 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN117035123A (zh) * | 2023-10-09 | 2023-11-10 | 之江实验室 | 一种并行训练中的节点通信方法、存储介质、设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503654A (zh) * | 2016-10-24 | 2017-03-15 | 中国地质大学(武汉) | 一种基于深度稀疏自编码网络的人脸情感识别方法 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN109492753A (zh) * | 2018-11-05 | 2019-03-19 | 中山大学 | 一种去中心化的随机梯度下降的方法 |
CN109600255A (zh) * | 2018-12-04 | 2019-04-09 | 中山大学 | 一种去中心化的参数服务器优化算法 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN110929884A (zh) * | 2019-11-22 | 2020-03-27 | 北京大学 | 一种基于列划分的分布式机器学习优化的分类方法及装置 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
CN111783976A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于窗口梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN111783977A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN111814985A (zh) * | 2020-06-30 | 2020-10-23 | 平安科技(深圳)有限公司 | 联邦学习网络下的模型训练方法及其相关设备 |
CN113515370A (zh) * | 2021-04-28 | 2021-10-19 | 之江实验室 | 一种面向大规模深度神经网络的分布式训练方法 |
-
2021
- 2021-12-13 CN CN202111519679.1A patent/CN114398949B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503654A (zh) * | 2016-10-24 | 2017-03-15 | 中国地质大学(武汉) | 一种基于深度稀疏自编码网络的人脸情感识别方法 |
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN109492753A (zh) * | 2018-11-05 | 2019-03-19 | 中山大学 | 一种去中心化的随机梯度下降的方法 |
CN109600255A (zh) * | 2018-12-04 | 2019-04-09 | 中山大学 | 一种去中心化的参数服务器优化算法 |
CN110379416A (zh) * | 2019-08-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种神经网络语言模型训练方法、装置、设备及存储介质 |
CN110929884A (zh) * | 2019-11-22 | 2020-03-27 | 北京大学 | 一种基于列划分的分布式机器学习优化的分类方法及装置 |
CN111783976A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于窗口梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN111783977A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN111814985A (zh) * | 2020-06-30 | 2020-10-23 | 平安科技(深圳)有限公司 | 联邦学习网络下的模型训练方法及其相关设备 |
CN111709533A (zh) * | 2020-08-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
CN113515370A (zh) * | 2021-04-28 | 2021-10-19 | 之江实验室 | 一种面向大规模深度神经网络的分布式训练方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116681973A (zh) * | 2023-08-03 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116681973B (zh) * | 2023-08-03 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN117035123A (zh) * | 2023-10-09 | 2023-11-10 | 之江实验室 | 一种并行训练中的节点通信方法、存储介质、设备 |
CN117035123B (zh) * | 2023-10-09 | 2024-01-09 | 之江实验室 | 一种并行训练中的节点通信方法、存储介质、设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114398949B (zh) | 2024-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109190756B (zh) | 基于Winograd卷积的运算装置及包含该装置的神经网络处理器 | |
CN110276442B (zh) | 一种神经网络架构的搜索方法及装置 | |
CN111414987B (zh) | 神经网络的训练方法、训练装置和电子设备 | |
US10984319B2 (en) | Neural architecture search | |
CN110992935B (zh) | 用于训练神经网络的计算系统 | |
JP2021064390A (ja) | ニューラルアーキテクチャ検索 | |
US10783437B2 (en) | Hybrid aggregation for deep learning neural networks | |
CN114398949B (zh) | 一种脉冲神经网络模型的训练方法、存储介质及计算设备 | |
US11704570B2 (en) | Learning device, learning system, and learning method | |
CN113158608A (zh) | 确定模拟电路参数的处理方法、装置、设备及存储介质 | |
CN107766292B (zh) | 一种神经网络处理方法及处理系统 | |
JP2022504995A (ja) | アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム | |
WO2022069740A1 (en) | Simulating physical environments using mesh representations and graph neural networks | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
JP7150651B2 (ja) | ニューラルネットワークのモデル縮約装置 | |
CN116324807A (zh) | 神经架构和硬件加速器搜索 | |
CN117351299A (zh) | 图像生成及模型训练方法、装置、设备和存储介质 | |
CN108376283B (zh) | 用于神经网络的池化装置和池化方法 | |
WO2022127603A1 (zh) | 一种模型处理方法及相关装置 | |
CN110450164A (zh) | 机器人控制方法、装置、机器人及存储介质 | |
JP7398625B2 (ja) | 機械学習装置、情報処理方法およびプログラム | |
CN115456149A (zh) | 脉冲神经网络加速器学习方法、装置、终端及存储介质 | |
Duggal et al. | High performance squeezenext for cifar-10 | |
CN111523647B (zh) | 网络模型训练方法及装置、特征选择模型、方法及装置 | |
CN111443806B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |