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

基于深度可分离卷积模块的剪枝方法及系统与流程

2021-11-03 20:41:00 来源:中国专利 TAG:


1.本发明涉及卷积神经网络压缩技术领域,尤其涉及一种基于深度可分离卷积模块的剪枝方法及系统。


背景技术:

2.在机器人,手机等基于cpu边缘端设备算力有限,部署的深度神经网络的计算量往往决定了网络推理所需要消耗时间。随着卷积神经网络的发展,一种基于深度可分离卷积模块的网络架构在许多边缘端设备上得到应用。深度可分离卷积模块由depthwise卷积和pointwise卷积组成,depthwise卷积本质上是一个大窗口的群卷积,在减少计算量的同时,保持网络的感受野。 pointwise卷积是小窗口的常规卷积,功能在于调整网络的通道数,保持网络复杂度。一般来说,基于深度可分离卷积的mobilenet/shufflenet等轻量化网络结构由人工设计,在实际业务场景下,不能直接部署在边缘端设备上,需要对网络结构/参数进一步压缩。


技术实现要素:

3.本发明实施例提供一种基于深度可分离卷积模块的剪枝方法及系统,以解决现在有的神经网络计算量大,不能直接部署在边缘端设备上。
4.一种基于深度可分离卷积模块的剪枝方法,所述方法包括:利用稀疏化方式训练基于深度可分离卷积模块的mobilenet神经网络;利用剪枝规则对稀疏化训练后的网络模型进行处理,获得剪枝后的mobilenet神经网络。
5.进一步地,所述mobilenet神经网络包括多组卷积模块,每组所述卷积模块包括depthwise卷积块和pointwise卷积块,训练损失函数loss为:
6.loss=loss
net
α(loss
l1
loss
diff
);
7.其中,α是调节系数,loss
l1
为稀疏化损失函数,loss
diff
为一致性损失函数,loss
net
为训练任务损失函数;
8.所述稀疏化损失函数loss
l1
为:
9.loss
l1
=||gamma
p
|| ||gamma
d
||;
10.其中,gamma
d
为本组可分离卷积模块的gamma值,gamma
p
为上一组可分离卷积模块的gamma值;
11.所述一致性损失函数loss
diff
为:
[0012][0013]
其中,p
mask
=gamma
p
>prune_thre;d
mask
=gamma
d
>prune_thre, prune_thre表示剪枝阈值,prune_thre=le

4,p
mask
表示pointwise卷积块的mask,d
mask
表示depthwise卷积块的mask。
[0014]
进一步地,所述剪枝规则为:
[0015]
mask=(gamma
p
>prune_thre)∪(gamma
d
>prune_thre);
[0016]
其中,prune_thre表示剪枝阈值,prune_thre=le

4。
[0017]
进一步地,所述每组卷积模块中的depthwise卷积核和pointwise卷积核参数为:
[0018]
kernel
newd
=kernel
d
[index
d
,:,:,:];
[0019]
kernel
newp
=kernel
p
[index
p
,index
d
:,:,:]。
[0020]
本发明还提供一种基于深度可分离卷积模块的剪枝系统,所述系统包括:损失训练模块,用于利用稀疏化方式训练基于深度可分离卷积模块的mobilenet神经网络;通道剪枝模块,用于利用剪枝规则对稀疏化训练后的网络模型进行处理,获得剪枝后的mobilenet神经网络。
[0021]
进一步地,所述mobilenet神经网络包括多组卷积模块,每组所述卷积模块包括depthwise卷积块和pointwise卷积块,所述损失训练模块的训练损失函数loss为:
[0022]
loss=loss
net
α(loss
l1
loss
diff
);
[0023]
其中,α为调节系数,loss
l1
为稀疏化损失函数,loss
diff
为一致性损失函数,loss
net
为训练任务损失函数;
[0024]
所述稀疏化损失函数loss
l1
为:
[0025]
loss
l1
=||gamma
p
|| ||gamma
d
||;
[0026]
其中,gamma
d
为本组可分离卷积模块的gamma值,gamma
p
为上一组可分离卷积模块的gamma值;
[0027]
所述一致性损失函数loss
diff
为:
[0028][0029]
其中,p
mask
=gamma
p
>prune_thre;d
mask
=gamma
d
>prune_thre, prune_thre表示剪枝阈值,prune_thre=le

4,p
mask
表示pointwise卷积块的mask,d
mask
表示depthwise卷积块的mask。
[0030]
进一步地,所述通道剪枝模块的剪枝规则为:
[0031]
mask=(gamma
p
>prune_thre)∪(gamma
d
>prune_thre);
[0032]
其中,prune_thre表示剪枝阈值,prune_thre=le

4。
[0033]
进一步地,每组卷积模块中的depthwise卷积核和pointwise卷积核参数为:
[0034]
kernel
newd
=kernel
d
[index
d
,:,:,:];
[0035]
kernel
newp
=kernel
p
[index
p
,index
d
:,:,:]。
[0036]
本发明还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的基于深度可分离卷积模块的剪枝方法。
[0037]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的基于深度可分离卷积模块的剪枝方法。
[0038]
本发明实施例提供的基于深度可分离卷积模块的剪枝方法,构建一致性损失函数和剪枝规则,对基于深度可分离卷积模块的mobilenet神经网络进行剪枝,进一步压缩机器人边缘端神经网络的计算量。
附图说明
[0039]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]
图1是本发明实施例提供的mobilenet神经网络的每组卷积模块的结构示意图;
[0041]
图2是本发明实施例提供的mobilenet神经网络中两组卷积模块的连接结构示意图;
[0042]
图3是本发明实施例提供的基于深度可分离卷积模块的剪枝方法的流程图;
[0043]
图4是本发明实施例提供的基于深度可分离卷积模块的剪枝系统的结构示意图;
[0044]
图5是本发明实施例提供的计算机设备的示意图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
下面结合说明书附图1

5以及具体实施方式对本发明实施例的基于深度可分离卷积模块的剪枝方法及系统进行详细说明。
[0047]
mobilenet神经网络由深度可分离卷积模块堆叠而成的,深度可分离卷积模块是mobilenet的基本组件。参见图1,每组卷积模块包括depthwise卷积块和pointwise卷积块。
[0048]
在本发明的实施例中,depthwise卷积块包括depthwise卷积层、bn层 (batchnormalization,批归一化层)和激活层。depthwise卷积是窗口kernel 大小为3*3的群卷积。若输入为(cin,h,w)的特征图
[0049]
由bn层的定义可知,
[0050]
yi=gamma_i*xi_avg beta_i
[0051]
其中,xi_avg:通道i输入的归一化处理值,gamma_i,beta_i:通道i 的批归一化参数,yi:批归一化层通道i输出。
[0052]
任意地输入输入xi,将某个通道的gamma值抑制,即gamma值趋向于无穷小,输出y就与该通道的输入无关。
[0053]
如图2所示,第一组卷积模块的输入通道数为c1,经过第一组卷积模块卷积后通道数变成c2,经过第二组卷积模块卷积后通道数变成c3,那么这两组卷积模块中的4个卷积块(第二组卷积模块中的depthwise卷积,其中, cin是通道数,h,w是输入特征图尺寸,每个通道的特征图对应一个卷积核,即将输入分成了cin个组,因此,depthwise卷积的核参数为大小(cin,3, 3),在输入经过depthwise卷积计算后,特征图尺寸不发生变化。
[0054]
在本发明的实施例中,pointwise卷积块包括pointwise卷积层、bn层和激活层。pointwise卷积为串口kernel大小为1*1的普通卷积,pointwise卷积不对特征图分组,核参数大小为(cin,cout,1,1),在输入经过pointwise 卷积计算后,特征图变为(cout,h,w),通道数发生变化。
[0055]
通道剪枝是一种针对bn层gamma值的剪枝策略。gamma值即伽马值,是对曲线的优化调整,是亮度和对比度的辅助功能,其中,gamma也叫灰度系数。
[0056]
块、pointwise卷积块和第二组卷积模块中的depthwise卷积块、pointwise 卷积块)的输出分别为(c1,h,w),(c2,h,w),(c2,h,w),(c3,h,w),其中,第二组卷积模块中的pointwise卷积块和第二组卷积模块中的pointwise 卷积块前后的通道数是保持一致。
[0057]
因此,在进行通道剪枝时,需要对来自不同组相连的卷积块设定约束策略,以保持修剪时基于深度可分离卷积模块的mobilenet神经网络的通道一致性。
[0058]
参见图2,bn层的通道数紧接的激活层的通道数相等。因此,通道剪枝在对bn层剪枝时,同时也会剪掉对应卷积层的通道。
[0059]
由深度可分离卷积模块堆叠而成的mobilenet神经网络的结构有相关性,即在对卷积通道数量剪枝时,通道数的修剪会相互影响。但尤其要注意到的是,同一组卷积模块中的depthwise卷积块和pointwise卷积块的通道数没有直接的相关性,即在同一组卷积模块中,修剪depthwise卷积块的通道数, pointwise卷积块的通道数可以根据depthwise卷积中被删除的通道索引删除掉相应的输入即可,不会影响到pointwise卷积地输出尺寸。但一组卷积模块中的depthwise卷积的通道数与上一组卷积模块的pointwise卷积的通道数直接相关,即通道数相等,在对某一组卷积模块的depthwise卷积的通道进行剪枝时,会直接剪去其上一组卷积模块的pointwise卷积对应的通道。
[0060]
图3示出了本发明实施例提供的一种剪枝方法。参见图3,基于深度可分离卷积模块的剪枝方法包括:
[0061]
s1,利用稀疏化方式训练基于深度可分离卷积模块的mobilenet神经网络。
[0062]
具体地,为方便识别出不重要的通道,对每组卷积模块中bn层的gamma 值进行l1正则化,即对gamma的绝对值施加惩罚。稀疏化损失函数:
[0063]
loss
l1
=||gamma
p
|| ||gamma
d
||
[0064]
其中,gamma
p
为上一组可分离卷积模块的gamma值,gamma
d
为本组可分离卷积模块的gamma值。
[0065]
由于一组卷积模块中的depthwise卷积的通道数与上一组卷积模块的 pointwise卷积的通道数相等,gamma
p
与gamma
d
数值上因保持一致性,即同时趋向无穷小,或者同时大于剪枝阈值。一致性损失函数loss
diff
为:
[0066][0067]
其中,p
mask
=gamma
p
>prune_thre;d
mask
=gamma
d
>prune_thre, prune_thre表示剪枝阈值,prune_thre=le

4,p
mask
表示pointwise卷积块的mask,d
mask
表示depthwise卷积块的mask。
[0068]
具体地,p
mask
表示pointwise的mask,即pointwise卷积块的mask,同理, d
mask
表示depthwise卷积块的mask。其中,mask的值为0或者1,mask的值为0时,表示该卷积块对应的通道删除,mask的值为1时,表示该卷积块对应的通道保留。
[0069]
loss_diff表示当gamma
p
与gamma
d
对应通道数值上都大于或都小于 prune_thre时,loss_diff=0不产生loss,当数值区间不一致时,对数值较大的约束惩罚。
[0070]
利用稀疏化方式训练深度可分离卷积模块的损失函数,这与网络类型(目标检测,
分类,语义分割,实力分割等)相关,本剪枝方法对不同类型网络都具备通用性。训练损失函数loss为:
[0071]
loss=loss
net
α(loss
l1
loss
diff
)
[0072]
其中,α是调节系数,loss
l1
为稀疏化损失函数,loss
diff
为一致性损失函数, loss
net
为训练任务损失函数(分类任务的交叉熵损失函数)。
[0073]
在实际训练过程中,loss
net
、loss
l1
和loss
diff
数量级存在差异性,因此引入α(alpha)来平衡不同loss之间的差异性,防止数值较小的loss退化。α值由网络类型决定,通常取0.001~0.1之间。根据计算的损失函数,以反向传播的方式回传全卷积神经网络,更新网络参数,学习完毕后保存参数。
[0074]
s2,利用剪枝规则对稀疏化训练后的网络模型进行处理,获得剪枝后的 mobilenet神经网络。
[0075]
读取s1保存后的mobilenet神经网络中bn层中的gamma值,根据卷积模块的相关性,上一组卷积模块中的gamma
p
与该组卷积模块中的gamma
d
合并剪枝,剪枝规则如下:
[0076]
mask=(gamma
p
>prune
thre
)∪(gamma
d
>prune
thre
)
[0077]
其中,prune_thre表示剪枝阈值,prune_thre=le

4。mask[i]=1表示被保留的通道,mask[i]=0表示被剪枝的通道,记录mask中所有被保留的通道索引index。对应的,所述每组卷积模块中的depthwise卷积核和pointwise 卷积核参数对应为:
[0078]
kernel
newd
=kernel
d
[index
d
,:,:,:];
[0079]
kernel
newp
=kernel
p
[index
p
,index
d
:,:,:]。
[0080]
kernel
p
表示pointwise卷积块的kernel,kernel是卷积块的参数,是一个多维矩阵。kernel
d
表示depthwise卷积块的kernel,kernel是卷积块的参数,是一个多维矩阵。
[0081]
具体地,在卷积模块中kernel参数通常是一个四维矩阵,例如输入64,输出128,窗口大小为3*3的kernel矩阵为[128,64,3,3]。indexd和indexp 表示该矩阵维度所保留的索引值,例如,indexd=1,2,3,。。。,20,则 kernel
d
[index
d
,:,:,:]表示取原始kernel的前20个矩阵块,表示保留该维度的所有的值,所以kernel
newd
的大小就变成[20,64,3,3]。
[0082]
神经网络每一层按照上述规则一一剪枝后,将新的网络结构和网络参数保存下来,完成剪枝。
[0083]
本发明实施例提供的基于深度可分离卷积模块的剪枝方法,构建一致性损失函数和剪枝规则,对基于深度可分离卷积模块的mobilenet神经网络进行剪枝,进一步压缩机器人边缘端神经网络的计算量。
[0084]
关于基于深度可分离卷积模块的剪枝系统的具体限定可以参见上文中对于基于深度可分离卷积模块的剪枝方法的限定,在此不再赘述。上述基于深度可分离卷积模块的剪枝系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0085]
图5是本发明一实施例提供的计算机设备的示意图。该计算机设备可以是服务端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程
序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储剪枝后的基于深度可分离卷积模块的 mobilenet神经网络。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于深度可分离卷积模块的剪枝方法。
[0086]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例基于深度可分离卷积模块的剪枝方法的步骤,例如图3所示的步骤s1至步骤s2。或者,处理器执行计算机程序时实现上述实施例基于深度可分离卷积模块的剪枝系统的各模块/单元的功能,例如图4所示的损失训练模块10和通道剪枝模块20的功能。为避免重复,这里不再赘述。
[0087]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0088]
在一实施例中,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例基于深度可分离卷积模块的剪枝方法的步骤,或者,该计算机程序被处理器执行时实现上述实施例基于深度可分离卷积模块的剪枝系统中各模块/单元的功能。为避免重复,这里不再赘述。
[0089]
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read

only memory,rom)、随机存取存储器 (random access memory,ram)、电载波信号和电信信号等。
[0090]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献