CN110659735A - 一种动态调整神经网络通道的方法、装置以及设备 - Google Patents
一种动态调整神经网络通道的方法、装置以及设备 Download PDFInfo
- Publication number
- CN110659735A CN110659735A CN201910936870.2A CN201910936870A CN110659735A CN 110659735 A CN110659735 A CN 110659735A CN 201910936870 A CN201910936870 A CN 201910936870A CN 110659735 A CN110659735 A CN 110659735A
- Authority
- CN
- China
- Prior art keywords
- channel
- initial
- network
- channels
- neural network
- 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 146
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012549 training Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010606 normalization Methods 0.000 claims description 6
- 238000011478 gradient descent method Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 101100153581 Bacillus anthracis topX gene Proteins 0.000 description 1
- 101150041570 TOP1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012216 screening 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
- 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
-
- 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)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Circuit For Audible Band Transducer (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种动态调整神经网络通道的方法、装置、设备及计算机可读存储介质,包括:基于预设裁剪规则选取初始深度神经网络的初始被裁剪通道及初始未裁剪通道;在对初始深度神经网络的进行训练后,对裁剪不正确的通道进行修正,动态调整网络通道数;循环执行网络训练、通道裁剪修正以及判断当前裁剪通道数量与总通道数量的比值是否达到预设比例阈值的步骤,直至当前裁剪通道数量与总通道数量的比值达到预设比例阈值;完成网络通道的剪裁后得到的深度神经网络,并对深度神经网络进行训练,得到目标深度神经网络。本发明所提供的方法、装置、设备及计算机可读存储介质,可以在减少网络计算量与模型大小的同时确保网络精度不降低。
Description
技术领域
本发明涉及深度神经网络技术领域,特别是涉及一种动态调整神经网络通道的方法、装置、设备以及计算机可读存储介质。
背景技术
作为一个大脑启发模型家族,深度神经网络(DNN)已经大大提升了各种人工智能任务,包括图像分类,自然语言处理,语音识别和人脸识别。尽管DNN模型取得了巨大的成功,但当前设计的深度神经网络往往有更多的堆叠层,因此有更多需要学习的参数。例如,AlexNet有6100万参数,赢得ILSVRC 2012分类竞赛,更不用说像 VGGNet这样的复杂模型。由于更多参数意味着更多的存储要求和更多的浮点运算,因此增加了在内存和处理单元有限的移动设备上应用 DNN的难度;且电池容量也是一种瓶颈。
虽然DNN模型通常需要大量参数来保证其优越性在性能方面,但在实验中已证明DNN模型的参数已有显著的冗余。因此,可以通过适当的策略裁剪DNN模型,而不会明显降低DNN模型预测准确度。在现有技术中,参数修剪是裁剪DNN模型策略中一个较好的方法,可直接降低参数量,从而显著降低计算量以及存储量。
针对深度神经网络的裁剪问题,已有一些方法被提出。这些算法主要分为两类:一为非结构性参数裁剪方法,即大部分网络权重被置为0,但没有结构性;另一类为:通道裁剪,直接将不符合阈值的通道进行裁剪。
非结构性参数裁剪方法,通过动态设置阈值,将较小的权重设置为0,该方法在小网络或较深的网络上,精度基本和原始网络持平,但需搭建稀疏计算框架,增加计算框架设计难度。
通道裁剪一般包括两种策略:一种为从头开始训练,通过稀疏正则化直接了解通道重要性的方法;另一种为基于重建的方法,从头开始训练很难训练,特别是对于大规模数据集上的非常深的网络。基于重建的方法,寻求通过最小化修剪后的特征图的重建误差来进行通道修剪。通道裁剪的方法,恢复原始精度较困难,且在通道选择阶段训练算法复杂、训练迭代次数较多。这些方法受到预先训练的模型严重限制,实际上错误地保留冗余信道。因此,这些方法可能导致用于大规模数据集的ResNet等模型精度明显下降。
综上所述可以看出,如何在减少深度神经网络的计算量与模型大小的同时,确保深度神经网络的网络精度不降低是目前有待解决的问题。
发明内容
本发明的目的是提供一种动态调整神经网络通道的方法、装置、设备以及计算机可读存储介质,以解决现有技术中的DNN模型裁剪算法训练及恢复网络精度困难的问题。
为解决上述技术问题,本发明提供一种动态调整神经网络通道的方法,包括:S1:基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;S2:对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;S3:判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;S4:若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述步骤S2至所述步骤S4,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;S5:对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
优选地,所述基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道包括:
根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值;
统计所述每一层网络的初始输入通道均值;
分别将所述每一层网络的初始输入通道均值与所述每一层网络的最小阈值进行比较,选取初始输入通道均值小于最小阈值的目标网络层的输入通道设为初始被裁剪通道;
将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道。
优选地,所述根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值包括:
根据初始深度神经网络中每一层网络所有参数的均值μ与方差δ,确定所述每一层网络的最小阈值min=μ-c*δ与最大阈值max=μ+ c*δ,其中,c为常数。
优选地,所述对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道包括:
利用梯度下降法对所述初始深度神经网络进行训练,更新所述每一层网络的权重后,重新统计所述每一层网络的当前输入通道均值;
分别对所述每一层网络的当前输入通道均值以及所述每一层网络的最大阈值与最小阈值进行比较;
恢复所述初始被裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最大阈值的误裁剪通道;
将所述初始未裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最小阈值的输入通道设为被裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道。
优选地,所述分别对所述每一层网络的当前输入通道均值以及所述每一层网络的最大阈值与最小阈值进行比较后包括:
若当前网络层的当前输入通道均值大于所述当前网络层的最小阈值且小所述当前网络层的最大阈值,则不改变所述当前网络层的输入通道的状态。
优选地,所述恢复所述初始被裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最大阈值的误裁剪通道包括:
将所述初始被裁剪通道中所处网络层的当前输入通道均值大于所处网络层的最大阈值的误裁剪通道对应的mask值设为1。
本发明还提供了一种动态调整神经网络通道的装置,包括:
选取模块,用于基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;
训练模块,用于对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
判断模块,用于判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
循环模块,用于若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述调整模块、所述判断模块与所述循环模块的启动步骤,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
微调模块,用于对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
优选地,所述选取模块包括:
阈值确定单元,用于根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值;
均值统计单元,用于统计所述每一层网络的初始输入通道均值;
比较选取单元,用于分别将所述每一层网络的初始输入通道均值与所述每一层网络的最小阈值进行比较,选取初始输入通道均值小于最小阈值的目标网络层的输入通道设为初始被裁剪通道;
设置单元,用于将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道。
本发明还提供了一种动态调整神经网络通道的设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种动态调整神经网络通道的方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种动态调整神经网络通道的方法的步骤。
本发明所提供的动态调整神经网络通道的方法,通过预设裁剪规则,在初始深度神经网络中选取初始被裁剪通道,并将除初始被裁剪通道外的通道设为初始未裁剪通道。对所述初始深度神经网络进行训练,更新所述初始深度神经网络每一层网络的权重后,依据所述预设裁剪规则,重新对所述每一层网络的通道重要性进行判断,以便恢复所述初始被裁剪通道中的误裁剪通道,并将所述初始未裁剪通道中不重要的输入通道设为被裁剪通道,从而得到更新后的当前被裁剪通道与当前未裁剪通道。判断所述当前被裁剪通道的数量与总通道数量的比值是否达到了预设裁剪比值。若未达到,则将所述当前被裁剪通道设为初始被裁剪通道,将所述当前未裁剪通道设为初始未裁剪通道后,循环执行对所述初始深度神经网络进行训练,更新所述每一层网络的权重,并对所述初始被裁剪通道及所述初始未裁剪通道中的通道进行调整,确定当前被裁剪通道的数量,比较所述当前被裁剪通道的数量与所述总通道数量的比值是否预设裁剪比值的步骤,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,确定目标被裁剪通道。将目标被裁剪通道进行裁剪后,得到深度神经网络。为了保证精度变化较小,则对所述深度神经网络进行训练,微调所述深度神经网络的网络参数及网络结构,确定目标深度神经网络。本发明所提供的方法,通过裁剪通道压缩网络模型;在网络训练的过程中,通过对不裁剪不正确的通道进行修正,动态调整深度神经网络的通道数,从而恢复网络精度。且为了保证精度损失较小,对通道裁剪后的深度神经网络进行微调训练,直至网络达到收敛。本发明解决了非结构性裁剪算法中需设计稀疏计算框架的问题;并且解决了现有通道裁剪算法中,通道选择算法训练困难,大型网络精度恢复困难的问题。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的动态调整神经网络通道的方法的第一种具体实施例的流程图;
图2为本发明所提供的动态调整神经网络通道的方法的第二种具体实施例的流程图;
图3为本发明实施例提供的一种动态调整神经网络通道的装置的结构框图。
具体实施方式
本发明的核心是提供一种动态调整神经网络通道的方法、装置、设备以及计算机可读存储介质,在减少深度神经网络的计算量与模型大小的同时确保了深度神经网络的网络精度不降低。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的动态调整神经网络通道的方法的第一种具体实施例的流程图;具体操作步骤如下:
步骤S101:基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;
步骤S102:对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
步骤S103:判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
步骤S104:若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述步骤S102至所述步骤S104,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
步骤S105:对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
本实施例所提供的方法,基于深度神经网络的每一层网络的输入通道的数据是否符合标准正态分布,设置通道裁剪规则,从而实现通道重要性的筛选,确保了深度神经网络精度不降低;基于预设裁剪规则,实现深度神经网络通道的动态裁剪及恢复,减少了深度神经网络模型的计算量。
基于上述实施例,在本实施例中,基于预设裁剪规则,根据初始深度神经网络中每一层网络全部参数以及所述每一层网络的初始输入通道均值,选取初始被裁剪通道。完成一次深度神经网络训练后,利用重新统计的所述每一层网络的当前输入通道均值以及所述每一层网络的参数,恢复初始被裁剪通道的误裁剪通道。
请参考图2,图2为本发明所提供的动态调整神经网络通道的方法的第2种具体实施例的流程图;具体操作步骤如下:
步骤S201:根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值,统计所述每一层网络的初始输入通道均值;
根据初始深度神经网络中每一层网络所有参数的均值μ与方差δ,确定所述每一层网络的最小阈值min=μ-c*δ与最大阈值max=μ+ c*δ,其中,c为常数,一般取值为[0,3]。
统计第i个网络层的输入通道均值k为通道总数,i为通道索引。
步骤S202:分别将所述每一层网络的初始输入通道均值与所述每一层网络的最小阈值进行比较,选取初始输入通道均值小于最小阈值的目标网络层的输入通道设为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;
将第i个网络层的输入通道均值与所述第i个网络层的最小阈值和最大阈值进行比较,若所述第i个网络层的输入通道均值小于所述第i 个网络层的最小阈值,则所述第i个网络层的输入通道被裁剪。
所述初始被裁剪通道即将不重要的通道数据进行裁剪,但所述初始裁剪通道中也有可能包括被误剪的重要通道,因此需要对被误剪通道进行恢复。
步骤S203:利用梯度下降法对所述初始深度神经网络进行训练,更新所述每一层网络的权重后,重新统计所述每一层网络的当前输入通道均值;
步骤S204:分别对所述每一层网络的当前输入通道均值以及所述每一层网络的最大阈值与最小阈值进行比较;
若当前网络层的输入通道为初始被裁剪通道,但所述当前网络层的当前输入通道均值小于所述当前网络层的最大阈值,则将所述当前网络层的输入通道进行恢复。在某次或多次训练中,若被错误裁剪的通道恢复其重要性,则该通道将参与计算,通道恢复即将通道对应的 mask值变为1
若所述当前网络层的当前输入通道均值大于所述当前网络层的最小阈值,且小于所述当前网络层的最大阈值,则所述当前网络层的输入通道的状态与上一时刻保持一致。
若所述当前网络层的输入通道为初始未裁剪通道,但所述当前网络层的当前输入通道均值小于所述当前网络层的最小阈值,则将所述当前网络层的输入通道进行裁剪。
步骤S205:恢复所述初始被裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最大阈值的误裁剪通道,并将所述初始未裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最小阈值的输入通道设为被裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
步骤S206:判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
步骤S207:若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述步骤S203至所述步骤S207,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
在本实施例中,可以将所述预设裁剪比值设为40%、50%、60%等。如表1所述,分别将所述预设裁剪比值设为50%与60%时的网络性能与未裁剪通道时的网络性能进行比较,得到性能比较结果,在参数量减少50%时,top1和top5均未下降,并且有所提升。
表1裁剪不同比例通道参数后网络性能对比
步骤S208:利用梯度下降返对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
通道裁剪以及通道拼接后,为了保证网络精度变化较小,对裁剪后的深度神经网络采用梯度下降法进行进一步的微调训练,直至网络达到收敛且精度损失较小。
本实施例所提供的动态调整神经网络通道的方法,可直接减少计算量,并减小模型大小,同时可恢复网络精度。
请参考图3,图3为本发明实施例提供的一种动态调整神经网络通道的装置的结构框图;具体装置可以包括:
选取模块100,用于基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;
训练模块200,用于对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
判断模块300,用于判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
循环模块400,用于若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述训练模块、所述判断模块与所述循环模块的启动步骤,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
微调模块500,用于对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
本实施例的动态调整神经网络通道的装置用于实现前述的动态调整神经网络通道的方法,因此动态调整神经网络通道的装置中的具体实施方式可见前文中的动态调整神经网络通道的方法的实施例部分,例如,选取模块100,训练模块200,判断模块300,循环模块400,微调模块500,分别用于实现上述动态调整神经网络通道的方法中步骤S101,S102,S103,S104和S105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明具体实施例还提供了一种动态调整神经网络通道的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种动态调整神经网络通道的方法的步骤。
本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种动态调整神经网络通道的方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程 ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的动态调整神经网络通道的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种动态调整神经网络通道的方法,其特征在于,包括:
S1:基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;
S2:对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
S3:判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
S4:若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述步骤S2至所述步骤S4,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
S5:对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
2.如权利要求1所述的方法,其特征在于,所述基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道包括:
根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值;
统计所述每一层网络的初始输入通道均值;
分别将所述每一层网络的初始输入通道均值与所述每一层网络的最小阈值进行比较,选取初始输入通道均值小于最小阈值的目标网络层的输入通道设为初始被裁剪通道;
将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道。
3.如权利要求2所述的方法,其特征在于,所述根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值包括:
根据初始深度神经网络中每一层网络所有参数的均值μ与方差δ,确定所述每一层网络的最小阈值min=μ-c*δ与最大阈值max=μ+c*δ,其中,c为常数。
4.如权利要求3所述的方法,其特征在于,所述对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道包括:
利用梯度下降法对所述初始深度神经网络进行训练,更新所述每一层网络的权重后,重新统计所述每一层网络的当前输入通道均值;
分别对所述每一层网络的当前输入通道均值以及所述每一层网络的最大阈值与最小阈值进行比较;
恢复所述初始被裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最大阈值的误裁剪通道;
将所述初始未裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最小阈值的输入通道设为被裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道。
5.如权利要求4所述的方法,其特征在于,所述分别对所述每一层网络的当前输入通道均值以及所述每一层网络的最大阈值与最小阈值进行比较后包括:
若当前网络层的当前输入通道均值大于所述当前网络层的最小阈值且小所述当前网络层的最大阈值,则不改变所述当前网络层的输入通道的状态。
6.如权利要求4所述的方法,其特征在于,所述恢复所述初始被裁剪通道中所处网络层的当前输入通道均值小于所处网络层的最大阈值的误裁剪通道包括:
将所述初始被裁剪通道中所处网络层的当前输入通道均值大于所处网络层的最大阈值的误裁剪通道对应的mask值设为1。
7.一种动态调整神经网络通道的装置,其特征在于,包括:
选取模块,用于基于预设裁剪规则,在初始深度神经网络中选取目标网络层的输入通道作为初始被裁剪通道,并将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道;其中,所述预设裁剪规则根据所述初始深度神经网络的每一网络层的输入通道的数据是否符合标准正态化设置;
训练模块,用于对所述初始深度神经网络进行训练,更新所述初始深度神经网络的各个网络层的权重后,依据所述预设裁剪规则,恢复所述初始被裁剪通道中的误裁剪通道,裁剪所述初始未裁剪通道中的待裁剪通道,得到更新后的当前被裁剪通道与当前未裁剪通道;
判断模块,用于判断所述当前被裁剪通道的数量与所述初始深度神经网络的总通道数量的比值是否小于预设裁剪比值;
循环模块,用于若所述当前被裁剪通道的数量与所述总通道数量的比值小于所述预设裁剪比值,则分别将所述当前被裁剪通道与所述当前未裁剪通道设为初始被裁剪通道与初始未裁剪通道后,循环执行所述训练模块、所述判断模块与所述循环模块的启动步骤,直至所述当前被裁剪通道的数量与所述总通道数量的比值等于所述预设裁剪比值,获取完成通道裁剪后的深度神经网络;
微调模块,用于对所述完成通道裁剪后的深度神经网络进行训练,得到完成训练后的目标深度神经网络。
8.如权利要求7所述的装置,其特征在于,所述选取模块包括:
阈值确定单元,用于根据初始深度神经网络中每一层网络全部参数的方差与均值,确定所述每一层网络的最小阈值与最大阈值;
均值统计单元,用于统计所述每一层网络的初始输入通道均值;
比较选取单元,用于分别将所述每一层网络的初始输入通道均值与所述每一层网络的最小阈值进行比较,选取初始输入通道均值小于最小阈值的目标网络层的输入通道设为初始被裁剪通道;
设置单元,用于将所述初始深度神经网络中除所述初始被裁剪通道外的通道设为初始未裁剪通道。
9.一种动态调整神经网络通道的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述一种动态调整神经网络通道的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一种动态调整神经网络通道的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936870.2A CN110659735A (zh) | 2019-09-29 | 2019-09-29 | 一种动态调整神经网络通道的方法、装置以及设备 |
US17/764,325 US20220351044A1 (en) | 2019-09-29 | 2020-01-20 | Method, apparatus and device for dynamically adjusting neural network channel |
PCT/CN2020/073195 WO2021056941A1 (zh) | 2019-09-29 | 2020-01-20 | 一种动态调整神经网络通道的方法、装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936870.2A CN110659735A (zh) | 2019-09-29 | 2019-09-29 | 一种动态调整神经网络通道的方法、装置以及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659735A true CN110659735A (zh) | 2020-01-07 |
Family
ID=69040036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936870.2A Pending CN110659735A (zh) | 2019-09-29 | 2019-09-29 | 一种动态调整神经网络通道的方法、装置以及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220351044A1 (zh) |
CN (1) | CN110659735A (zh) |
WO (1) | WO2021056941A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021056941A1 (zh) * | 2019-09-29 | 2021-04-01 | 广东浪潮大数据研究有限公司 | 一种动态调整神经网络通道的方法、装置以及设备 |
WO2022241804A1 (zh) * | 2021-05-20 | 2022-11-24 | 广州广电运通金融电子股份有限公司 | 一种小网络模型裁剪方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11934958B2 (en) * | 2021-01-13 | 2024-03-19 | Adobe Inc. | Compressing generative adversarial neural networks |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598340A (zh) * | 2018-11-15 | 2019-04-09 | 北京知道创宇信息技术有限公司 | 卷积神经网络的裁剪方法、装置及存储介质 |
CN109635935B (zh) * | 2018-12-29 | 2022-10-14 | 北京航空航天大学 | 基于模长聚类的深度卷积神经网络模型自适应量化方法 |
CN110659735A (zh) * | 2019-09-29 | 2020-01-07 | 广东浪潮大数据研究有限公司 | 一种动态调整神经网络通道的方法、装置以及设备 |
-
2019
- 2019-09-29 CN CN201910936870.2A patent/CN110659735A/zh active Pending
-
2020
- 2020-01-20 US US17/764,325 patent/US20220351044A1/en active Pending
- 2020-01-20 WO PCT/CN2020/073195 patent/WO2021056941A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021056941A1 (zh) * | 2019-09-29 | 2021-04-01 | 广东浪潮大数据研究有限公司 | 一种动态调整神经网络通道的方法、装置以及设备 |
WO2022241804A1 (zh) * | 2021-05-20 | 2022-11-24 | 广州广电运通金融电子股份有限公司 | 一种小网络模型裁剪方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220351044A1 (en) | 2022-11-03 |
WO2021056941A1 (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659735A (zh) | 一种动态调整神经网络通道的方法、装置以及设备 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN113657421B (zh) | 卷积神经网络压缩方法和装置、图像分类方法和装置 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN115829024B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN109583586B (zh) | 一种语音识别或图像识别中的卷积核处理方法及装置 | |
CN110782021B (zh) | 一种图像分类方法、装置、设备及计算机可读存储介质 | |
CN110705708A (zh) | 卷积神经网络模型的压缩方法、装置及计算机存储介质 | |
CN115329744B (zh) | 一种自然语言处理方法、系统、设备及存储介质 | |
CN112990420A (zh) | 一种用于卷积神经网络模型的剪枝方法 | |
CN113283473B (zh) | 一种基于cnn特征映射剪枝的快速水下目标识别方法 | |
CN111612163A (zh) | 一种基于机器学习模型的训练方法及装置 | |
CN111488982A (zh) | 深度神经网络自动择优混合剪枝的压缩方法 | |
CN110826692A (zh) | 一种自动化模型压缩方法、装置、设备及存储介质 | |
CN114707637A (zh) | 一种神经网络量化部署方法、系统及存储介质 | |
CN108509727B (zh) | 数据建模中的模型选择处理方法及装置 | |
CN111160519A (zh) | 基于结构冗余检测的卷积神经网络模型剪枝方法 | |
CN113128664A (zh) | 神经网络压缩方法、装置、电子设备及存储介质 | |
CN103578274B (zh) | 一种交通流预测方法及装置 | |
CN112132062B (zh) | 一种基于剪枝压缩神经网络的遥感图像分类方法 | |
CN117764135A (zh) | 一种深度神经网络模型的剪枝方法及相关组件 | |
CN117408736A (zh) | 基于改进的Stacking融合算法的企业资金需求挖掘方法和介质 | |
CN115170902B (zh) | 图像处理模型的训练方法 | |
CN112232505A (zh) | 模型训练方法、处理方法、装置、电子设备及存储介质 | |
CN111602145A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200107 |
|
RJ01 | Rejection of invention patent application after publication |