CN111382833A - 多层神经网络模型的训练和应用方法、装置及存储介质 - Google Patents
多层神经网络模型的训练和应用方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111382833A CN111382833A CN201811633954.0A CN201811633954A CN111382833A CN 111382833 A CN111382833 A CN 111382833A CN 201811633954 A CN201811633954 A CN 201811633954A CN 111382833 A CN111382833 A CN 111382833A
- Authority
- CN
- China
- Prior art keywords
- filter
- channels
- channel
- network model
- expansion
- 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
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000012549 training Methods 0.000 title claims abstract description 68
- 238000003062 neural network model Methods 0.000 title claims abstract description 65
- 238000010586 diagram Methods 0.000 claims description 35
- 238000009825 accumulation Methods 0.000 claims description 19
- 230000001902 propagating effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 22
- 238000013138 pruning Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 8
- 238000013139 quantization Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001960 triggered 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
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本公开提供一种多层神经网络模型的训练和应用方法、装置及存储介质。对多层神经网络模型中的至少一个卷积层中的滤波器通道进行扩展,利用通道数扩展后的滤波器执行卷积运算,从而在简化网络模型的同时使网络模型的性能不下降。
Description
技术领域
本公开涉及一种针对多层神经网络的建模领域,尤其涉及一种使多层神经网络模型的结构简化并使性能与常规技术相当的方法。
背景技术
近年来,基于建模的多层神经网络模型已被广泛地应用在计算机业务中,诸如图像分类、目标检测和图像分割等。为了提高业务精度,网络模型被设计得越来越深(层数多)和越来越宽(每层的输出特征图数量多),例如,VGGNet、ResNet和Xception等网络模型。由于这些网络模型有计算量大、处理速度慢的缺点,因此,很难应用在资源受限的设备中,例如,智能手机、机器人设备等。目前,在简化网络模型的结构和保证网络模型的性能方面有以下几种方式。
1.网络剪枝法(Network Pruning)。该方法通过将滤波器中的部分参数设置为0而使滤波器的权重变稀疏、或直接去除部分滤波器来减少滤波器数量,从而达到简化网络模型的目的。网络剪枝法虽然能够有效地简化网络模型,但是难以实现精确的超参数设定来确定卷积层中的哪些滤波器是可被去除的,这使得网络剪枝法的实际应用受限。
2.参数量化法(Parameter Quantization)。该方法通过降低滤波器中参数的表示精度来减少网络模型的存储空间并提高运算速度。例如,将32bit表示的全精度量化为1bit表示的二值精度。该方法可以减少网络模型占用的存储空间,但参数的表示精度降低会使得网络模型的性能变差。
3.低阶近似法(Low-rank Approximate)。该方法将以大尺度矩阵表示的滤波器参数分解为多个以小尺度矩阵表示的矩阵参数,从而使网络模型变小。但是,该方法的压缩比率有限,并不能带来显著的计算量下降。
4.高效的网络设计。通过优化卷积算子,设计特定的高效网络模型,从而达到简化网络模型的目的,例如局部二值卷积神经网络(LBCNN)模型或瓶颈设计等。以LBCNN模型为例,将常规的一次卷积过程分解为两次卷积过程,第一次利用稀疏且固定的二值卷积滤波器进行卷积,第二次利用可学习的且参数尺度小(1×1)的滤波器进行卷积。由于第一次卷积过程中的二值卷积滤波器中的参数是固定的,网络模型中的各层可共用一个二值卷积滤波器,并且第二次卷积过程中的滤波器的矩阵尺度小,因此,网络模型占用的存储空间整体变小了。但是,由于常规的一次卷积过程被分解为两次卷积过程,LBCNN的深度反而增大了,不利于网络模型训练过程的收敛。
5.三元权重法(Ternarized Weights)。该方法通过残差扩展(ResidualExpansion)技术,在卷积层和全连结层上使用不同的阈值α引入更多的滤波器,有效提升网络模型的精度。但是,这样做会在网络模型中引入了更多的三元权重的滤波器,导致网络模型的大小明显增加。
以上描述的各方法有各自的缺陷,都无法在简化网络模型和保持性能方面达到较好的平衡。
发明内容
本公开旨在提供一种对传统的多层神经网络模型进行优化处理的方案,期望在简化神经网络模型和保持性能方面达到较好的平衡。
根据本公开的一方面,提供一种多层神经网络模型的应用方法,所述应用方法包括:针对多层神经网络模型中的至少一卷积层,扩展该卷积层的滤波器通道数;在前向传播时,基于应用要求对应的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;在执行完前向传播后输出应用结果。
根据本公开的另一方面,提供一种多层神经网络模型的训练方法,所述训练方法包括:针对待训练的多层神经网络模型中的至少一卷积层,扩展该卷积层的滤波器通道数;在前向传播时,基于用于训练的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;在反向传播时,根据通道数扩展后的通道中的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对所述网络模型的训练;其中,所述相同通道上的权重是来源于梯度值要被更新的、通道数扩展前的通道上的权重。
根据本公开的一方面,提供一种多层神经网络模型的应用方法,所述应用方法包括:在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加,并利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算;在执行完前向传播后输出应用结果。
根据本公开的另一方面,提供一种多层神经网络模型的应用装置,所述应用装置包括:扩展单元,其被构造为预先扩展多层神经网络模型中至少一卷积层中的滤波器通道数;前向传播单元,其被构造为基于应用要求对应的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;输出单元,其被构造为在执行完前向传播后输出应用结果。
根据本公开的另一方面,提供一种多层神经网络模型的训练装置,所述训练装置包括:扩展单元,其被构造为预先扩展待训练的多层神经网络模型中至少一卷积层中的滤波器通道数;前向传播单元,其被构造为基于用于训练的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;反向传播单元,其被构造为根据通道数扩展后的通道中的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对所述网络模型的训练,其中,所述相同通道上的权重是来源于梯度值要被更新的、通道数扩展前的通道上的权重。
根据本公开的另一方面,提供一种多层神经网络模型的应用装置,所述应用装置包括:累加单元,其被构造为在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加;运算单元,其被构造为利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算;输出单元,其被构造为在执行完前向传播后输出应用结果。
根据本公开的另一方面,提供一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行上述多层神经网络模型的应用方法。
根据本公开的另一方面,提供一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行上述多层神经网络模型的训练方法。
从以下参照附图对示例性实施例的描述,本公开的其它特征将变得清楚。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本公开的实施例,并且与实施例的描述一起用于解释本公开的原理。
图1示出了剪枝网络模型的剪枝及微调过程。
图2示出了传统卷积神经网络模型和LBCNN模型的前向传播过程。
图3(a)和图3(b)分别示出了三元权重优化法的前向传播过程和量化前及量化后的滤波器矩阵参数。
图4(a)示出了三元权重法中前向传播和反向传播时的滤波器结构,图4(b)和图4(c)示出了本公开方法中前向传播和反向传播时的滤波器结构。
图5示出了本公开的硬件环境。
图6示出了本公开中的网络模型的内部结构的示意图。
图7示出了本公开第一示例性实施例的训练方法流程示意图。
图8和图9分别示出了本公开第一示例性实施例的滤波器通道数扩展的示意图。
图10示出了利用通道扩展后的滤波器进行卷积的过程。
图11是本公开第二示例性实施例的应用方法流程示意图。
图12示出了输入特征图的特征分布示意图。
图13是本公开第三示例性实施例的应用方法流程示意图。
图14示出了输入特征图累加的过程。
图15是本公开第四示例性实施例的训练装置结构示意图。
图16是本公开第五示例性实施例的应用装置结构示意图。
图17是本公开第六示例性实施例的应用装置结构示意图。
具体实施方式
传统的多层神经网络模型的结构大多较复杂,为了简化模型结构,网络剪枝法是一种可采用的方法。图1示出原始模型(未进行简化处理的模型)、剪枝模型和对剪枝模型进行微调的微调模型在前向传播(Forward Propagation)过程中的处理。
在原始模型(Original Model)中,假设第i层设置有三个滤波器,将第i层的输入特征图与这三个滤波器分别进行卷积运算,然后将卷积运算结果作为第i+1层的输入特征图(即第i层的输出特征图),继续与第i+1层的滤波器进行卷积运算,从而执行前向传播。
在剪枝模型(Pruned Model)中,首先去除第i层中的对网络模型的整体性能贡献小的滤波器(第i层滤波器中虚线所示),同时,该滤波器在第i+1层的对应输入特征图及滤波器通道(第i+1层输入特征图及滤波器中虚线所示)也一并去除。在进行卷积运算时,第i层的输入特征图与第i层的剩余两个滤波器进行卷积运算,将第i层的卷积运算结果作为第i+1层的输入特征图,继续进行第i+1层的卷积运算,从而执行前向传播处理。微调模型(Fine-tuned Model)是对剪枝模型的微调,以使剪枝模型的性能与原始模型大致相当。
基于上述网络剪枝法,通过去除不重要的滤波器可有效地简化网络模型,但是,确定网络模型中的哪些滤波器是可被去除的是网络剪枝法的难点。例如,按照对网络模型的贡献度,对层中的特征图计算各自的信息熵得分,将得分低于阈值<T>的特征图所对应的滤波器作为可被去除的滤波器;再例如,对计算获得的特征图信息熵得分降序排列,同时使用固定压缩率,只保留前阈值<K>个特征图所对应得的滤波器,其它滤波器均作为可被去除的滤波器。但是在实际应用中,阈值<T>和阈值<K>是很难被确定的,导致网络剪枝法的实际应用受限。
另外一种常用的优化模型是LBCNN模型,图2以传统卷积神经网络(CNN)模型和LBCNN模型为例,示出了这两种网络模型的前向传播过程。
图2的上侧为传统卷积神经网络(CNN)模型的前向传播过程,假设第i层中有三个尺度为3×3滤波器,第i层的输入特征图(图2左上侧的Xi)与这三个滤波器进行卷积运算后生成响应图(Response Map),再针对响应图中的元素执行激活操作,生成输出特征图(Feature Map)(图2右上侧的Xi+1)并输出到第i+1层。
图2的下侧为LBCNN模型的前向传播过程,在该模型中包括一组二值卷积滤波器,该二值卷积滤波器中相对于上侧的CNN模型中的滤波器而言,其矩阵参数较稀疏,且该二值卷积滤波器在网络模型训练期间不更新(参数固定);LBCNN模型中还包括非线性的激活函数以及一组可学习的滤波器,该可学习的滤波器中的矩阵参数尺度小,例如1×1。在基于LBCNN模型的前向传播过程中,首先第i层的输入特征图(图2左下侧的Xi)与二值卷积滤波器进行卷积运算,其运算结果经非线性的激活函数进行激活,激活后的比特位图(Bit Map)与可学习的滤波器进行卷积运算,最终生成第i层的输出特征图(图2右下侧的Xi+1)并输出到第i+1层。
相较于传统CNN模型而言,LBCNN模型中的二值卷积滤波器可被多层共享,且重要参数被保存在矩阵参数尺度小的可学习的滤波器中,因此,LBCNN模型的大小可被有效降低。但是,LBCNN模型中有两次卷积过程,一次是针对稀疏且固定的二值卷积滤波器的卷积过程,另一次是针对可学习的滤波器的卷积过程,因此,LBCNN模型的深度被增大了,而增大网络模型的深度就意味着对该网络模型的训练变得更加困难。
除上述LBCNN优化模型外,图3(a)示出了利用三元权重法优化后的网络模型。图3(a)的上方是常规的多层卷积神经网络模型,下方是引入了更多滤波器的网络模型。以在卷积层1处增加卷积层1r为例,首先,全精度的3×3滤波器通过量化得到两个2bit精度的滤波器,然后,分别采用不同的阈值α和αr,得到如图3(b)所示的滤波器矩阵参数。
从图3(a)和图3(b)中可以看出,引入新的滤波器可以提高神经网络模型的精度,但是,新的滤波器使得网络模型的大小成倍地增加,无法实现对网络模型的简化。
在目前对多层神经网络模型的优化处理中,为了简化网络模型的大小,常常会带来诸如网络性能下降或简化较难实现的问题。基于此,本公开提供了一种对多层神经网络模型的优化处理,在训练和应用网络模型时,对至少一个卷积层中的滤波器的通道数进行扩展,利用通道数扩展后的滤波器进行卷积运算,通过通道数扩展后的滤波器连接来确保网络模型的精度,以在简化网络模型的基础上保证网络性能不下降。以多层神经网络模型中的一个卷积层为例,图4(a)描述了基于三元权重法的前向传播和反向传播时的滤波器的结构,图4(b)描述了基于本公开的前向传播和反向传播时的滤波器的结构。在图4(a)的前向传播中,某一卷积层中的所有滤波器(W1至W9)全部被存储在用于存储网络模型的存储区域中,然后利用前述的残差扩展法并量化得到基于α的9个滤波器(W1α至W9α)和基于αr的9个滤波器(W1αr至W9αr),并利用这18个滤波器进行卷积运算。在图4(b)所示的前向传播中,将每个模板滤波器中原本的ct个通道扩展3倍,得到通道数扩展后的9个滤波器(W”1至W”9),每个滤波器的通道数为3ct。将通道数扩展了的模板滤波器称之为目标滤波器,从而利用目标滤波器进行本层的卷积运算。图4(b)是以9个滤波器为例进行描述的,为了简化描述,图4(c)示出了1个滤波器中的通道数扩展的情况。在图4(c)的前向传播中,滤波器W1要进行4倍扩展,因此,W1的通道数在扩展前为c′/4。
通过图4(a)和图4(b)的比较可知,在本公开的网络模型中,通过扩展滤波器通道数来丰富卷积时的权重连接,从而使网络模型的性能相较于三元权重法的网络模型没有下降,且由于网络模型中可设计通道数较少的滤波器,可使网络模型的架构简化。
需要注意的是,这里所述的模板滤波器和目标滤波器是多层神经网络模型中用于表征权重参数的滤波器,在卷积运算中的运算方法和作用与常规的滤波器相同。这里的模板滤波器和目标滤波器是用于区分通道数扩展前的滤波器和通道数扩展后的滤波器,并不对滤波器的作用和结构做限定。
以下将结合附图来详细描述本公开的各种示例性实施方式。应当理解,本公开并不局限于下文所述的各种示例性实施方式。另外,作为解决本公开的问题的方案,并不需要包括所有的示例性实施方式中描述的全部特征的组合。
图5示出了对多层神经网络模型进行处理的硬件环境,其中包括:处理器单元11、内部存储器单元12、网络接口单元13、输入单元14、外部存储器15以及总线单元16。
所述处理器单元11可以是CPU或GPU。所述存储器单元12包括随机存取存储器(RAM)、只读存储器(ROM)。所述RAM可用作处理器单元11的主存储器、工作区域等。ROM可用于存储处理器单元11的控制程序,此外,还可以用于存储在运行控制程序时要使用的文件或其他数据。网络接口单元13可连接到网络并实施网络通信。输入单元14控制来自键盘、鼠标等设备的输入。外部存储器15存储启动程序以及各种应用等。总线单元16用于使多层神经网络模型的优化装置中的各单元相连接。
图6示出了本公开中的网络模型的内部结构的示意图,在网络模型的训练以及应用过程中,都可基于图6所示的内部结构来运行网络模型。该结构包括:网络模型存储单元20、特征图存储单元21、卷积单元22、池化单元23、激活单元24、量化单元25以及控制单元26。下面分别对各单元进行描述。
网络模型存储单元20中存储了与多层神经网络模型相关的信息,包括但不限于网络结构信息、卷积运算所需的滤波器信息以及其他各层中进行运算所需的信息,除此以外,还可以包括与滤波器通道数扩展相关的信息,例如:哪些卷积层中的滤波器通道数将要被扩展、滤波器通道数的扩展系数、扩展方式等。特征图存储单元21中存储了在网络模型运算时所需的特征图信息。
卷积单元22用于根据网络模型存储单元20输入的滤波器信息和特征图存储单元21输入的特征图信息进行卷积处理。当然,如果需要对滤波器通道数进行扩展,卷积单元22也可根据网络模型存储单元20中存储的与滤波器通道数扩展相关的信息来执行扩展。
这里的池化单元23、激活单元24和量化单元25是进行相应的池化处理、激活处理、量化处理的单元,其功能不再赘述。注意,图6是以多层神经网络模型中包括池化层、量化层为例进行说明的,本公开也不限于其他情况,例如,多层神经网络模型中只有卷积层和量化层的情况下,卷积单元22的输出结果可直通到量化单元25。另外,图6所示的结构中示例性地示出了池化单元23、激活单元24和量化单元25,省略了可能包括的能够进行规则化处理的单元和缩放处理的单元等其他单元,此处不再进行赘述。
控制单元26通过对图6中其他的单元输出控制信号,来控制网络模型存储单元20至量化单元25的运行。
下面,将参照附图对本公开的各实施例进行详细的描述。
<第一示例性实施例>
图7描述了本公开第一示例性实施例的对多层神经网络模型的训练方法的步骤流程示意图。在本示例性实施例中,通过将RAM作为工作存储器,使GPU/CPU 11执行存储在ROM和/或外部存储器15中的程序(诸如神经网络前向/反向传播算法等)来实施图6所示的多层神经网络模型的训练流程。
步骤S101:确定待训练的多层神经网络模型,该网络模型中至少一个卷积层中的滤波器通道数将被扩展。
在本实施例中,可在图6所示的网络模型存储单元20中存储至少一个网络模型的信息,在特征图存储单元21中存储运行该网络模型时所使用的特征图信息。在训练被触发时(如接收到训练请求或训练触发时间到达等),开始执行本步骤S101。
步骤S102:针对待训练的多层神经网络模型中的至少一卷积层,扩展该层的滤波器通道数,得到通道数扩展后的滤波器。
在本步骤S102中,通道数扩展前的滤波器可称为模板滤波器,通道数扩展后的滤波器可称为目标滤波器。
在本步骤S102中,可根据图6所示的网络模型存储单元20中存储的滤波器通道数扩展的相关信息来进行滤波器通道数的扩展。这里对滤波器通道数的扩展是指对滤波器通道的多次再现,换句话说,将某一个通道扩展为多个通道时,扩展后的多个通道与扩展前的通道是相同的,即:扩展前的通道上的权重与扩展后的通道上的权重相同。例如,在通道数扩展前,滤波器W1有通道C1-1、通道C2-1和通道C3-1,在进行通道数扩展时,这三个通道分别被复制两次,得到新的通道C1-2和通道C1-3、通道C2-2和通道C2-3、通道C3-2和通道C3-3。在通道数扩展后,通道C1-1至通道C1-3是相同的通道,通道上的权重来源于扩展前的通道C1-1的权重;同理,通道C2-1至通道C2-3是相同的通道,通道上的权重来源于扩展前的通道C2-1的权重;通道C3-1至通道C3-3是相同的通道,通道上的权重来源于扩展前的通道C3-1的权重。后续将对具体的滤波器通道数扩展过程进行描述,此处不再赘述。
以上步骤S101至步骤S102为本实施例中为进行对网络模型的训练而执行的预处理,通过该预处理,使网络模型中的至少一层的滤波器通道数被扩展,以便于在后续的前向传播和反向传播时能够利用通道数扩展后的滤波器通过进行卷积运算。
步骤S103:将用于训练的数据输入到待训练的多层神经网络模型中,在网络模型中执行前向传播。
在本步骤S103中,用于训练的数据在多层神经网络中逐层进行相应的运算或处理。在滤波器通道数被扩展的卷积层中,该卷积层的输入特征图与通道扩展后的滤波器进行卷积运算。
这里,用于训练的数据可以是诸如一组图片及对应的描述数据或一组语音及对应的描述数据等,本实施例并不对数据的类型进行限定。在多层神经网络模型中进行诸如图像处理、语音处理时所采用的数据都可应用在本实施例一的训练方法中。
步骤S104:在反向传播中,针对滤波器通道数被扩展的卷积层,确定通道数扩展后的各通道上权重的梯度值。
步骤S105:根据步骤S104中确定的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对网络模型的训练。
这里,相同通道是指从扩展前的同一通道扩展而来的通道。仍以步骤S102中将滤波器W1的三个通道C1-1至通道C1-3扩展得到九个通道C1-1至通道C3-3为例,在反向传播中,首先分别计算九个通道C1-1至通道C3-3上的权重元素的梯度值。然后,利用相同通道上的权重的梯度值来更新扩展前的通道上的权重的梯度值。
这里,执行上述对通道上的权重的梯度值处理的原因是:在前向传播中,输入特征图分别与通道扩展后的滤波器进行卷积,因此,在反向传播中,如果按照已知方式直接计算扩展后的通道上权重的梯度值,即使这些权重来源于扩展前的同一权重,这些权重的梯度值也是不同的,这就破坏了通道扩展的结构。因而,通过本实施例的步骤S105中对扩展前的通道上权重的梯度值的更新处理后,可避免对通道结构的破坏。
当然,如果卷积层中没有进行滤波器通道数的扩展,则无需执行步骤S105中的处理,可按照已知方式计算出滤波器各个通道中权重元素的梯度值后,完成对该滤波器权重的更新(即,实现对网络模型的训练)。
下面分别对本公开的对网络模型进行训练的第一实施例的具体实现方式进行详细描述。
<扩展滤波器通道数>
这里,以对模板滤波器的通道进行复制来实现通道数扩展为例进行描述。假设:某一卷积层中设置有9个模板滤波器,每个模板滤波器的高(行)h=3,宽(列)w=3,通道数c=16。通道数需进行3倍复制,即复制后的滤波器通道数C=48,且通道复制后的滤波器的高/宽与复制前滤波器的高/宽相同。当然,模板滤波器的高/宽在复制前后也可以不同,例如,在复制通道时,通过复制通道的行,使通道复制后的滤波器的高大于复制前的滤波器的高,以及通过复制通道的列,使通道复制后的滤波器的宽大于复制前的滤波器的宽。另外,通道被复制的倍数可根据实际需要或实验效果预先设定,本公开并不对此做限定。
为了将滤波器的通道数从16扩展为48,可将每个滤波器的通道进行整体复制。参见图8,以保持模板滤波器的行/列不变为例,将模板滤波器的16个通道整体复制两遍(即三倍扩展),构造包含有48个通道的目标滤波器。从图8中可以看出,由于是对通道的整体复制,因此,针对复制后得到的任一目标滤波器,其中的前16个通道、中间16个通道和后16个通道是相同的。
图8示出的是扩展后的通道数为扩展前的通道数的整数倍的情况,若扩展后的通道数不是扩展前的通道数的整数倍,则可将通道复制过程分解为通道整体复制和通道个别复制,以使复制后的通道数量满足要求。以图9所示的情况为例,仍像图8那样假设:卷积层中设置有9个模板滤波器,每个模板滤波器的高(行)h=3,宽(列)w=3,通道数c=16,扩展后的通道数C=42,此时,扩展后的通道数是扩展前的通道数的1倍且余10。首先,将模板滤波器的16个通道整体复制一遍,然后将模板滤波器的16个通道中的前10个通道再复制一遍,构造有42个通道的目标滤波器。这里,可以通过复制模板滤波器的前10个通道来构造目标滤波器,也可以复制模板滤波器的后10个通道,或是其他位置的10个通道,本实施例并不对此做限定,只要每个模板滤波器采用相同的复制原则即可。
<前向传播>
通过上述的方式扩展滤波器通道数后,在前向传播过程中,利用通道扩展后的滤波器进行卷积运算。以图10所示的情况为例,假设:第i层卷积层有两个模板滤波器W1和W2,各自的通道数都为16。在滤波器通道数扩展的预处理中,按照图8所示的方式,将W1和W2的通道数分别复制两遍(三倍扩展),生成包含有48个通道的目标滤波器W’1和W’2。W’1的通道分别以C1-1(对应复制前的原16个通道)、C1-2(对应第一遍复制得到的16个通道)和C1-3(对应第二遍复制得到的16个通道)表示。类似的,W’2的通道以W2-1~W2-3表示(图10中未示出)。将第i层的48个输入特征图与目标滤波器W’1和W’2进行卷积运算,生成两个输出特征图。这里的卷积运算与传统的卷积运算过程相同,此处不再赘述。
<反向传播>
在本实施例一的方案中,网络模型中的至少一卷积层中的滤波器通道数被扩展了,因此,在反向传播中,为了确保通道扩展的固有结构,需要计算出扩展前通道中各个权重的梯度值。一种可选的实现方式是,根据从下一层传递的输出特征图的梯度值确定本层通道数扩展后的滤波器的权重梯度值,并进一步逐个权重计算对应于相同通道上的这些梯度值的算术平均数,以此作为扩展前的通道上对应权重的梯度值。在前述步骤S105中,已以图10所示的情况为例,描述对扩展前的通道上权重的梯度值的更新过程。更具体地,以通道C1-1至通道C1-3为例,将通道C1-1至通道C1-3上的、位于(0,0)位置处的权重的梯度值取平均,将该平均值作为扩展前的通道C1-1上的权重在(0,0)位置处的梯度值。以此类推,直至更新通道C1-1上在所有位置处权重的梯度值,完成对扩展前的通道的权重梯度值的更新。
具体地,上述对梯度值取平均来计算扩展前的通道上权重梯度值的方法可以以公式(1)表达。
其中,n表示滤波器数目,c表示模板滤波器的通道数,h和w表示权重元素在滤波器中的空间位置,c’表示扩展后滤波器的通道数,r表示扩展后的相同通道的数量;Grad(n,c′,h,w)表示在相同通道中的一个通道在(h,w)位置处权重的梯度值;AvgGrad(n,c,h,w)表示被更新的、扩展前的通道上的权重在(h,w)位置处元素的梯度值。
通过本公开第一示例性实施例所述的训练方法,即使设计通道数较少的滤波器,通过对通道数的扩展,丰富权重连接,能够在简化网络模型结果的同时使网络模型性能不下降。
需要说明的是,在第一示例性实施例的训练方式中,对滤波器扩展前的通道上的权重梯度值进行更新,即:训练的是扩展前的通道上的权重。在完成对扩展前的通道上权重的训练后,为节省存储空间,可释放在临时存储区域中存储的扩展后的新通道的通道信息,使网络模型始终保持较简化的状态。本实施例一也不限于对训练过程的其他变型例。例如,在反向传播中,在计算扩展后的相同通道上权重的平均梯度值后,不再计算扩展前的通道上权重的梯度值,即,训练的是扩展后的通道上的权重,在今后的网络模型应用中,可直接利用训练好的扩展后的通道上的权重执行相应的应用业务。
<第二示例性实施例>
在基于第一示例性实施例实现对网络模型的训练后,本实施例二描述了一种对训练后的网络模型进行应用的方法。图11描述了实施例二的应用方法步骤流程示意图。在本示例性实施例二中,通过将RAM作为工作存储器,使GPU/CPU 11执行存储在ROM和/或外部存储器15中的程序(诸如应用算法等)来实施图11所示的多层神经网络模型的处理流程。
步骤S201:确定应用业务所运行的多层神经网络模型,该网络模型的至少一个卷积层中的滤波器通道数将被扩展。
步骤S202:扩展卷积层的滤波器通道数,得到通道数扩展后的滤波器。
以上步骤S201和步骤S202是与第一示例性实施例类似的预处理步骤。这里对滤波器通道数的扩展与第一示例性实施例的通道数扩展方式相同,此处不再赘述。
步骤S203:向多层神经网络模型输入应用要求对应的数据。
在本步骤S203中,以人脸检测业务为例,将人脸图像作为人脸检测应用的数据输入到多层神经网络模型中,以期在该网络模型中执行人脸检测业务。
步骤S204:在多层神经网络模型中自上而下执行运算,直至输出应用结果。
以上步骤S201至步骤S204的应用方法是基于第一示例性实施例中训练扩展前的通道的情况。如果第一示例性实施例中训练的是扩展后的通道,则在本实施例二的应用方法中,无需执行步骤S201和步骤S202的滤波器通道数扩展的预处理,直接执行前向传播即可。
以下将以基线(Baseline)网络模型为例,在传统的基线网络模型(无通道扩展)、基于本公开第一示例性实施例的4倍通道扩展和8倍通道扩展这三种情况间,比较网络模型的性能和网络模型的大小。
表1是为执行对象检测任务而设计的基线网络模型的示例,表1所示的网络模型是未使用本公开方法的传统基线模型。为方便理解,表1中的网络模型仅示出卷积层1至卷积层8,网络模型中可能包括的其他卷积层或诸如池化层、量化层、标准化层等层未示出,但不影响对该基线网络模型的理解。
表1
在本公开第一示例性实施例的4倍通道扩展的方案中,所采用的网络模型的结构与表1所示的结构类似,参见表2,所不同的是:卷积层5到卷积层8的滤波器(即本公开第一示例性实施例中的模板滤波器)的通道数分别是32、64、128和256。类似的,8倍通道扩展的方案中,参见表3,卷积层5到卷积层8的滤波器的通道数分别为16、32、64和128。
网络层 | 滤波器数量 | 滤波器的通道数 | 滤波器的大小 |
卷积层1 | 16 | 3 | 3*3 |
卷积层2 | 32 | 16 | 3*3 |
卷积层3 | 64 | 32 | 3*3 |
卷积层4 | 128 | 64 | 3*3 |
卷积层5 | 256 | 32 | 3*3 |
卷积层6 | 512 | 64 | 3*3 |
卷积层7 | 1024 | 128 | 3*3 |
卷积层8 | 1024 | 256 | 3*3 |
表2
表3
在分别利用上述表1至表3所示的三种网络模型进行人脸检测的前向传播时,需要对表2所示的网络模型的卷积层5至卷积层8进行4倍通道扩展,以及对表3所示的网络模型进行8倍通道扩展的处理。表4示出了基于表1所示的基线网络模型、基于表2所示的网络模型进行4倍通道扩展、基于表3所示的网络模型进行8倍通道扩展后的网络模型的结构描述。
表4
基于表4所示的三种网络模型,在进行人脸检测后,得到表5所示的人脸检测率的比较结果和表6所示的存储大小的比较结果。
基线 | 4倍通道扩展 | 8倍通道扩展 |
0.8699 | 0.8598 | 0.8559 |
表5
网络层 | 基线 | 4倍通道扩展 | 8倍通道扩展 |
卷积层5 | 256*128*3*3 | 256*32*3*3 | 256*16*3*3 |
卷积层6 | 512*256*3*3 | 512*64*3*3 | 512*32*3*3 |
卷积层7 | 1024*512*3*3 | 1024*128*3*3 | 1024*64*3*3 |
卷积层8 | 1024*1024*3*3 | 1024*256*3*3 | 1024*128*3*3 |
通道的总体大小(bytes) | 1.953,792=1.95M | 488,448=488K | 244,224=244K |
表6
一方面,从表6中可知,相较于传统的基线模型的通道大小,本公开第一示例性实施例的基于通道扩展的网络模型从卷积层5到卷积层8的通道数量显著减少,尤其在通道扩展的倍数越高时,通道的数量越少。另一方面,从表5中可知,利用本公开第一示例性实施例的基于通道扩展的网络模型来进行人脸检测时,检测性能大致与传统的基线模型相当。
图12示出了输入特征图在传统的网络模型(未进行通道扩展)和在本公开第一示例性实施例的通道扩展的网络模型中的特征分布示意图,从图12中可以看出,经过卷积和量化后,输入特征图在两种网络模型中的分布接近,表明本公开第一示例性实施例的网络模型和传统的网络模型在业务处理时的性能相当。
<第三示例性实施例>
本公开第三示例性实施例描述了一种通过对卷积层的输入特征图进行累加而实现的多层申请网络模型的应用方法,本实施例三的应用方法可以是基于实施例一的训练方法训练得到的网络模型的训练方法,但也不排除对通过其他方式得到的网络模型的应用。图13描述了本实施例三的应用方法步骤流程示意图。在本示例性实施例三中,通过将RAM作为工作存储器,使GPU/CPU 11执行存储在ROM和/或外部存储器15中的程序(诸如应用算法等)来实施图13所示的多层神经网络模型的处理流程。
步骤S301:在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加。
步骤S302:利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算。
步骤S303:在执行完前向传播后输出应用结果。
在本实施例三的方案中,如果卷积层的输入特征图的数量多于滤波器的通道数量,一种可行的方式是按照第二实施例的方式,扩展滤波器的通道数,从而使输入特征图与通道数扩展后的滤波器进行卷积运算;另一种可行的方式是本实施例三的方式,将数量较多的输入特征图累加成数量较少的输入特征图,使累加后的输入特征图的数量与滤波器通道数匹配,利用累加后的输入特征图与通道数未扩展的滤波器进行卷积运算;第三种可行的方式是,一方面,对滤波器的通道数进行扩展,如果扩展的倍数较小,扩展后的通道数仍然小于输入特征图的数量,则可对输入特征图进行累加,利用累加后的输入特征图与通道数扩展后的滤波器进行卷积运算。
在本实施例三的方案中,一种可选的对输入特征图进行累加的方式如下:
第一步:对卷积层的多个输入特征图进行分组。
在进行分组时,如果输入特征图的数量是滤波器通道数的整数倍,则分组后每组的输入特征图的数量等于滤波器的通道数。如果输入特征图的数量不是滤波器通道数的整数倍,则将多个输入特征图分成两部分,第一部分的输入特征图的数量是滤波器通道数的整数倍,将第一部分的输入特征图进行分组,每组的输入特征图的数量等于滤波器的通道数。第二部分的是特征图的数量小于滤波器通道数,将第二部分的输入特征图作为一组。以输入特征图的数量(例如48)是滤波器通道数(例如16)的整数倍为例,输入特征图按位置顺序被分为三组,每组中有16个输入特征图。再以输入特征图的数量(例如42)不是滤波器通道数(例如16)的整数倍为例,输入特征图按位置顺序被分为三组,第一组和第二组中有16个输入特征图,第三组中有10个输入特征图。
第二步:将各组中的输入特征图进行累加,得到累加后的、数量等于所述滤波器的通道数的输入特征图。
仍以输入特征图的数量(例如48)是滤波器通道数(例如16)的整数倍为例,输入特征图被分为三组,每组中有16个输入特征图。从每组中读取一个输入特征图,将从每组中读取的一个输入特征图(总共三个输入特征图)逐元素累加成一个输入特征图,以此类推,直至每组中的16个输入特征图全部被累加,得到累加后的16个输入特征图,参见图14所示。这里的逐元素累加是指:将三个输入特征图中相同位置的元素进行累加。例如,将第一组中的输入特征图1在(h1,w2)位置处的元素、第二组中输入特征图17在(h1,w2)位置处的元素和第三组中输入特征图33在(h1,w2)位置处的元素进行累加,从而得到累加后的输入特征图在(h1,w2)位置处的元素。再以输入特征图的数量(例如42)不是滤波器通道数(例如16)的整数倍为例,输入特征图被分为三组,第一组和第二组中分别有16个输入特征图,第三组中有10个输入特征图。从每组中读取一个输入特征图,将读取的三个输入特征图逐元素累加成一个输入特征图。当得到10个累加后的输入特征图(即:累加过程执行10次)时,第三组中的输入特征图被全部执行累加,则之后不再从第三组中读取输入特征图,而是读取第一组和第二组中还未被累加的输入特征图进行累加处理,直至得到累加后的16个输入特征图。
如果本实施例中的应用方法是基于实施例一中的通过扩展滤波器的通道数来对多层神经网络模型进行训练的训练方法来实现的,则本实施例三中的累加过程可满足这样的条件,即:进行累加的输入特征图的位置与在训练方法中的、与扩展后的相同通道进行运算的输入特征图的位置相同。这里的相同通道的含义与第一实施例中的含义相同,是指从扩展前的同一通道扩展而来的通道。
举例来说,假设在实施例一的训练方法中,某一卷积层的输入特征图的数量是42,滤波器的通道数是16,采用第一实施例的方式,将滤波器的通道数按照图9所示的方式进行复制,得到复制后的包括42个通道的滤波器,假设,通道C1-1在复制后得到三个相同通道C1-1至C1-3。42个输入特征图与通道扩展后的滤波器进行卷积运算,此时,假设位于位置1、位置17和位置33的输入特征图对应相同通道C1-1至C1-3。在本实施例三的应用方法中,与训练方法中的输入特征图的数量、形状相同但元素值不同的42个输入特征图按照位置顺序被分成三组,第一组和第二组中有16个输入特征图,第三组中有10个输入特征图,滤波器的通道数为16。在对输入特征图进行累加时,由于在训练方法中与相同通道C1-1至C1-3进行运算的三个输入特征图的位置分别为位置1、位置17和位置33,因此,将从三个组中分别选择出位于位置1、位置17和位置33的三个输入特征图进行累加,得到累加后的、与滤波器中的通道C1-1进行运算的输入特征图。
利用本实施例三所示的应用方法,一方面,由于输入特征图进行了累加,累加后的输入特征图的元素的比特位数较大(大于累加前的输入特征图的位数),因此,累加后的输入特征图较好的保留了累加前的输入特征图的有用信息,不会出现因为信息大量丢失而导致的精度下降的问题;另一方面,相较于第二实施例中图10所示的卷积过程,本实施例三所示的卷积过程可有效地减少运算量,提高运算速度。
<第四示例性实施例>
本公开第四示例性实施例描述了一种多层神经网络模型的训练装置,该训练装置是与本公开第一示例性实施例中的训练方法具有相同发明构思的装置。如图15所示,所述训练装置包括:扩展单元31、前向传播单元32和反向传播单元33。具体而言,扩展单元31用于预先扩展待训练的多层神经网络模型中至少一卷积层中的滤波器通道数;前向传播单元32用于基于用于训练的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;反向传播单元33用于根据通道数扩展后的通道中的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对所述网络模型的训练,其中,所述相同通道是从扩展前的同一通道扩展而来的。
优选地,所述扩展单元31通过复制滤波器的通道来扩展滤波器的通道数。
优选地,所述反向传播单元33确定所述相同通道上各权重的梯度值,以及,将相同通道上的、位于相同位置处的权重的梯度值取平均,并将梯度平均值作为梯度值要被更新的、数量扩展前的通道上的权重在所述位置处的梯度值。
<第五示例性实施例>
本公开第五示例性实施例描述了一种多层神经网络模型的应用装置,该应用装置是与本公开第二示例性实施例中的应用方法具有相同发明构思的装置。如图16所示,所述应用装置包括:扩展单元41、前向传播单元42和输出单元43。具体而言,扩展单元41预先扩展多层神经网络模型中至少一卷积层中的滤波器通道数;前向传播单元42基于任务要求对应的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;输出单元43在执行完前向传播后输出应用结果。
优选的,所述扩展单元41通过复制滤波器的通道来扩展滤波器的通道数。
<第六示例性实施例>
本公开第六示例性实施例描述了一种多层神经网络模型的应用装置,该应用装置是与本公开第三示例性实施例中的应用方法具有相同发明构思的装置。如图17所示,所述应用装置包括:累加单元51、运算单元52和输出单元53。具体而言,累加单元51用于在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加;运算单元52利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算;输出单元53在执行完前向传播后输出应用结果。
优选的,所述累加单元51用于对所述多个输入特征图进行分组,使组中的输入特征图的数量等于所述卷积层中滤波器的通道数,且至多一组中的输入特征图的数量小于所述滤波器的通道数,以及,将各组中的输入特征图进行累加,得到累加后的、数量等于所述滤波器的通道数的输入特征图。
优选的,在所述应用方法之前的对多层神经网络模型的训练方法中,在通过扩展滤波器的通道数、利用通道数扩展后的滤波器与输入特征图进行运算的情况下,所述累加单元51用于将各组中满足以下条件的输入特征图进行累加,该条件为:进行累加的输入特征图在所述多个输入特征图中的位置与在训练方法中的、与扩展后的相同通道进行运算的输入特征图的位置相同,所述相同通道是从扩展前的同一通道扩展而来的。其他实施例
本发明的实施例还可以通过读出并执行记录在存储介质(也可以更完全地被称为“非暂时的计算机可读存储介质”)上的计算机可执行指令(例如,一个或多个程序)以执行一个或多个上述实施例的功能并且/或者包括用于执行一个或多个上述实施例的功能的一个或多个电路(例如,专用集成电路(ASIC))的***或装置的计算机来实现,并且通过由***或装置的计算机执行的方法来实现,通过例如从存储介质读出并执行计算机可读指令以执行一个或多个上述实施例的功能并且/或者控制一个或多个电路以执行一个或多个上述实施例的功能。该计算机可以包括一个或多个处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括独立的计算机或独立的处理器的网络来读出并执行计算机可执行指令。该计算机可执行指令可以从例如网络或存储介质提供给计算机。该存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算***的存储、光盘(诸如压缩盘(CD)、数字通用盘(DVD)或蓝光盘(BD)(注册商标))、闪存设备、存储卡等中的一个或多个。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给***或装置,该***或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有变型、等同结构和功能。
Claims (21)
1.一种多层神经网络模型的应用方法,其特征在于,包括:
针对多层神经网络模型中的至少一卷积层,扩展该卷积层的滤波器通道数;
在前向传播时,基于应用要求对应的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;
在执行完前向传播后输出应用结果。
2.根据权利要求1所述的应用方法,其中,通过复制滤波器的通道来扩展滤波器的通道数。
3.根据权利要求1所述的应用方法,其中,还包括:
通道数扩展后的滤波器的高不小于通道数扩展前的滤波器的高,以及,
通道数扩展后的滤波器的宽不小于通道数扩展前的滤波器的宽。
4.一种多层神经网络模型的训练方法,其特征在于,包括:
针对待训练的多层神经网络模型中的至少一卷积层,扩展该卷积层的滤波器通道数;
在前向传播时,基于用于训练的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;
在反向传播时,根据通道数扩展后的通道中的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对所述网络模型的训练;
其中,所述相同通道是从扩展前的同一通道扩展而来的。
5.根据权利要求4所述的训练方法,其中,通过复制滤波器的通道来扩展滤波器的通道数。
6.根据权利要求4所述的训练方法,其中,还包括:
通道数扩展后的滤波器的高不小于通道数扩展前的滤波器的高,以及,
通道数扩展后的滤波器的宽不小于通道数扩展前的滤波器的宽。
7.根据权利要求4所述的训练方法,其中,更新数量扩展前的通道上权重的梯度值,具体包括:
确定所述相同通道上各权重的梯度值;
将相同通道上的、位于相同位置处的权重的梯度值取平均,并将梯度平均值作为梯度值要被更新的、数量扩展前的通道上的权重在所述位置处的梯度值。
8.一种多层神经网络模型的应用方法,其特征在于,包括:
在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加,并利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算;
在执行完前向传播后输出应用结果。
9.根据权利要求8所述的应用方法,其中,将多个输入特征图进行累加,具体包括:
对所述多个输入特征图进行分组,使组中的输入特征图的数量等于所述卷积层中滤波器的通道数,且至多一组中的输入特征图的数量小于所述滤波器的通道数;
将各组中的输入特征图进行累加,得到累加后的、数量等于所述滤波器的通道数的输入特征图。
10.根据权利要求9所述的应用方法,其中,在所述应用方法之前的对多层神经网络模型的训练方法中,在通过扩展滤波器的通道数、利用通道数扩展后的滤波器与输入特征图进行运算的情况下,将各组中的输入特征图进行累加,具体包括:
将各组中满足以下条件的输入特征图进行累加,该条件为:进行累加的输入特征图在所述多个输入特征图中的位置与在训练方法中的、与扩展后的相同通道进行运算的输入特征图的位置相同,所述相同通道是从扩展前的同一通道扩展而来的。
11.一种多层神经网络模型的应用装置,其特征在于,包括:
扩展单元,其被构造为预先扩展多层神经网络模型中至少一卷积层中的滤波器通道数;
前向传播单元,其被构造为基于应用要求对应的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;
输出单元,其被构造为在执行完前向传播后输出应用结果。
12.根据权利要求11所述的应用装置,其中,
所述扩展单元通过复制滤波器的通道来扩展滤波器的通道数。
13.一种多层神经网络模型的训练装置,其特征在于,包括:
扩展单元,其被构造为预先扩展待训练的多层神经网络模型中至少一卷积层中的滤波器通道数;
前向传播单元,其被构造为基于用于训练的数据,利用通道数扩展后的滤波器进行所述卷积层中的数据运算;
反向传播单元,其被构造为根据通道数扩展后的通道中的相同通道上权重的梯度值更新通道数扩展前的通道上权重的梯度值,实现对所述网络模型的训练,其中,所述相同通道是从扩展前的同一通道扩展而来的。
14.根据权利要求13所述的训练装置,其中,
所述扩展单元通过复制滤波器的通道来扩展滤波器的通道数。
15.根据权利要求13所述的训练装置,其中,
所述反向传播单元确定所述相同通道上各权重的梯度值,以及,将相同通道上的、位于相同位置处的权重的梯度值取平均,并将梯度平均值作为梯度值要被更新的、数量扩展前的通道上的权重在所述位置处的梯度值。
16.一种多层神经网络模型的应用装置,其特征在于,包括:
累加单元,其被构造为在前向传播时,针对至少一个卷积层,将该卷积层的多个输入特征图进行累加;
运算单元,其被构造为利用累加后的输入特征图与所述卷积层中的滤波器进行所述卷积层中的卷积运算;
输出单元,其被构造为在执行完前向传播后输出应用结果。
17.根据权利要求16所述的应用装置,其中,
所述累加单元用于对所述多个输入特征图进行分组,使组中的输入特征图的数量等于所述卷积层中滤波器的通道数,且至多一组中的输入特征图的数量小于所述滤波器的通道数,以及,将各组中的输入特征图进行累加,得到累加后的、数量等于所述滤波器的通道数的输入特征图。
18.根据权利要求17所述的应用装置,其中,
在所述应用方法之前的对多层神经网络模型的训练方法中,在通过扩展滤波器的通道数、利用通道数扩展后的滤波器与输入特征图进行运算的情况下,所述累加单元,用于将各组中满足以下条件的输入特征图进行累加,该条件为:进行累加的输入特征图在所述多个输入特征图中的位置与在训练方法中的、与扩展后的相同通道进行运算的输入特征图的位置相同,所述相同通道是从扩展前的同一通道扩展而来的。
19.一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行权利要求1所述的多层神经网络模型的应用方法。
20.一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行权利要求4所述的多层神经网络模型的训练方法。
21.一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行权利要求8所述的多层神经网络模型的应用方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633954.0A CN111382833A (zh) | 2018-12-29 | 2018-12-29 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
JP2019229345A JP6890653B2 (ja) | 2018-12-29 | 2019-12-19 | 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 |
US16/721,606 US11847569B2 (en) | 2018-12-29 | 2019-12-19 | Training and application method of a multi-layer neural network model, apparatus and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811633954.0A CN111382833A (zh) | 2018-12-29 | 2018-12-29 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111382833A true CN111382833A (zh) | 2020-07-07 |
Family
ID=71123080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811633954.0A Pending CN111382833A (zh) | 2018-12-29 | 2018-12-29 | 多层神经网络模型的训练和应用方法、装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11847569B2 (zh) |
JP (1) | JP6890653B2 (zh) |
CN (1) | CN111382833A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559870A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 多模型融合方法、装置、电子设备和存储介质 |
CN112867010A (zh) * | 2021-01-14 | 2021-05-28 | 中国科学院国家空间科学中心 | 基于卷积神经网络的射频指纹嵌入式实时识别方法及*** |
CN114995782A (zh) * | 2022-08-03 | 2022-09-02 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
CN116781484A (zh) * | 2023-08-25 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210076687A (ko) * | 2019-12-16 | 2021-06-24 | 삼성전자주식회사 | 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크를 처리하는 방법 |
CN111241985B (zh) * | 2020-01-08 | 2022-09-09 | 腾讯科技(深圳)有限公司 | 一种视频内容识别方法、装置、存储介质、以及电子设备 |
US11295430B2 (en) * | 2020-05-20 | 2022-04-05 | Bank Of America Corporation | Image analysis architecture employing logical operations |
CN112468203B (zh) * | 2020-11-19 | 2022-07-26 | 杭州勒贝格智能***股份有限公司 | 深度迭代神经网络用低秩csi反馈方法、存储介质及设备 |
CN112785663B (zh) * | 2021-03-17 | 2024-05-10 | 西北工业大学 | 一种基于任意形状卷积核的图像分类网络压缩方法 |
CN113792770A (zh) * | 2021-08-31 | 2021-12-14 | 南京信息工程大学 | 一种基于属性描述的零样本滚动轴承故障诊断方法及*** |
WO2023075372A1 (ko) * | 2021-10-26 | 2023-05-04 | 삼성전자 주식회사 | 심층 신경망 연산을 수행하는 방법 및 전자 장치 |
CN117217318B (zh) * | 2023-11-07 | 2024-01-26 | 瀚博半导体(上海)有限公司 | 基于Transformer网络模型的文本生成方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162782A1 (en) * | 2014-12-09 | 2016-06-09 | Samsung Electronics Co., Ltd. | Convolution neural network training apparatus and method thereof |
US20170032222A1 (en) * | 2015-07-30 | 2017-02-02 | Xerox Corporation | Cross-trained convolutional neural networks using multimodal images |
CN107909008A (zh) * | 2017-10-29 | 2018-04-13 | 北京工业大学 | 基于多通道卷积神经网络和粒子滤波的视频目标跟踪方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201709672D0 (en) * | 2017-06-16 | 2017-08-02 | Ucl Business Plc | A system and computer-implemented method for segmenting an image |
CN109754402B (zh) * | 2018-03-15 | 2021-11-19 | 京东方科技集团股份有限公司 | 图像处理方法、图像处理装置以及存储介质 |
-
2018
- 2018-12-29 CN CN201811633954.0A patent/CN111382833A/zh active Pending
-
2019
- 2019-12-19 US US16/721,606 patent/US11847569B2/en active Active
- 2019-12-19 JP JP2019229345A patent/JP6890653B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162782A1 (en) * | 2014-12-09 | 2016-06-09 | Samsung Electronics Co., Ltd. | Convolution neural network training apparatus and method thereof |
US20170032222A1 (en) * | 2015-07-30 | 2017-02-02 | Xerox Corporation | Cross-trained convolutional neural networks using multimodal images |
CN107909008A (zh) * | 2017-10-29 | 2018-04-13 | 北京工业大学 | 基于多通道卷积神经网络和粒子滤波的视频目标跟踪方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559870A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 多模型融合方法、装置、电子设备和存储介质 |
CN112559870B (zh) * | 2020-12-18 | 2023-10-31 | 北京百度网讯科技有限公司 | 多模型融合方法、装置、电子设备和存储介质 |
CN112867010A (zh) * | 2021-01-14 | 2021-05-28 | 中国科学院国家空间科学中心 | 基于卷积神经网络的射频指纹嵌入式实时识别方法及*** |
CN112867010B (zh) * | 2021-01-14 | 2023-04-18 | 中国科学院国家空间科学中心 | 基于卷积神经网络的射频指纹嵌入式实时识别方法及*** |
CN114995782A (zh) * | 2022-08-03 | 2022-09-02 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
CN114995782B (zh) * | 2022-08-03 | 2022-10-25 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
WO2024027039A1 (zh) * | 2022-08-03 | 2024-02-08 | 北京登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
CN116781484A (zh) * | 2023-08-25 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116781484B (zh) * | 2023-08-25 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2020109647A (ja) | 2020-07-16 |
JP6890653B2 (ja) | 2021-06-18 |
US11847569B2 (en) | 2023-12-19 |
US20200210843A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382833A (zh) | 多层神经网络模型的训练和应用方法、装置及存储介质 | |
JP6794593B2 (ja) | 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体 | |
CN109002889B (zh) | 自适应迭代式卷积神经网络模型压缩方法 | |
TWI748041B (zh) | 設計超級解析度深度卷積神經網路的裝置及方法 | |
JP6990813B2 (ja) | 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体 | |
CN110555450B (zh) | 人脸识别神经网络调整方法和装置 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
WO2023024407A1 (zh) | 基于相邻卷积的模型剪枝方法、装置及存储介质 | |
CN111814448B (zh) | 预训练语言模型量化方法和装置 | |
Singh et al. | Acceleration of deep convolutional neural networks using adaptive filter pruning | |
CN112651485A (zh) | 识别图像的方法和设备以及训练神经网络的方法和设备 | |
KR20210060980A (ko) | 상이한 희소 수준을 갖는 신경망 다중 프루닝 장치 및 방법 | |
US11900577B2 (en) | Processing apparatus for performing processing using a convolutional neural network | |
JP2024502225A (ja) | ワークロードが平準化された活性化スパース性を用いた畳込みのための方法およびシステム | |
KR102505946B1 (ko) | 인공신경망 모델 학습 방법 및 시스템 | |
WO2022072152A1 (en) | Bank-balanced-sparse activation feature maps for neural network models | |
CN109740733B (zh) | 深度学习网络模型优化方法、装置及相关设备 | |
CN113554104B (zh) | 一种基于深度学习模型的图像分类方法 | |
US11847567B1 (en) | Loss-aware replication of neural network layers | |
CN117413281A (zh) | 用于神经网络的数据感知模型修剪 | |
CN115222012A (zh) | 用于压缩神经网络的方法和装置 | |
CN113822768A (zh) | 社区网络的处理方法、装置、设备及存储介质 | |
CN116157808B (zh) | 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的***和方法 | |
JP7373751B2 (ja) | 演算処理システムおよび畳み込み演算方法 | |
US20230162037A1 (en) | Machine learning method and pruning 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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200707 |