一种基于卷积层特征空间相似度的YOLO-Fastest-xl网络卷积层剪枝方法与流程
未命名
07-14
阅读:93
评论:0
一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法
技术领域
1.本发明属于计算机领域,特别涉及一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法。
背景技术:
2.深层卷积神经网络(cnn)依赖的计算和存储资源严重制约了其在有限资源的嵌入式平台上的部署,为提高算法的运行效率,剪枝作为模型压缩应用最为广泛的方法之一,通过剪除网络中冗余的卷积核以减少网络的宽度或深度,减少了网络的参数量和计算量,加速网络前向推理。卷积核剪枝虽然能够得到更窄的网络结构,加速推理速度,但是如果网络层数较深,卷积层间的数据i/o依然会耗费大量的时间。针对yolo-fastest-xl网络相邻卷积层的相似度难以度量这一问题,本发明设计基于特征空间相似度的层剪枝方法。由于特征图间的差异很大程度上取决于空间边缘特征差异,通过计算相邻层特征图集合间的边缘特征的最小差值,差值越小说明相邻层间相似度越高,特征提取能力越相似,在层剪枝时可以只保留两者间的一个,剪除多余的卷积层可以加速网络推理,有利于网络部署。
技术实现要素:
3.本发明提出了一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,解决了卷积层相似度难以衡量的问题,可以根据层间相似度剪除冗余卷积层。该方法从剪枝较粗的粒度出发,通过剪除残差模块中相邻卷积层中的一个,可以减少网络参数量和计算量,加速网络前向推理速度,在嵌入式平台上更容易部署网络模型。
4.为了达到上述目的,本发明采用的技术方案为:
5.一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,具体步骤如下:
6.步骤一:稀疏训练网络至收敛,将网络中的残差模块按照l1范数、梯度和激活值以投票方式将各个卷积层的卷积核进行重要性排序,然后按照通道数与分组卷积的groups数的约束关系确定剪枝需要保留的卷积核个数,按照重要性从低到高剪除第一层和第二层多余的卷积核;
7.步骤二:将网络重新训练至收敛,将多张测试集中的图像作为输入,保存每一个层每一个卷积核的特征图,并使用canny算子得到每张特征图的边缘特征信息;
8.步骤三:以循环方式计算每层每张特征图与下一层特征图之间的距离,将最小距离作为卷积核间的相似度,将每层所有卷积核相似度相加得到相邻两个卷积层间的相似度;
9.步骤四:根据相似度计算结果,将所有卷积层的相似度排序,然后选择比例,按照相似度从高到低确定等待剪除的相邻卷积层;
10.步骤五:修改需要剪除卷积层的残差模块中的分组卷积的groups参数,使得与输
出通道数一致,将网络重新训练,然后剪除待剪除的相邻卷积层的其中一个,之后微调模型至重新收敛。
11.其中,步骤一中确定剪枝需要保留的卷积核个数计算方式为:
[0012][0013]
n1'=n2'=κ
×
n3[0014]
式中,n2和n3为第2层和第3层的卷积核的个数,n1′
和n2′
为剪除多余卷积核后第2层和第3层的卷积核个数。
[0015]
其中,步骤三中每张特征图与下一层特征图之间距离的计算方式为:
[0016][0017]
n=max(sum(edge1),sum(edge2))
[0018][0019]
式中,edge1和edge2为两张特征图的边缘特征信息,w、h分别为特征图的宽和高,dist为两张特征图之间的距离。
[0020]
本发明与现有技术相比的优点在于:
[0021]
(1)本发明可以得到参数量和计算量更少的网络模型,加快检测速度,使得网络能够部署在资源有限的嵌入式平台。
[0022]
(2)本发明从更粗的卷积层的粒度出发,相比卷积核剪枝,在深度上简化网络模型,能够更有效地加速检测速度。
[0023]
(3)本发明能够充分释放每个卷积层的性能,减少网络的参数量和计算量,同时减少网络数据i/o的时间消耗,减少检测时间,有利于在资源有限的嵌入式设备上的部署。
附图说明
[0024]
图1为本发明的剪枝流程图。
[0025]
图2为本发明的特征图与边缘信息差值图。
[0026]
图3为本发明的残差模块剪枝过渡图。
具体实施方式
[0027]
为了更好的理解本发明的剪枝方案,以下结合附图做进一步的详细描述。
[0028]
本发明一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,具体步骤如下:
[0029]
步骤一:稀疏训练网络至收敛,将网络中的残差模块按照l1范数、梯度和激活值以投票方式将各个卷积层的卷积核进行重要性排序,然后按照通道数与分组卷积的groups数的约束关系确定剪枝需要保留的卷积核个数,按照重要性从低到高剪除第一层和第二层多余的卷积核;
[0030]
根据通道数与groups参数间的约数关系,可以按照以下方式确定剪枝需要保留的卷积核个数:
[0031][0032]
n1'=n2'=κ
×
n3[0033]
式中,n2和n3为第2层和第3层的卷积核的个数,n1′
和n2′
为剪除多余卷积核后第2层和第3层的卷积核个数。
[0034]
步骤二:将网络重新训练至收敛,将100张测试集中的图像作为输入,保存每一个层每一个卷积核的特征图,并使用canny算子得到每张特征图的边缘特征信息;
[0035]
选择速度较快的canny算子提取特征图的边缘特征,对于特征图feature_map的边缘特征edge为:edge=canny(feature_map)。
[0036]
步骤三:以循环方式计算每层每张特征图与下一层特征图之间的距离,将最小距离作为卷积核间的相似度,将每层所有卷积核相似度相加得到相邻两个卷积层间的相似度;
[0037]
对于任意两个特征图计算方式如下:
[0038][0039]
n=max(sum(edge1),sum(edge2))
[0040][0041]
式中,edge1和edge2为两张特征图的边缘特征信息,w、h分别为特征图的宽和高,dist为两张特征图之间的距离。
[0042]
相似距离由特征图边缘特征间的差异像素点数占最大边缘特征像素点数的比值定义,越小说明越相似。相邻卷积层间的相似度取特征图相似距离之间的最小值的总和来描述,假设相似距离由cal_dist()函数计算:
[0043]
feature_map
i-1
={feature_map0,feature_map1,...,feature_mapn}
[0044]
feature_mapi={feature_map0,feature_map1,...,feature_mapm}
[0045]
distk=min(cal_dist(feature_mapk,feature_map
i-1
))
[0046][0047]
feature_mapi和feature_map
i-1
分别表示第i和第i-1个卷积层的特征图集合,feature_mapn表示第i-1层第n个卷积核生成的特征图,feature_mapm表示第i层第m个卷积核生成的特征图,feature_mapk表示第i层第k个卷积核生成的特征图,distk表示第i层第k个卷积核生成的特征图与第i-1个卷积层特征图间的相似度,dist
i,i-1
表示两个卷积层间的相似度。
[0048]
深度学习的卷积核对特征的提取作用在局部范围,与传统图像处理中的滤波器在原理上是一致的。为了更好的区分物体,使用滤波器对图像处理时往往会更关注边缘特征,通过计算图像的垂直与水平梯度提取边缘信息,得到的信息更为精炼。深度学习的卷积层的作用也是提取图像特征,在对二维特征图卷积时,与滤波器的计算方式相同。因此,卷积层的卷积操作关注的应是图像的灰度变化的梯度,也就是边缘特征,如果两层间的特征图的边缘信息差很小,它们对于后面的卷积层而言是可以相互替代的,特征图与边缘信息差值如图2所示。
[0049]
步骤四:根据相似度计算结果,将所有卷积层的相似度排序,然后选择比例,按照相似度从高到低确定等待剪除的相邻卷积层;
[0050]
网络的3层间的前向传播公式表示如下:
[0051][0052][0053][0054]
当l+1层与l+2层的输出特征图的空间相似度很高时:
[0055]
x
l+1
≈x
l+2
[0056]
l+1层的输出经过l+3层卷积后提取的特征信息相似,可以代替l+2层的输出,卷积核与其余参数可以经过训练更新,下标new表示区别于原来参数的新参数,输出对后面层的特征提取不会产生太大影响。
[0057][0058][0059]
此外,l+1层与l+2层的输出特征图的空间相似度很高,也说明两层中有一层的卷积核是冗余的,l+1层的输入经过两次卷积后产生的特征图边缘特征相似度极高,相当于是一个线性变换过程,可以用一次卷积代替,所以两个卷积层也可以用l+2层替代(即通过l+2层的参数和l+1层的输入得到l+2层的结果):
[0060][0061]
公式中,x
l
、x
l+1
、x
l+2
和x
l+3
分别是前向传播时第l层、l+1层、l+2层和l+3层的计算结果,γ
l
、γ
l+1
和γ
l+2
分别是第l+1、l+2和l+3层的缩放因子系数,w
l
、w
l+1
和w
l+2
分别是第l+1、l+2和l+3层的卷积核权值矩阵,β
l
、β
l+1
和β
l+2
分别是第l+1、l+2和l+3层的偏移量,和分别是第l+1、l+2和l+3层新的缩放因子系数,和分别是第l+1、l+2和l+3层新的偏移量,分别是第l+1、l+2和l+3层批归一化处理,是l+2层新的批归一化处理,其下标是l+2层新的bn的均值、方差和极小的非零值,和分别是第l+1、l+2和l+3层新的卷积核权值矩阵。
[0062]
步骤五:修改需要剪除卷积层的残差模块中的分组卷积的groups参数,使其与输出通道数一致,将网络重新训练,然后剪除待剪除的相邻卷积层的其中一个之后微调模型至重新收敛。
[0063]
剪除残差结构中的第三个卷积层时,由于残差输出的通道数少,所以需要改变第二个卷积层的分组卷积,原理如图3所示。
[0064]
总体上,本发明所述的一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法能够剪除网络残差模块中相似度较高的相邻层的一个,进而减少了参数量
与计算量,还减少了层间数据的i/o时间,加快了检测速度,有利于检测网络在资源有限的嵌入式设备上的部署。本发明未详细阐述的技术和原理属于本发明领域人员所公知的技术。
技术特征:
1.一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,其特征在于,具体步骤如下:步骤一:稀疏训练网络至收敛,将网络中的残差模块按照l1范数、梯度和激活值以投票方式将各个卷积层的卷积核进行重要性排序,然后按照通道数与分组卷积的groups数的约束关系确定剪枝需要保留的卷积核个数,按照重要性从低到高剪除第一层和第二层多余的卷积核;步骤二:将网络重新训练至收敛,将多张测试集中的图像作为输入,保存每一个层每一个卷积核的特征图,并使用canny算子得到每张特征图的边缘特征信息;步骤三:以循环方式计算每层每张特征图与下一层特征图之间的距离,将最小距离作为卷积核间的相似度,将每层所有卷积核相似度相加得到相邻两个卷积层间的相似度;步骤四:根据相似度计算结果,将所有卷积层的相似度排序,然后选择比例,按照相似度从高到低确定等待剪除的相邻卷积层;步骤五:修改需要剪除卷积层的残差模块中的分组卷积的groups参数,使得与输出通道数一致,将网络重新训练,然后剪除待剪除的相邻卷积层的其中一个,之后微调模型至重新收敛。2.根据权利要求1所述的一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,其特征在于,步骤一中确定剪枝需要保留的卷积核个数计算方式为:n1'=n2'=κ
×
n3式中,n2和n3为第2层和第3层的卷积核的个数,n1′
和n2′
为剪除多余卷积核后第2层和第3层的卷积核个数。3.根据权利要求1所述的一种基于卷积层特征空间相似度的yolo-fastest-xl网络卷积层剪枝方法,其特征在于,步骤三中每张特征图与下一层特征图之间距离的计算方式为:n=max(sum(edge1),sum(edge2))式中,edge1和edge2为两张特征图的边缘特征信息,w、h分别为特征图的宽和高,dist为两张特征图之间的距离。
技术总结
本发明属于计算机领域,公开了一种基于卷积层特征空间相似度的YOLO-Fastest-xl网络卷积层剪枝方法,通过剪除相似度较高的卷积层可以得到更浅的神经网络,减少网络的推理计算量,提高在资源有限嵌入式平台上的检测速度。对YOLO-Fastest-xl网络残差模块进行规整剪枝以保证分组卷积通道一致原则下的参数维度一致,将卷积层间的边缘特征相似度近似层间相似度,通过canny算子提取残差模块的第二、三卷积层的特征图边缘特征,然后计算相邻层特征图集合间的空间边缘相似度,将相似度高的相邻层剪除其中一层,剪除卷积层后不但减少了参数量与计算量,还减少了层间数据的I/O时间,加快了检测速度。测速度。测速度。
技术研发人员:张江永 宗茂 周策 张一凡
受保护的技术使用者:中国电子科技集团公司第五十四研究所
技术研发日:2023.03.17
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
