一种基于相似性剪枝和高效模块的轻量化图像分类方法

文档序号:30582434发布日期:2022-06-29 13:08阅读:177来源:国知局
一种基于相似性剪枝和高效模块的轻量化图像分类方法

1.本发明属于图像分类领域,具体涉及图像分类网络轻量化方法。


背景技术:

2.近年来,深度神经网络成为人工智能领域的研究热点,且被广泛应用在计算机视觉、自然语言处理等许多不同的领域,并在图像分类等很多实际任务上都取得了巨大的性能提升。这些成功都依赖于深度神经网络成千上万的参数,以及具有强大性能的计算设备。然而,深度神经网络模型复杂、计算量巨大的特点阻碍了它们在内存资源低的设备或对延迟要求严格的应用中的部署,由于很多实际应用场景中并不具备很高的计算能力和存储条件,并且对实时性有硬性需求,例如移动终端和自动驾驶环境,这使得深度神经网络很难实际部署到这些低存储、低功耗的小型设备上。因而轻量化的深度神经网络设计及模型压缩具有重大的理论研究意义和实际应用价值。


技术实现要素:

3.本发明要解决的问题是,针对已有的图像分类方法中分类网络由于内存和计算能力限制无法部署到边缘移动设备问题。
4.本发明提供了一种基于相似性剪枝和高效模块的轻量化图像分类方法,包括下列步骤:
5.步骤1:训练一个原始图像分类卷积神经网络;
6.步骤2:计算该图像分类卷积神经网络中所有卷积层输出特征图的平均秩,并基于平均秩计算每个卷积层内卷积核间的信息相似度is;
7.步骤3:计算图像分类卷积神经网络中所有卷积层中卷积核间的余弦相似度cs;
8.步骤4:将信息相似度is和余弦相似度cs进行加权,计算卷积神经网络中每个卷积层内卷积核间的相似度s;然后计算各个卷积核的冗余指数redu,冗余指数redu表示该卷积核与层内其余所有卷积核的像是度;
9.步骤5:对图像分类卷积神经网络进行剪枝;
10.步骤5.1:根据设定的网络每层的剪枝率计算每层需要移除的卷积核个数m;
11.步骤5.2:将图像分类卷积神经网络对应卷积层中冗余指数最大的m个卷积核移除;移除本层的卷积核的同时将其对应的特征图移除,还要将下一层对应的通道维度移除;
12.步骤6:采用步骤1相同的方法对步骤5得到的剪枝后的网络进行训练,直到收敛;
13.步骤7:使用高效卷积模块对步骤6得到的神经网络中的卷积核进行替换;步骤6中得到网络:输入为w*h*c
in
的输入特征图,使用c
out
个k*k*c
in
的卷积核,最终生成c
out
个输出特征图;其中,w、h、c
in
分别表示输入特征图的宽、高、通道数,k为卷积核尺寸,c
out
我输出特征图的通道数;替换为:首先使用c
in
个k*k*1的卷积核做深度卷积,结合c
out
/2个1*1*c
in
的卷积核做点卷积得到个特征图,再使用个k*k*1的卷积核对得到的个特征图做深
度卷积得到另外个特征图,最后组合为c
out
个输出特征图;
14.步骤8:对步骤7得到的卷积神经网络重新进行训练,直到收敛;
15.步骤9:采用步骤8得到的神经网络对图像进行识别。
16.进一步地,所述步骤1具体方法为:
17.步骤1.1:获取图像数据,图像数据中包含所有待识别的目标,计算图像平均尺寸,对大于平均尺寸的图像采用下采样的方式,小的图像采用双线性插值的方式实现图像的归一化;在图像归一化的过程中,保持原有图像的长宽比,不足的部分使用0像素填充;
18.步骤1.2:根据图像中的目标对图像添加对应的标签,将添加标签的图像分为训练数据和测试数据;
19.步骤1.3:根据图像分类任务需要,建立原始图像分类卷积神经网络,并采用训练数据和测试数据对图像分类卷积神经网络进行训练,直到达到设定的准确率。
20.进一步地,所述步骤2包含如下过程:
21.步骤2.1:从数据集中随机采样n张图片作为样本集,将样本集送入训练好的卷积神经网络,每个卷积核生成n张特征图,计算每个卷积核对应特征图的平均秩:
[0022][0023]
其中表示将二维特征图视为二维矩阵,对其求矩阵的秩;
[0024]
步骤2.2:第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的信息相似度为:
[0025][0026]
进一步地,所述步骤3包含如下过程:
[0027]
第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的余弦相似度为:
[0028][0029]
其中,resize(
·
)表示将卷积核展开成一维向量,||x||表示x的l2范数,表示和的内积。
[0030]
进一步的,所述步骤4的具体方法为:
[0031]
步骤4.1:第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的相似度系数为:
[0032][0033]
其中λ用来调整余弦相似度和信息相似度的权重。
[0034]
步骤4.2:冗余指数衡量与第i层所有其他卷积核的相似程度:
[0035][0036]
本发明的有益效果是,采用基于相似度的剪枝方式,优先移除图像分类卷积神经网络同一个卷积层中相同的或者相似的神经元,这种剪枝方式,相比现有剪枝方法优先去除神经网络中不重要的神经元对模型性能损伤更小;此外,该方法可以基于实际需要部署的设备的性能(如内存和计算能力)设置剪枝后模型的大小和计算量,从而得到特定资源限制下最优的网络模型参数;使用高效卷积模块替换标准卷积核,进一步降低图像分类卷积神经网络的参数量以及计算量。
附图说明
[0037]
图1为本发明方法框架示意图;
[0038]
图2为普通卷积与本发明高效模块的对比;
[0039]
图3为本发明在使用cifar-10数据集对vgg16模型上的剪枝结果与其它方法的比较。top-acc表示模型精度,para.表示模型的参数量,单位为mb,括号内cr表示参数压缩率,flops表示模型推理的乘加次数,单位为m,括号内sr表示推理加速比;
[0040]
图4为cifar-10上vgg16模型loss收敛曲线
[0041]
图5为vgg16模型13个卷积层三种不同情况的各层剪枝率;
[0042]
图6为本发明具体实施方式中vgg16网络结构。
具体实施方式
[0043]
下面结合本发明实施例的附图,对本发明的方法的具体实施方式进一步阐述,需要说明的是,下面的实验及相关结果仅用于说明本发明,而不限制本发明的范围。
[0044]
本发明实施例在titan x服务器上进行实现,采用pytorch深度学习框架,在cifar-10数据集上对vgg-16模型进行轻量化,轻量化流程图如图1所示,本发明实施例方法具体包含以下步骤:
[0045]
步骤1,在cifar-10训练集上对vgg-16模型训练200个epoch至模型收敛,vgg-16模型的loss收敛曲线如图4所示;从数据集中随机采样n(n=500)张图片作为样本集,将样本集送入训练好的卷积神经网络,每个卷积核生成n张特征图,计算每个卷积核对应特征图的平均秩:
[0046][0047]
i∈[1,13],vgg16只有13个卷积层,计算第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的信息相似度为:
[0048][0049]
步骤2,计算第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的余
弦相似度为:
[0050][0051]
步骤3,第i层卷积神经网络的第j个卷积核和第j+1个卷积核之间的相似度系数为:
[0052][0053]
其中取λ=0.5,该参数的取值通过超参数实验得到。
[0054]
计算卷积核的冗余指数衡量其与第i层所有其他卷积核的相似程度:
[0055][0056]
对第i层的ni个卷积核按冗余指数进行降序排序;
[0057]
步骤4,从第一个卷积层开始,直到最后一个卷积层:
[0058]
根据设定的网络每层的剪枝率pr计算需要移除的卷积核个数m,本实施例共实验了三组剪枝率参数对vgg16进行剪枝,对应的轻量化版本分别记为v1、v2、v3,各层的剪枝率具体设置如图5所示。
[0059]
将原始网络模型第i个卷积层中冗余指数最大的m个卷积核移除,移除操作具体为:剪去本层的卷积核,并将其对应的特征图剪去,同时将下一层所有的卷积核相应的通道维度去掉。
[0060]
步骤5,在数据集上对步骤4得到的剪枝后的网络模型微调40个epoch至收敛,以恢复模型的性能损失。步骤1-5即相似性剪枝算法,算法流程如图2所示。
[0061]
步骤6,将一个参数为c
in
*k*k*c
out
的标准卷积层,即其里面的c
out
个k*k*c
out
标准卷积核,使用c
in
个k*k*1的深度卷积核个1*1*c
in
点卷积核个k*k*1的深度卷积核替代实现。需要注意的是,前面的深度卷积和点卷积后需要接激活函数,但后面个k*k*1的卷积核目的是为了执行线性变换,因此后面不接激活函数。普通卷积与高效卷积模块的对比如图2所示。
[0062]
步骤7,对步骤6得到的卷积神经网络重新进行训练40个epoch,至网络模型达到收敛,得到轻量化后模型
[0063]
为了验证本发明的有效性,我们将本实施例的结果与其他的剪枝方法在cifar-10数据集上对vgg16的剪枝结果进行了对比,方法包括使用l1范数剪枝的l1算法,使用卷积核特征图平均秩剪枝的hrank算法,使用卷积核几何中心剪枝的fpgm算法,算法-vx表示该算法使用不同剪枝率得到的结果。相比于同样是基于神经网络参数冗余的剪枝方法fpgm,本发明-v1在剪枝后网络精度和其同样超过baseline方法的情况下,比其减少了更多的计算量和参数量,本发明-v1剪枝后的网络的计算量降至为原始模型的18.6%,而fpgm则为原来的66.1%,尽管其性能相比baseline提高了更多。相比于基于重要性剪枝的方法hrank的v1
和v2版本,本发明方法的v1和v3版本剪枝后的模型总能在参数量不超过其相应版本模型的情况下,取得更高的模型精度,特别是在同样进行较大剪枝率的情况下,本发明方法v3生成的剪枝模型使用仅baseline模型1/3的参数量、1/8计算量的情况下,精度仍没有产生大的损失(只下降了0.4%)。最后相比于l1范数剪枝方法,本发明方法v2在精度更高其剪枝后模型的情况下,参数量和计算量相比其少了一倍。
[0064]
本发明探索了一种基于相似性剪枝和高效模块的模型轻量化算法,采用基于相似度的剪枝方式,优先移除卷积神经网络同一个卷积层中相同的或者相似的神经元,这种剪枝方式,相比现有剪枝方法优先去除神经网络中不重要的神经元对模型性能损伤更小;通过设计的高效模块替换普通标准卷积,实现深层次的网络参数共享(深度卷积层的参数)和特征复用(点卷积得到的特征),从而进一步压缩网络大小,并加速网络推理速度。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1