一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

深度神经网络模型剪枝方法、系统、设备及介质与流程

2022-07-13 18:15:40 来源:中国专利 TAG:


1.本发明属于人工智能技术领域,特别涉及一种深度神经网络模型剪枝方法、系统、设备及介质。


背景技术:

2.目前,以卷积神经网络为核心技术的人工智能技术已取得了一系列突破性进展,逐步应用于武器装备和各类航天器,实现基于卫星的在轨目标检测,导弹的智能目标识别的精确打击、自主避障、任务规划等应用;但是上述应用实现依赖的深度神经网络模型通常模型参数多,计算量大;大多实际应用场景下,在ai应用嵌入式设备中神经网络模型的计算单元在体积和功耗上常常受限,导致模型参数过多无法正常部署,或者部署后前向推理耗时较长,无法满足智能应用的实时性要求;因此,如何利用神经网络剪枝技术对深度神经网络进行裁剪,以减少网络模型的参数量和前向推理的计算量,已成为目前机器学习的研究热点。
3.采用深度可分离卷积替换传统卷积可以大幅降低神经网络模型的计算量,因此在嵌入式低功耗平台上得到了广泛应用;现有的模型剪枝方法大部分都是针对传统卷积,目前国内外在深度可分离卷积的剪枝方法没有成熟的方案,若能够在深度可分离卷积上进行模型剪枝,则可在计算量较传统卷积低的基础上进一步降低计算量,有着重要的实用价值。


技术实现要素:

4.针对现有技术中存在的技术问题,本发明提供了一种深度神经网络模型剪枝方法、系统、设备及介质,以解决现有的模型剪枝方法大多针对传统卷积,尚未有针对深度可分离卷积的深度网络模型的剪枝方法的技术问题。
5.为达到上述目的,本发明采用的技术方案为:
6.本发明提供了一种深度神经网络模型剪枝方法,包括以下步骤:
7.对待剪枝模型进行稀疏化训练,得到稀疏化模型;其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;
8.基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;
9.对修剪后的网络模型的权重进行微调训练,输出微调后的网络模型,即得到所述剪枝后的深度神经网络模型。
10.进一步的,对待剪枝模型进行稀疏化训练,得到稀疏化模型的过程,具体如下:
11.在待剪枝模型的损失函数中,引入l1正则项,得到新的损失函数;
12.创建训练数据集,并利用所述训练数据集对待剪枝模型进行优化训练,至新的损失函数收敛,得到所述的稀疏化模型。
13.进一步的,所述新的损失函数为:
14.j(θ;x,y)=l
emp
(θ;x,y) λω(θ)
[0015][0016]
其中,j(θ;x,y)为新的损失函数;l
emp
(θ;x,y)为待剪枝模型的原始损失函数;λ为最优惩罚因子;ω(θ)为l1正则项;θ为需要学习的模型参数;x为训练数据集;y为标签;i为待剪枝模型中的卷积层序号;c为待剪枝模型中的卷积层总个数;ωi为待剪枝模型中的第i个卷积层的全体参数。
[0017]
进一步的,基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型的过程,具体如下:
[0018]
确定稀疏化模型中point-wise卷积通道的权重绝对值,按照所述权重绝对值由大到小的顺序,对稀疏化模型中point-wise卷积通道进行排序,得到point-wise卷积通道的重要性排序;
[0019]
根据point-wise卷积通道的重要性排序及预设通道修剪阈值,对所述稀疏化模型中point-wise卷积通道进行修剪,得到所述修剪后的网络模型。
[0020]
进一步的,预设通道修剪阈值为修剪前稀疏化模块中point-wise卷积通道个数的5%。
[0021]
进一步的,对修剪后的网络模型的权重进行微调训练之后,还包括循环修剪-微调步骤;
[0022]
所述循环修剪-微调步骤,具体如下:
[0023]
确定微调训练后的网络模型中剩余point-wise卷积通道的重要性排序;根据所述剩余point-wise卷积通道的重要性排序及预设通道修剪阈值,对所述微调训练后的网络模型中point-wise卷积通道进行修剪,并对修剪后的模型的权重进行微调训练,输出微调后的网络模型;
[0024]
所述循环修剪-微调步骤的循环终止条件为:所述微调后的网络模型的剪枝比例达到预设剪枝比例;所述预设剪枝比例根据超参数α确定。
[0025]
进一步的,对修剪后的网络模型的权重进行微调训练的过程,具体如下:
[0026]
采用初始学习率,对修剪后的网络模型及模型权重进行训练;其中,所述初始学习率为0.1。
[0027]
本发明还提供了一种深度神经网络模型剪枝系统,包括:
[0028]
稀疏化训练模块,用于对待剪枝模型进行稀疏化训练,得到稀疏化模型;其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;
[0029]
剪枝模块,用于基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;
[0030]
微调模块,用于对修剪后的网络模型的权重进行微调训练,输出微调后的网络模型,即得到所述剪枝后的深度神经网络模型。
[0031]
本发明还提供了一种深度神经网络模型剪枝设备,包括:
[0032]
存储器,用于存储计算机程序;
[0033]
处理器,用于执行所述计算机程序时实现所述的深度神经网络模型剪枝方法的步骤。
[0034]
本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的深度神经网络模型剪枝方法的步骤。
[0035]
与现有技术相比,本发明的有益效果为:
[0036]
本发明提供了一种深度神经网络模型剪枝方法,深度可分离卷积由depth-wise卷积和point-wise卷积组成;针对深度可分离卷积的特点,对于计算量占比大的point-wise卷积进行了基于通道的剪枝。通过评估通道的重要性,将不重要的通道进行删除,从而将相关的滤波器和特征图进行删除。为了保证将重要特征图保留下来,而将不重要的特征图删除,在剪枝的过程中实现了point-wise卷积权重的稀疏化,确保网络精度,同时可以有效地降低模型的计算量和参数量。
附图说明
[0037]
图1为本发明所述的深度神经网络模型剪枝方法的流程图;
[0038]
图2为本发明中对于输入特征图进行剪枝的过程示意图;
[0039]
图3为实施例中针对mobilenetv2模型的剪枝方法流程图。
具体实施方式
[0040]
为了使本发明所解决的技术问题,技术方案及有益效果更加清楚明白,以下具体实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0041]
如附图1所示,本发明提供了一种深度神经网络模型剪枝方法,包括以下步骤:
[0042]
步骤1、对待剪枝模型进行稀疏化训练,得到稀疏化模型。其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积。
[0043]
所述稀疏化训练过程,具体如下:
[0044]
步骤11、在待剪枝模型的损失函数中,引入l1正则项,得到新的损失函数;其中,所述新的损失函数为:
[0045]
j(θ;x,y)=l
emp
(θ;x,y) λω(θ)
[0046][0047][0048]
其中,j(θ;x,y)为新的损失函数;l
emp
(θ;x,y)为待剪枝模型的原始损失函数;λ为最优惩罚因子;ω(θ)为l1正则项;θ为需要学习的模型参数;x为训练数据集;y为标签;i为待剪枝模型中的卷积层序号;c为待剪枝模型中的卷积层总个数;ωi为待剪枝模型中的第i个卷积层的全体参数;n为训练样本数量,m为训练样本类别数量;p
jm
为观测样本j属于类别m的预测概率;y
jm
是符号函数,y
jm
为0或1;其中,如果观测样本j的真实类别等于m,则y
jm
取1,否则,y
jm
取0。
[0049]
步骤12、创建训练数据集,并利用所述训练数据集对待剪枝模型进行优化训练,至
新的损失函数收敛,得到所述的稀疏化模型。
[0050]
步骤2、基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;其中,修剪过程具体如下:
[0051]
步骤21、确定稀疏化模型中point-wise卷积通道的权重绝对值,按照所述权重绝对值由大到小的顺序,对稀疏化模型中point-wise卷积通道进行排序,得到point-wise卷积通道的重要性排序;
[0052]
步骤22、根据point-wise卷积通道的重要性排序及预设通道修剪阈值,对所述稀疏化模型中point-wise卷积通道进行修剪,得到所述修剪后的网络模型;本发明中,单次修剪过程中,预设通道修剪阈值为修剪前稀疏化模块中point-wise卷积通道个数的5%。
[0053]
步骤3、对修剪后的网络模型的权重进行微调训练,得到微调训练后的网络模型;具体为:采用初始学习率,对修剪后的网络模型及模型权重进行训练,得到微调训练后的网络模型。
[0054]
步骤4、对微调训练后的网络模型重复步骤2、步骤3的操作,至所述微调后的网络模型的剪枝比例达到预设剪枝比例;所述预设剪枝比例根据超参数α确定。
[0055]
具体过程如下:
[0056]
确定微调训练后的网络模型中剩余point-wise卷积通道的重要性排序;根据所述剩余point-wise卷积通道的重要性排序及预设通道修剪阈值,对所述微调训练后的网络模型中point-wise卷积通道进行修剪,并对修剪后的模型的权重进行微调训练,输出微调后的网络模型;所述循环修剪-微调步骤的循环终止条件为:所述微调后的网络模型的剪枝比例达到预设剪枝比例;所述预设剪枝比例根据超参数α确定。
[0057]
步骤5、评估微调后的网络模型的精度、计算量及参数量进行评估验证,确定微调后的网络模型的剪枝结果的有效性。
[0058]
剪枝原理:
[0059]
本发明所述的深度神经网络模型剪枝方法,在剪枝过程中,根据所述深度可分离卷积的特点,结合“卷积权重绝对值之和越大的point-wise卷积层通道,其通过线性组合产生的后续激活值越强,因而通道的重要性越强”的原理;充分利用深度可分离卷积模型通道中隐含的高维信息,更加有针对性地进行剪枝操作;在剪枝操作过程中,通过多轮训练,对于网络的精度进行恢复;本发明所述的剪枝方法,与待剪枝模型的具体模型结构无强绑定关系,能够针对任何应用深度可分离卷积块的卷积神经网络进行剪枝压缩处理。
[0060]
所述深度可分离卷积包括depth-wise卷积和point-wise卷积,所述point-wise卷积占据了其中大部分的计算;point-wise卷积被认为是输入特征图中不同通道的线性组合;在线性组合中,通过评估point-wise层中权值大小,可以估计出输入通道的重要程度,从而将较小的权重及其关联的特征图删除掉,降低网络的参数量和运算量。
[0061]
在深度可分离卷积中,绝大部分的计算量还是集中在1
×
1卷积上。因此首先将剪枝的重点放在1
×
1卷积上;如下公式1所示,公式(1)中描述了输入m个特征图(f1,f2,

,fm)和一个1
×1×
m滤波器(k1,k2,

,km)的卷积过程;
[0062][0063]
其中,fi为point-wise卷积操作的输入特征图中第i个值,该组特征图维度共计1
×1×
m;ki为point-wise卷积操作的卷积核中的第i个权重系数,该组卷积核权重维度亦为1
×1×
m;为最终输出的特征图;由于逐点滤波器的平面尺度为1
×
1,逐点卷积的输出可以被认为是输入特征图的多项线性组合。
[0064]
既然逐点卷积计算可以表示为特征图的线性组合,那么在线性组合中权值小的特征图的作用对于结果应该是最小的;多个1
×1×
m卷积中某一个通道对应的权值很小的话,可以认为这个通道的重要性不强。在剪枝过程中,考虑将不重要的特征图连同其权重删除掉。
[0065]
如附图2所示,加入浅色的输入特征图的权重很小;在剪枝的过程中,将浅色的特征图通道及其对应卷积核的权重删除掉,从而降低了计算量和相应的参数数量;在逐点卷积裁剪过程中,按照逐点卷积每个层分别进行剪枝;以l1正则作为通道重要性的评价标准,对1
×
1滤波器模型通道重要性进行排序;在单次剪枝过程中,对各深度可分类卷积层的通道按照重要性升序依次去除占原始5%左右的通道数,随后对网络权重进行微调训练;超参数α用以规定总计的剪枝比例,“剪枝-微调”过程多次重复至达到超参数α设定值为止;超参数α通过实验获得经验值,在保证精度的前提下,尽可能减少计算量和参数。
[0066]
在剪枝的过程中如果1
×
1卷积中的权重都同等重要的话,则剪枝之后对于网络性能有比较大的影响。我们希望在线性组合中,让不重要的通道的权值尽量的小,接近于零,让真正有价值的通道及其权值保留下来。为达到这个目的,通常使用正则化方法,即在目标函数上加上一个正则化函数作为罚函数来限制模型的复杂性,通过防止过拟合来提高泛化能力。
[0067]
本发明训练过程中使用了l1正则的方法对于权重进行了稀疏化,选择部分权重使其取值突出,让其它权重取值向零靠近;其中,添加l1正则化罚函数后总的损失函数(也叫目标函数)为:
[0068]
j(θ;x,y)=l
emp
(θ;x,y) λω(θ)
[0069][0070]
其中,j(θ;x,y)为新的损失函数;l
emp
(θ;x,y)为待剪枝模型的原始损失函数;λ为最优惩罚因子;ω(θ)为l1正则项;θ为需要学习的模型参数;x为训练数据集;y为标签;i为待剪枝模型中的卷积层序号;c为待剪枝模型中的卷积层总个数;n为训练样本数量,m为训练样本类别数量;p
jm
为观测样本j属于类别m的预测概率;y
jm
是符号函数,y
jm
为0或1;其中,如果观测样本j的真实类别等于m,则y
jm
取1,否则,y
jm
取0。
[0071]
λ是用来调整参数范数惩罚项的超参数,又称作最优惩罚因子;当λ=0时表示没有正则化,λ越大对应该的正则化惩罚就越大;当模型训练采用l1正则化来进行稀疏的时候,λ参数的经验性取值一般为10-5
左右;对于参数的l1正则化为:
[0072][0073]
其中,i为待剪枝模型中的卷积层序号;c为待剪枝模型中的卷积层总个数;ωi为待剪枝模型中的第i个卷积层的全体参数。
[0074]
本发明所述的深度神经网络模型剪枝方法,包括:步骤a:根据具体任务获取目标图像和相应的模型原始结构,并将该图像的训练、测试样本,制作成待训练模型的输入格式;步骤b:模型预训练模块对模型进行带l1正则项的稀疏化训练,得到原始的稀疏模型,即基线模型,并对数据集测试样本测得基线精度;步骤c:采用模型剪枝模块对采用基于point-wise权重绝对值的重要性评估方法,单次对各point-wise层删掉基线通道数的5%;步骤d:采用微调模块使用较小的初始学习率,对步骤c输出的剪枝后模型及其附带权重进行微调训练。微调训练执行完成后跳转回c步骤,“c步骤-d步骤”即“剪枝-微调”的循环终止条件由超参数α来影响;步骤e:上述步骤执行完毕后,使用模型预训练模块对最终模型进行精度、计算量/参数量等方面的验证,以确定本次剪枝工作的有效性。
[0075]
本发明还提供了一种深度神经网络模型剪枝系统,包括稀疏化训练模块、剪枝模块、微调模块、循环剪枝-微调模块及评估验证模块;稀疏化训练模块,用于对待剪枝模型进行稀疏化训练,得到稀疏化模型;其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;剪枝模块,用于基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;微调模块,用于对修剪后的网络模型的权重进行微调训练,得到微调训练后的网络模型;具体为:采用初始学习率,对修剪后的网络模型及模型权重进行训练,得到微调训练后的网络模型;循环剪枝-微调模块,用于对微调训练后的网络模型重复剪枝模块中的剪枝操作及微调模块中的微调操作,至所述微调后的网络模型的剪枝比例达到预设剪枝比例;评估验证模块,用于评估微调后的网络模型的精度、计算量及参数量进行评估验证,确定微调后的网络模型的剪枝结果的有效性。
[0076]
本发明中,稀疏化训练模块:采用包含一个通用训练训练框架在内的软硬件平台,采用稀疏训练,得到原始的稀疏化网络模型,同时具备计算量/参数量统计以及测试集精度统计功能;模型剪枝模块:根据设计的基于point-wise权重绝对值的重要性评估方法进行模型剪枝;微调模块:和上述模型预训练模块类似,在学习率和网络训练结构有做调整。用于在模型剪枝后,对获得的精简网络结构进行一定轮次的训练。
[0077]
本发明还提供了一种深度神经网络模型剪枝设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现深度神经网络模型剪枝方法的步骤。
[0078]
所述处理器执行所述计算机程序时实现上述深度神经网络模型剪枝方法的步骤,例如:对待剪枝模型进行稀疏化训练,得到稀疏化模型;其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;剪枝模块,用于基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;微调模块,用于对修剪后的网络模型的权重进行微调训练,得到微调训练后的网络模型;具体为:采用初始学习率,对修剪后的网络模型及模型权重进行训练,得到微调训练后的网络模型;循环剪枝-微调模块,用于对微调训练后的网络模型重复剪枝操作及微调操作,至所述微调后的网络模型的剪枝比例达
到预设剪枝比例;评估验证模块,用于评估微调后的网络模型的精度、计算量及参数量进行评估验证,确定微调后的网络模型的剪枝结果的有效性。
[0079]
或者,所述处理器执行所述计算机程序时实现上述系统中各模块的功能,例如:稀疏化训练模块,用于对待剪枝模型进行稀疏化训练,得到稀疏化模型;其中,待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;剪枝模块,用于基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;微调模块,用于对修剪后的网络模型的权重进行微调训练,得到微调训练后的网络模型;具体为:采用初始学习率,对修剪后的网络模型及模型权重进行训练,得到微调训练后的网络模型;循环剪枝-微调模块,用于对微调训练后的网络模型重复剪枝模块中的剪枝操作及微调模块中的微调操作,至所述微调后的网络模型的剪枝比例达到预设剪枝比例;评估验证模块,用于评估微调后的网络模型的精度、计算量及参数量进行评估验证,确定微调后的网络模型的剪枝结果的有效性。
[0080]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成预设功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序在所述深度神经网络模型剪枝设备中的执行过程。例如,所述计算机程序可以被分割成稀疏化训练模块、剪枝模块、微调模块、循环剪枝-微调模块及评估验证模块;各模块具体功能如下:其中,稀疏化训练模块,用于对待剪枝模型进行稀疏化训练,得到稀疏化模型;待剪枝模型为深度可分离卷积的深度神经网络模型;所述深度可分离卷积包括depth-wise卷积和point-wise卷积;剪枝模块,用于基于point-wise卷积中各个通道的权重绝对值的重要性评估结果,对稀疏化模型的卷积层通道进行修剪,得到修剪后的网络模型;微调模块,用于对修剪后的网络模型的权重进行微调训练,得到微调训练后的网络模型;具体为:采用初始学习率,对修剪后的网络模型及模型权重进行训练,得到微调训练后的网络模型;循环剪枝-微调模块,用于对微调训练后的网络模型重复剪枝模块中的剪枝操作及微调模块中的微调操作,至所述微调后的网络模型的剪枝比例达到预设剪枝比例;评估验证模块,用于评估微调后的网络模型的精度、计算量及参数量进行评估验证,确定微调后的网络模型的剪枝结果的有效性。
[0081]
所述深度神经网络模型剪枝设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述深度神经网络模型剪枝设备可包括,但不仅限于处理器、存储器。本领域技术人员可以理解,上述仅仅是深度神经网络模型剪枝设备的示例,并不构成对深度神经网络模型剪枝设备的限定,可以包括比上述更多的部件,或者组合某些部件,或者不同的部件,例如所述深度神经网络模型剪枝设备还可以包括输入输出设备、网络接入设备、总线等。
[0082]
所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是任何常规的处理器
等,所述处理器是所述深度神经网络模型剪枝设备的控制中心,利用各种接口和线路连接整个深度神经网络模型剪枝设备的各个部分。
[0083]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述深度神经网络模型剪枝设备的各种功能。
[0084]
所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0085]
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种深度神经网络模型剪枝方法的步骤。
[0086]
所述深度神经网络模型剪枝系统集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0087]
基于这样的理解,本发明实现上述深度神经网络模型剪枝方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述深度神经网络模型剪枝方法的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或预设中间形式等。
[0088]
所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。
[0089]
需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
[0090]
实施例
[0091]
本实施例中,以对mobilenetv2的剪枝过程为例,对所述深度神经网络模型剪枝方法进行具体说明。
[0092]
如附图3所示,本实施例提供了一种深度神经网络模型剪枝方法,包括以下步骤:
[0093]
步骤1、对模型mobilenetv2进行稀疏训练
[0094]
根据由pytorch深度神经网络库所封装的训练框架,对目标检测模型mobilenetv2以端到端的方式,在8g显存的nvidia rtx 2070gpu上进行稀疏训练。
[0095]
稀疏训练的正则化损失函数的最优惩罚因子λ为1e-5;并通过随机梯度法(sgd)作为反向传播过程中的优化器,其权重衰减设为5e-4,动量为0.9。
[0096]
训练开始阶段,采用随机权重对基线模型进行权重初始化;输入图像统一为边长32像素的正方形图像,批处理图像数量设置为128;其中,预训练阶段总共训练200个
epochs,前60个epochs学习率0.1,第61到第120个epochs学习率为0.02,第121到第160个epochs学习率为4e-3,第161到第200个epochs学习率为8e-4。
[0097]
步骤2、针对point-wise卷积的通道剪枝
[0098]
本实施例中,剪枝比例的超参数α设为0.6;通过公式(1)呈现的point-wise卷积的计算模式,在多个1
×1×
m卷积层中全部通道对应的权值按照绝对值大小排序;在剪枝过程中,将绝对值最小的通道对应的特征图连同其权重删除;通道删除执行若干次,直至将该层在基线模型中对应通道数的5%左右的通道删除时停止。
[0099][0100]
其中,fi为point-wise卷积操作的输入特征图中第i个值,该组特征图维度共计1
×1×
m;ki为point-wise卷积操作的卷积核中的第i个权重系数,该组卷积核权重维度亦为1
×1×
m;为最终输出的特征图。
[0101]
其中,要删除的通道选择规则为:
[0102]
min{||ki||1},1≤i≤m。
[0103]
步骤3、微调过程
[0104]
经步骤2针对point-wise卷积的通道剪枝完成后,对每一个point-wise卷积层的上下衔接网络层进行修改;具体的,所述上下衔接网络层包括但不限于后面紧邻的批量归一化层、激活层和depth-wise卷积层;以使传递过程中特征图和权重的通道数一致,确保特征图可以正确地进行推理;全部神经网络结构修剪完毕后;按照上述相同的训练框架和超参数设置进行微调,共200个epochs。
[0105]
步骤2、3的上述过程循环执行,至设定的超参数α为0.6的剪枝比例,共计循环了12次。
[0106]
步骤4、剪枝模型的精度测试和规模统计
[0107]
将本发明得到的算法在cifar-100数据集上进行验证,评估指标使用参数量压缩率、计算量压缩率和平均精度。
[0108]
验证结果:
[0109]
对于cifar-100数据集,使用本实施例对于mobilenetv2网络进行了精简;实现了参数量从原网络的2.36938m下降到0.46082m,压缩率为19.45%;计算量从原网络的0.06775925g flops下降到0.013291428g flops,压缩率为19.62%;网络top-1精度从68.42%变为67.41%,top-5精度从90.97%变为90.54%;也就是说基于通道重要性的深度神经网络模型剪枝算法在保持网络模型精度水平的情况下,参数和计算量都下降到先前的五分之一以下;基于mobilenetv2基线模型结构和cifar-100数据集的本实施例的执行效果。
[0110]
本发明所述的深度神经网络模型剪枝方法、系统、设备及介质,深度可分离卷积由depth-wise卷积和point-wise卷积组成;针对深度可分离卷积的特点,对于计算量占比大的point-wise卷积进行了基于通道的剪枝。通过评估通道的重要性,将不重要的通道进行
删除,从而将相关的滤波器和特征图进行删除。为了保证将重要特征图保留下来,而将不重要的特征图删除,在剪枝的过程中实现了point-wise卷积权重的稀疏化,确保网络精度,同时可以有效地降低模型的计算量和参数量。
[0111]
上述实施例仅仅是能够实现本发明技术方案的实施方式之一,本发明所要求保护的范围并不仅仅受本实施例的限制,还包括在本发明所公开的技术范围内,任何熟悉本技术领域的技术人员所容易想到的变化、替换及其他实施方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献