CN112396154A - 一种基于卷积神经网络训练的并行方法 - Google Patents
一种基于卷积神经网络训练的并行方法 Download PDFInfo
- Publication number
- CN112396154A CN112396154A CN201910758686.3A CN201910758686A CN112396154A CN 112396154 A CN112396154 A CN 112396154A CN 201910758686 A CN201910758686 A CN 201910758686A CN 112396154 A CN112396154 A CN 112396154A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- training
- convolution
- matrix
- 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
- 238000012549 training Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 30
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000013501 data transformation Methods 0.000 claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 claims description 11
- 238000011478 gradient descent method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 239000013598 vector Substances 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 4
- 239000012530 fluid Substances 0.000 abstract description 2
- 238000007781 pre-processing Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 abstract description 2
- 230000007704 transition Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect 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/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于卷积神经网络训练的并行方法,提出一个并行框架,分为三层,数据层,操作层和通信层,数据层又包括卷积层的数据变换和全连接层的数据变换,研究了卷积神经网络训练的并行方法,包含了如何划分训练数据,分配训练任务,调配计算资源,整合训练结果,充分考虑通信与计算的平衡,在不损失精度的基础上,提高计算效率;该基于卷积神经网络训练的并行方法,提出适用于数据集的图像预处理方法,利用CFAR方法对图像进行特征提取,并进行了孤立点移除及孔洞填充;构建了采用多通道输入模式的4层的卷积神经网络模型;用卷积神经网络CNN训练数据集时,通过正则化及数据增强去避免过拟合,得到了测试精度91%的良好分类效果。
Description
技术领域
本发明涉及并行算法技术领域,具体为一种基于卷积神经网络训练的并行方法。
背景技术
卷积神经网络的训练加速一直是业界研究的热点问题,从硬件角度上来说,目前常用的卷积神经网络加速方法有两种,一种是CPU+GPU结构,可以显著提高网络的运算速度,尤其适合单指令流多数据流的操作(Single Instruction Multiple Data,SIMD),但数据交换需要CPU进行调度,而CPU与GPU通信上存在速度上的差异,这成为限制加速性能的瓶颈。另一种是CPU+FPGA结构,这种实现方式能兼顾两者间的处理速度,FPGA实现灵活,在实现多指令流单数据流操作(Multiple Instruction Single Data,MISD) 时,比GPU更具优势。深度学习中CPU依旧是主流深度学习平台的重要组成部分,著名的人工神经网络“Google Brain”曾用了16000颗CPU,而“Alpha Go”则使用了1920颗CPU。CPU有着良好的通信控制能力,这是GPU和FPGA 都无法比拟的。
对于深度学习而言,要走出实验室,真正与实际应用结合时,将无法避免海量训练数据、问题复杂程度高等挑战。如单机情况下,训练Inception-v3 模型到78%的精度,大约需要将近半年的时间,这样的训练速度无法应用于实际生产中。卷积神经网络的参数众多,计算量和参数量在各层分布不均匀,提高卷积神经网络的运算性能,研究其网络内部存在的并行性实现训练进行加速是一个有效手段。深度学习训练时间长,主要分为三种情形:一是计算量大,二是训练数据量大,三是模型规模大。对于第一种,解决方案是采用基于共享内存的多线程或多机并行运算。对于第二种情况,解决方案是采用数据并行的方式,要对数据进行划分,并分配到多个工作节点上进行操作与训练,每个工作节点会根据局部数据训练出一个子模型,并按照约定的规则与其它节点进行通信,以便于参数更新,最终整合各个工作节点的计算结果并得到全局数据的训练模型。对于第三种情况,常采用模型并行的方式,即神经网络模型的不同网络层被分配到不同的工作节点,或者同一层内部的不同参数被分配到不同工作节点进行训练。实验研究中,往往属于以上三种情况的混合情况,常常采用几种方法掺杂在一起来解决问题。因此设计一种基于卷积神经网络训练的并行方法是十分有必要的。
发明内容
本发明的目的在于提供一种基于卷积神经网络训练的并行方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:一种基于卷积神经网络训练的并行方法,提出一个并行框架,分为三层,数据层,操作层和通信层,各层的功能描述如下:
数据层D-layer:数据集(D1,…Dn)分散存储在n个数据结点上:对于大量训练数据,单个工作节点无法完成存储和计算时,需要将数据划分并将其分配到各个工作节点上;数据划分从两个角度进行考虑,一是对训练样本进行划分,另一个是对每个样本的特征维度进行划分;设训练数据以维特征向量的方式给出,其中每一维对应一种对输入样本进行刻画的特征,将这维特征顺序切分为N份,把每一份特征对应的数据分配到N个工作节点上;包括卷积层的数据变换和全连接层的数据变换;
通信层T-layer:在阶段q(q≠p)内,每个通信操作原子ti,j进行点对点消息传递,它将阶段q内的工作结点oi(i∈[1,nq])产生的中间结果传递给阶段q+1 内的工作节点oj(j∈[1,nq]),若ti,j=0,则oj与oi间不存在通信。
根据上述技术方案,所述卷积层的数据变换中,将图像的尺寸及波段个数看作一个三维立方,长W和高H对应于图像的大小,波段个数对应于立方体的宽C,同时,多个卷积核也可用三维立方体的形式来表示,方法是将输入图像按照卷积核的大小由三维立方体表示,降维为二维的矩阵表示,并按一定策略划分为若干个数据块(D1,…Dn);
设第i层卷积核的个数为NCi,二维情况下,输入图像大小为IH*IW,与大小为Ksize*Ksize卷积核运算后,不进行填充的情况下,特征图大小为 (IH-Ksize+1)*(IW-Ksize+1);
将输入图像转化为输入矩阵A,矩阵的行数为(IH-Ksize+1)*(IW-Ksize+1),其列数为Ksize*ksize*depth,卷积图像转化为卷积矩阵B,行数为 Ksize*ksize*depth,列数为NCi,将输入的图像根椐卷积核大小按一定的padding 规则划分成N个子图像块,每个子图像块是一个三维立方体,每个立方体长为W,高为H,宽为C,转换为大小为CHW×N的矩阵。
根据上述技术方案,所述图像的波段个数决定了卷积核立方体的第三维度C,设某一层卷积层中卷积核立方体的个数为U,对三维的卷积核进行一个变换,得到大小为CHW×U的卷积矩阵,其卷积运算就可以表示为矩阵乘法运算,最后得到大小为N×U的特征图矩阵。
根据上述技术方案,所述全连接层的数据变换中,全连接层可看作为一种卷积操作,可采用和卷积层数据变换相同方法,如前一层是卷积层,则可以将操作转化为与上一层输出图像尺寸大小相等的卷积核的全局卷积,如前一层是全连接层,则将操作转化为与1×1的卷积核的卷积。
根据上述技术方案,所述操作层中,每个工作节点根据分配到的局部训练数据进行并行训练,计算训练样本上的损失函数之和,并利用随机梯度下降法来学习模型参数,即,矩阵数据按约定规则分配给各个工作节点进行存储与计算。
根据上述技术方案,所述操作层中,假设有N个工作节点,共同协作,进行随机梯度下降算法,在每次迭代时,每个工作节点都从共享内存读取当前模型参数和一个样本,在本工作节点上计算当前模型针对所读取到的样本的梯度,然后将计算得到的梯度乘以步长加入到当前模型中;以此类推,直到迭代完成;参数更新与梯度的计算交替进行,参数更新依据N个工作结点的计算出的梯度来确定,类似于批量规模batch=N的小批量随机梯度下降方法。
根据上述技术方案,所述通信层中,在前面数据并行的框架下,每个工作结点首先各自学习基于局部数据的参数,然后将局部参数聚合在一起实现全局参数更新,结点间的通信机制实现工作结点间的映射及聚合操作;并在上一层操作层的基础上,提出了一个并行通信协议,将其应用于分批次的后向传播算法,协议基于master-worker并行模式,包含了一个master和n个 workers结点,master负责整个训练过程的总体控制,而worker则负责具体的训练时的计算工作;训练前,数据被划分到n个workers结点,每个worker 结点都包含网络的一个复制,及需要完成分配其上的训练集的权重计算及更新;
根据上述技术方案,master和workers结点初始化后,master结点开始广播初始的权重W给所有的workers结点,每个结点在本地的数据集上进行训练,训练包含了前向及后向两个过程,每个worker完成了本地数据集上的权重后,就向master结点发送,当收到所有的worker结点发送的权重信息, master就更新存储的权重,但要避免重复的数据更新和网络传输。
与现有技术相比,本发明所达到的有益效果是:该基于卷积神经网络训练的并行方法,提出适用于数据集的图像预处理方法,利用CFAR方法对图像进行特征提取,并进行了孤立点移除及孔洞填充;构建了采用多通道输入模式的4层的卷积神经网络模型;用卷积神经网络CNN训练数据集时,通过正则化及数据增强去避免过拟合,得到了测试精度91%的良好分类效果。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的输入图像到矩阵的变换示意图;
图2是本发明的卷积核到矩阵的变换图;
图3是本发明的卷积运算到矩阵乘法的变换图;
图4是本发明的并行的参数更新流程图;
图5是本发明的通信层流程图;
图6是本发明的协议模型验证框架图;
图7是本发明的master的状态变迁图;
图8是本发明原始的worker状态变迁图;
图9是本发明优化后的worker的状态变迁图;
图10是本发明通信协议spin输出结果图;
图11是本发明通信协议交互的可视化显示图;
图12是本发明验证结果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-12,本发明提供一种技术方案:一种基于卷积神经网络训练的并行方法,在卷积神经网络训练时,卷积层和全连接层分别占有网络总参数的约5%和95%左右,但计算量和重要程度却恰好相反。卷积神经网络训练时的运算量大部分集中在模型参数更新部分,模型的参数更新由2个算法共同作用而成,随机梯度下降法(mini-batchSGD)和误差反向传播(error back propogation);提出一个并行框架,分为三层,数据层,操作层和通信层。各层的功能描述如下:
数据层D-layer:数据集(D1,…Dn)分散存储在n个数据结点上。
通信层T-layer:在阶段q(q≠p)内,每个通信操作原子ti,j进行点对点消息传递,它将阶段q内的工作结点oi(i∈[1,nq])产生的中间结果传递给阶段q+1 内的工作节点oj(j∈[1,nq]),若ti,j=0,则oj与oi间不存在通信。
数据层:
对于大量训练数据,单个工作节点无法完成存储和计算时,需要将数据划分并将其分配到各个工作节点上。数据划分从两个角度进行考虑,一是对训练样本进行划分,另一个是对每个样本的特征维度进行划分。设训练数据以m维特征向量的方式给出,其中每一维对应一种对输入样本进行刻画的特征,我们将这m维特征顺序切分为N份,把每一份特征对应的数据分配到N 个工作节点上。
1)卷积层的数据变换:
由于遥感图像存在多个波段,我们将图像的尺寸及波段个数看作一个三维立方,长W和高H对应于图像的大小,波段个数对应于立方体的宽C,同时,多个卷积核也可用三维立方体的形式来表示。方法是将输入图像按照卷积核的大小由三维立方体表示,降维为二维的矩阵表示,并按一定策略划分为若干个数据块(D1,…Dn)。
设第i层卷积核的个数为NCi,二维情况下,输入图像大小为IH*IW,与大小为Ksize*Ksize卷积核运算后,不进行填充的情况下,特征图大小为 (IH-Ksize+1)*(IW-Ksize+1)。
将输入图像转化为输入矩阵A,矩阵的行数为(IH-Ksize+1)*(IW-Ksize+1),其列数为Ksize*ksize*depth,卷积图像转化为卷积矩阵B,行数为 Ksize*ksize*depth,列数为NCi。操作过程如“图1”所示,左图代表输入图像,已经根椐卷积核大小按一定的padding规则划分成N个子图像块,每个子图像块是一个三维立方体,每个立方体长为W,高为H,宽为C,转换后的矩阵表示为“图1”的右图,矩阵大小为CHW×N,这样就实现了从三维立方体降维为二维矩阵的操作。
图像的波段个数决定了卷积核立方体的第三维度C,设某一层卷积层中卷积核立方体的个数为U。对三维的卷积核进行一个变换,得到“图2”的卷积矩阵,大小为CHW×U,
由“图1”及“图2”得到的卷积矩阵及特征图矩阵,其卷积运算就可以表示为如下的矩阵乘法运算,最后得到的特征图矩阵大小为N×U。
2)全连接层的数据变换:
全连接层的矩阵变换较卷积层简单,全连接层可看作为一种卷积操作,可采用和卷积层数据变换相同方法。如前一层是卷积层,则可以将操作转化为与上一层输出图像尺寸大小相等的卷积核的全局卷积,如前一层是全连接层,则将操作转化为与1×1的卷积核的卷积,以一幅SAR图像数据输入为例,最后一层卷积层可得输出为3×3×64的特征张量,而后一层是2048个神经元的全连接层,则可用卷积核为3×3×64×2048的全局卷积来实现这一全连接运算过程:
卷积核的参数设置为:
经过这一层卷积操作后可得1×1×2048的输出;
如果后面还有一个1024个神经元的全连接层,可设置卷积核的参数为:
操作层
每个工作节点根据分配给自己的局部训练数据进行并行训练,计算训练样本上的损失函数之和,并利用随机梯度下降法来学习模型参数,简而言之,就是矩阵数据按约定规则分配给各个工作节点进行存储与计算;
假设有N个工作节点,共同协作,进行随机梯度下降算法;在每次迭代时,每个工作节点都从共享内存读取当前模型参数和一个样本,在本工作节点上计算当前模型针对所读取到的样本的梯度,然后将计算得到的梯度乘以步长加入到当前模型中;以此类推,直到迭代完成;参数更新与梯度的计算交替进行,参数更新依据N个工作结点的计算出的梯度来确定,类似于批量规模batch=N的小批量随机梯度下降方法,因此,假设每个工作结点执行的梯度下降算法是batch=b的随机梯度下降法,则工作结节并行的效果就相当于执行了批量规模batch=bN的小批量随机梯度下降法。
“图4”中给出了N个工作结点的参数更新流程,每个工作结点根据各自划分到的数据块,存储数据,从不同的模型初始值出发,各自独立的依据本地数据进行模型训练,当本地参数完成一轮参数更新后,所有的结点聚合在一起对全局参数进行更新。
下表是并行的随机梯度下降算法,N个工作结点基于各自的数据块进行梯度计算,同步等待所有工作节点结束梯度计算之后共同更新一次模型:
通信层
在前面数据并行的框架下,每个工作结点首先各自学习基于局部数据的参数,然后将局部参数聚合在一起实现全局参数更新,结点间的通信机制就要实现工作结点间的映射及聚合操作。本节在上一层操作层的基础上,提出了一个并行通信协议,将其应用于分批次的后向传播算法。协议基于 master-worker并行模式,包含了一个master和n个workers结点,master 负责整个训练过程的总体控制,而worker则负责具体的训练时的计算工作。训练前,数据被划分到n个workers结点,每个worker结点都包含网络的一个复制,及需要完成分配其上的训练集的权重计算及更新。
master和workers结点初始化后,master结点开始广播初始的权重W给所有的workers结点,每个结点在本地的数据集上进行训练,训练包含了前向及后向两个过程,每个worker完成了本地数据集上的权重后,就向master 结点发送,当收到所有的worker结点发送的权重信息,master就更新存储的权重,但要避免重复的数据更新和网络传输。
如“图5”所示,master和workers首先进行初始化操作,之后,master 广播初始的权重W给所有workers,workers收到权重W后,同步地在各自所分配的训练集上进行权重的更新,然后将每次epoch时更新的值Δwlocali保存下来,并发送Δwlocali给master。而master等收到全部的Δwlocal值后,就用聚类存储中的所有Δwlocal去更新上一步骤中广播的权重信息,上面一系列的过程是迭代的,最后,检查是否满足训练终止条件,如满足,终止训练,不满足,则进行下一个epoch的训练。协议模型验证框架如“图6”所示。
master与worker间的通信可用一个PPM模型来描述;依据Poppulation Protocols理论,两个关键组件worker和master作为参与交互的一对实体,且五元组形式化表示,见下式。
PPM=(Q,Σ,l,ω,δ)
Q={send_subdata,init_weight,broadcast,receive_updata,if_convergence,end,wait, receive_subdata,load_subdata,answer,receive_weight,train_weight}
Σ={answer,skip,train_weight,Nworkers<n,Nworkers=n,no_convergence,convergence,sent_subdata,broadcast}
l={(answer,init_weight),(skip,broadcast),(train_weight,receive_updata), (Nworkers<n,receive_updata),(Nworkers=n,if_convergence),(no_convergence,init_weight), (convergence,end),(sent_subdata,receive_subdata),(skip,load_subdata),(skip,answer), (broadcast,receive_weight),(convergence,end),(skip,train_weight),(no_convergence,receive_weight}
ω={(send_subdata,answer),(init_weight,skip),(broadcast,train_weight),(receive_updata,Nworkers<n), (receive_updata,Nworkers=n),(if_convergence,no_convergence),(if_convergence,convergence), (wait,sent_subdata),(receive_subdata,skip),(load_subdata,skip),(answer,broadcast),(receive_weight,convergence),(receive_weight,skip),(train_weight,no_convergence)}
δ={(send_subdata,wait)→(init_weight,receive_subdata), (init_weight,receive_subdata)→(broadcast,answer), (broadcast,answer)→(receive_updata,train_weight), (receive_updata,train_weight)→(if_convergence,wait), (if_convergence,wait)→(init_weight,train_weight), (if_convergence,wait)→(end,end)}
其中,五元组PPM=(Q,Σ,l,ω,δ)中,各符号的含义为,Q是组件状态的有限集合;其中的状态解释如下,send_subdata表示发送给各个计算结点的图像数据,init_weight表示初始化权重,broadcast表示广播权重,receive_updata 表示接收权重,if_convergence表示收敛状态,end表示结束,wait表示等待,receive_subdata表示接收,load_subdata表示存储图像数据,answer 表示回应,receive_weight表示收到权重,train_weight表示训练权重;Σ是输入集合,answer表示回应,skip表示自动到下一阶段,train_weight 权重训练,Nworkers<n表示计算结点个数小于n,Nworkers=n表示计算结点个数等于n,no_convergence表示没有收敛,convergence表示收敛, sent_subdata表示发送数据,broadcast表示广播;l是从Σ→Q的映射函数, l(σ)表示一个输入为σ的组件的初始状态;ω是从Q→Y的映射函数,ω(q)表示在状态q下组件的输出,Y表示输出集合;表示一对组件交互所产生的迁移关系;假设两个分别处于状态q1和q2的组件进行交互,交互后的状态迁移为q1’,q2’,那么(q1,q2,q1’,q2’)就处于迁移关系δ中;一个配置(Configuration)由协议中所有组件状态组成的向量来描述,用符号C:A→Q来表示,这里A表示组件集合。
为更直观地表示识别协议模型,用petri_net将模型图形化表示。系统中的进程符号化为一系列状态,对两组件交互过程建模分析,依据进程和事件之间的关系,从而得到状态和输入事件之间的转移关系。Petri_net的描述有四种基本元素:库所(place)、标记(token)、迁移(transition)、带箭头的弧线(arc);属于有限状态机的一种,它允许多种状态迁移同时交叉发生,对于异步并发过程的描述比有限状态机更为方便。
根据上面的形式化描述,master与worker的petri_net模型分别如“图 7”、“图8”和“图9”所示,其中长方形表示触发的事件,圆圈表示状态,有向箭头表示状态变迁。“图7”中,master的初始状态为send_subdata(发送划分后的图像数据),在answer(应答)事件发生后,改变状态为 init_weight(初始权重),其余以此类推,各符号的含义与前面五元组形式化描述相同;将“图8”依据约简规则,将其转化为“图9”,仍旧保持了其性质不变。观察worker的状态变化及变迁发生序列的情况,其有界性和活性并没有因约简而产生变化。
综上所述,设计了LTL来验证所提算法并行的正确性,上面中提出的通信协议用形式化语言(ProcessMetaLanguage,Promela)描述后,使用spin对上述通信协议进行模拟分析,通过设置断言(assertion)来判定是否满足我们定义的LTL公式。协议验证的最主要内容是检测协议是否满足规定的协议性质,即可达性、没有死锁、没有活锁、有界性、不变性等。根据本节描述,状态变迁的3个迁移规则用LTL描述如下:
□((init_weight→○broadcast)∧(broadcast→○receive_updata)∧
(1) (receive_updata→○if_convergence)∧(if_convergence→○end))
表明master从初始化权值开始,其状态按约定的时序变化。
表明通信协议中,在收到所有的更新权重后,master在梯度计算时可能会遇到收敛达不到要求的情况,再重新广播更新后的总权值,要求workers 进行权值计算,如此反复最终能实现梯度值收敛。
(3) □(receive_updata→◇if_convergence)
master最终能收到所有workers传来的权重。从当前状态开始,使 receive_updata为真状态后,总将有使if_convergence为真的状态。
LTL公式p-><>q描述master能得到来自所有其它进程的数据,最终能完成所分配在各workers工作节点上的更新的权重。定义#definept7>0, #defineqt3>0,运行窗口显示验证结果成立。“图12”列出了在仿真过程中所有的消息的发送和接收,以上结果表明了本文所提并行通信机制的在弱公平条件下的正确性,为后续的仿真实验平台搭建奠定基础。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于卷积神经网络训练的并行方法,其特征在于:提出一个并行框架,分为三层,数据层,操作层和通信层,各层的功能描述如下:
数据层D-layer:数据集(D1,…Dn)分散存储在n个数据结点上:对于大量训练数据,单个工作节点无法完成存储和计算时,需要将数据划分并将其分配到各个工作节点上;数据划分从两个角度进行考虑,一是对训练样本进行划分,另一个是对每个样本的特征维度进行划分;设训练数据以维特征向量的方式给出,其中每一维对应一种对输入样本进行刻画的特征,将这维特征顺序切分为N份,把每一份特征对应的数据分配到N个工作节点上;包括卷积层的数据变换和全连接层的数据变换;
通信层T-layer:在阶段q(q≠p)内,每个通信操作原子ti,j进行点对点消息传递,它将阶段q内的工作结点oi(i∈[1,nq])产生的中间结果传递给阶段q+1内的工作节点oj(j∈[1,nq]),若ti,j=0,则oj与oi间不存在通信。
2.根据权利要求1所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述卷积层的数据变换中,将图像的尺寸及波段个数看作一个三维立方,长W和高H对应于图像的大小,波段个数对应于立方体的宽C,同时,多个卷积核也可用三维立方体的形式来表示,方法是将输入图像按照卷积核的大小由三维立方体表示,降维为二维的矩阵表示,并按一定策略划分为若干个数据块(D1,…Dn);
设第i层卷积核的个数为NCi,二维情况下,输入图像大小为IH*IW,与大小为Ksize*Ksize卷积核运算后,不进行填充的情况下,特征图大小为(IH-Ksize+1)*(IW-Ksize+1);
将输入图像转化为输入矩阵A,矩阵的行数为(IH-Ksize+1)*(IW-Ksize+1),其列数为Ksize*ksize*depth,卷积图像转化为卷积矩阵B,行数为Ksize*ksize*depth,列数为NCi,将输入的图像根椐卷积核大小按一定的padding规则划分成N个子图像块,每个子图像块是一个三维立方体,每个立方体长为W,高为H,宽为C,转换为大小为CHW×N的矩阵。
3.根据权利要求2所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述图像的波段个数决定了卷积核立方体的第三维度C,设某一层卷积层中卷积核立方体的个数为U,对三维的卷积核进行一个变换,得到大小为CHW×U的卷积矩阵,其卷积运算就可以表示为矩阵乘法运算,最后得到大小为N×U的特征图矩阵。
4.根据权利要求1所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述全连接层的数据变换中,全连接层可看作为一种卷积操作,可采用和卷积层数据变换相同方法,如前一层是卷积层,则可以将操作转化为与上一层输出图像尺寸大小相等的卷积核的全局卷积,如前一层是全连接层,则将操作转化为与1×1的卷积核的卷积。
5.根据权利要求1所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述操作层中,每个工作节点根据分配到的局部训练数据进行并行训练,计算训练样本上的损失函数之和,并利用随机梯度下降法来学习模型参数,即,矩阵数据按约定规则分配给各个工作节点进行存储与计算。
6.根据权利要求5所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述操作层中,假设有N个工作节点,共同协作,进行随机梯度下降算法。在每次迭代时,每个工作节点都从共享内存读取当前模型参数和一个样本,在本工作节点上计算当前模型针对所读取到的样本的梯度,然后将计算得到的梯度乘以步长加入到当前模型中;以此类推,直到迭代完成;参数更新与梯度的计算交替进行,参数更新依据N个工作结点的计算出的梯度来确定,类似于批量规模batch=N的小批量随机梯度下降方法。
7.根据权利要求1所述的一种基于卷积神经网络训练的并行方法,其特征在于:所述通信层中,在前面数据并行的框架下,每个工作结点首先各自学习基于局部数据的参数,然后将局部参数聚合在一起实现全局参数更新,结点间的通信机制实现工作结点间的映射及聚合操作;并在上一层操作层的基础上,提出了一个并行通信协议,将其应用于分批次的后向传播算法,协议基于master-worker并行模式,包含了一个master和n个workers结点。master负责整个训练过程的总体控制,而worker则负责具体的训练时的计算工作;训练前,数据被划分到n个workers结点,每个worker结点都包含网络的一个复制,及需要完成分配其上的训练集的权重计算及更新。
8.根据权利要求7所述的一种基于卷积神经网络训练的并行方法,其特征在于:master和workers结点初始化后,master结点开始广播初始的权重W给所有的workers结点,每个结点在本地的数据集上进行训练,训练包含了前向及后向两个过程,每个worker完成了本地数据集上的权重后,就向master结点发送,当收到所有的worker结点发送的权重信息,master就更新存储的权重,但要避免重复的数据更新和网络传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758686.3A CN112396154A (zh) | 2019-08-16 | 2019-08-16 | 一种基于卷积神经网络训练的并行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758686.3A CN112396154A (zh) | 2019-08-16 | 2019-08-16 | 一种基于卷积神经网络训练的并行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112396154A true CN112396154A (zh) | 2021-02-23 |
Family
ID=74602026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910758686.3A Pending CN112396154A (zh) | 2019-08-16 | 2019-08-16 | 一种基于卷积神经网络训练的并行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112396154A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115330277A (zh) * | 2022-10-13 | 2022-11-11 | 北京云迹科技股份有限公司 | 机器人自动选择电梯的方法及装置 |
CN115456036A (zh) * | 2021-06-08 | 2022-12-09 | 河北省交通规划设计研究院有限公司 | 基于北斗数据的营运车辆异常驾驶行为识别方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN106462800A (zh) * | 2014-04-11 | 2017-02-22 | 谷歌公司 | 使卷积神经网络的训练并行化 |
CN108090565A (zh) * | 2018-01-16 | 2018-05-29 | 电子科技大学 | 一种卷积神经网络并行化训练加速方法 |
CN108460457A (zh) * | 2018-03-30 | 2018-08-28 | 苏州纳智天地智能科技有限公司 | 一种面向卷积神经网络的多机多卡混合并行异步训练方法 |
CN108805795A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于机器学习的硬件实现的点对点通信原语 |
CN109359661A (zh) * | 2018-07-11 | 2019-02-19 | 华东交通大学 | 一种基于卷积神经网络的Sentinel-1雷达图像分类方法 |
CN109864714A (zh) * | 2019-04-04 | 2019-06-11 | 北京邮电大学 | 一种基于深度学习的心电信号分析方法 |
CN110110844A (zh) * | 2019-04-24 | 2019-08-09 | 西安电子科技大学 | 基于OpenCL的卷积神经网络并行处理方法 |
-
2019
- 2019-08-16 CN CN201910758686.3A patent/CN112396154A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462800A (zh) * | 2014-04-11 | 2017-02-22 | 谷歌公司 | 使卷积神经网络的训练并行化 |
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN108805795A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于机器学习的硬件实现的点对点通信原语 |
CN108090565A (zh) * | 2018-01-16 | 2018-05-29 | 电子科技大学 | 一种卷积神经网络并行化训练加速方法 |
CN108460457A (zh) * | 2018-03-30 | 2018-08-28 | 苏州纳智天地智能科技有限公司 | 一种面向卷积神经网络的多机多卡混合并行异步训练方法 |
CN109359661A (zh) * | 2018-07-11 | 2019-02-19 | 华东交通大学 | 一种基于卷积神经网络的Sentinel-1雷达图像分类方法 |
CN109864714A (zh) * | 2019-04-04 | 2019-06-11 | 北京邮电大学 | 一种基于深度学习的心电信号分析方法 |
CN110110844A (zh) * | 2019-04-24 | 2019-08-09 | 西安电子科技大学 | 基于OpenCL的卷积神经网络并行处理方法 |
Non-Patent Citations (3)
Title |
---|
PANDA1234LEE等: ""Why GEMM is at the heart of deep learning"", 《HTTPS://BLOG.CSDN.NET/PANDA1234LEE/ARTICLE/DETAILS/84960123》 * |
曲宏锋等: ""基于MapReduce的RBF神经网络的并行性研究"", 《广西师范学院学报:自然科学版》 * |
曲景影等: ""基于CNN模型的高分辨率遥感图像目标识别"", 《研究与开发》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115456036A (zh) * | 2021-06-08 | 2022-12-09 | 河北省交通规划设计研究院有限公司 | 基于北斗数据的营运车辆异常驾驶行为识别方法及系统 |
CN115330277A (zh) * | 2022-10-13 | 2022-11-11 | 北京云迹科技股份有限公司 | 机器人自动选择电梯的方法及装置 |
CN115330277B (zh) * | 2022-10-13 | 2023-01-06 | 北京云迹科技股份有限公司 | 机器人自动选择电梯的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Addanki et al. | Placeto: Learning generalizable device placement algorithms for distributed machine learning | |
Ghaseminezhad et al. | A novel self-organizing map (SOM) neural network for discrete groups of data clustering | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
CN107341541A (zh) | 一种用于执行全连接层神经网络训练的装置和方法 | |
CN109948029A (zh) | 基于神经网络自适应的深度哈希图像搜索方法 | |
CN111860828B (zh) | 一种神经网络的训练方法、存储介质和设备 | |
CN112711475B (zh) | 一种基于图卷积神经网络的工作流调度方法及系统 | |
CN110659678B (zh) | 一种用户行为分类方法、系统及存储介质 | |
CN111178486B (zh) | 一种基于种群演化的超参数异步并行搜索方法 | |
CN116416508A (zh) | 一种加快全局联邦学习模型收敛的方法及联邦学习系统 | |
CN115081936B (zh) | 面向应急条件下多遥感卫星观测任务调度的方法和装置 | |
CN112396154A (zh) | 一种基于卷积神经网络训练的并行方法 | |
CN114912357A (zh) | 基于用户模型学习的多任务强化学习用户运营方法及系统 | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN113221475A (zh) | 一种用于高精度流场分析的网格自适应方法 | |
CN111445081A (zh) | 产品作业动态调度的数字孪生虚实自适应迭代优化方法 | |
CN109359542A (zh) | 基于神经网络的车辆损伤级别的确定方法及终端设备 | |
CN115001978B (zh) | 一种基于强化学习模型的云租户虚拟网络智能映射方法 | |
CN115544307A (zh) | 基于关联矩阵的有向图数据特征提取与表达方法和系统 | |
Zhang et al. | A new game model for distributed optimization problems with directed communication topologies | |
CN105512754A (zh) | 一种基于共轭先验的单模分布估计优化方法 | |
JP2825133B2 (ja) | 並列データ処理方式 | |
CN116010760B (zh) | 一种双层优化驱动的动态系统方程发现方法 | |
CN117435308B (zh) | 一种基于并行计算算法的Modelica模型仿真方法及系统 | |
Rui et al. | Modeling and analysis of networked evolutionary games with weight via semi-tensor product method |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210223 |
|
RJ01 | Rejection of invention patent application after publication |