当前位置: 首页 > 专利查询>南京大学专利>正文

一种联合层剪枝和通道剪枝的卷积神经网络压缩方法技术

技术编号:29587327 阅读:31 留言:0更新日期:2021-08-06 19:46
本发明专利技术提出了一种联合层剪枝和通道剪枝的模型剪枝算法,该算法包括:步骤1、稀疏化训练;步骤2、分层自适应阈值查找;步骤3、根据阈值确定各层的稀疏率;步骤4、计算层重要性排序;步骤5、层剪枝;步骤6、通道剪枝;步骤7、微调。稀疏化训练使用极化正则化器对卷积神经网络模型进行训练,然后使用分层自适应的剪枝阈值查找方法确定每层的稀疏率,根据每个卷积层的通道稀疏率确定层剪枝基本单位的重要性,并据此重要性确定层剪枝的次序,最后进行层剪枝和通道剪枝得到压缩后的网络结构。该方法能够结合层剪枝和通道剪枝的优点,同时去除卷积神经网络在深度和宽度上的冗余,从而有利于大型卷积神经网络在计算资源受限的边缘设备上部署应用。

【技术实现步骤摘要】
一种联合层剪枝和通道剪枝的卷积神经网络压缩方法
本专利技术涉及一种联合层剪枝和通道剪枝的卷积神经网络压缩方法,属于计算机应用领域。
技术介绍
近年来,随着深度学习的高速发展,卷积神经网络已成为图像分类、目标检测、语义分割、深度估计等各种计算机视觉任务的主流方法。大规模的数据集、高端的现代GPU芯片和新的网络架构,使得CNN模型向更大的规模发展。从AlexNet、VGGNet和GoogleNet到ResNet,ImageNet分类挑战赛中的冠军模型由最初的8层CNN模型发展到后来的152层。然而,更大的CNN模型虽然具有更强的性能,但却更耗费计算资源。同时,训练这样的大型网络模型亦更加费时和耗电。虽然CNN被应用到不同的应用中,并在很多任务中取得了巨大的精度提升,但CNN在实际应用中的部署大多受制于三个因素:模型大小、运行时内存、浮点运算量。卷积运算在高分辨率图像上是计算密集型的。一个大型CNN在移动设备上处理一张图像可能需要几分钟,这对许多现实应用来说是无法接受的。为了将模型部署到嵌入式设备等资源受限的平台上,CNN需要更小更快。其中一个方向即是模型轻量化(模型压缩)技术。CNN在庞大的模型结构中,存在很大程度的冗余,在去掉很多模型参数后,模型的预测精度并没有受到明显影响。模型剪枝即是通过对网络中不重要的参数进行删除,可以达到压缩大小的效果。模型剪枝方法分为两大类,分别是非结构化剪枝和结构化剪枝。非结构化剪枝中的主要方法是权重剪枝。早期的CNN剪枝研究工作主要集中在卷积的权重上,因为模型参数的数量并不是那么庞大。权重剪枝将执行过程中占所需计算量很大比例的不必要的连接归零。为了CNN架构的一致性,权重只能归零而不能直接去除。因此,权重剪枝需要为每个权重提供特殊的坐标,这在现在的万亿级模型中很难实现。此外,还需要特殊的硬件来加速训练和推理的过程。目前,已经提出了许多方法来确定权重置零的标准,如迭代阈值选择和霍夫曼代码。不正确的权重置零是权重剪枝中的主要问题。结构化剪枝直接去除结构化的CNN部分,以同时压缩和加速CNN。并得到各种现成的深度学习库的良好支持。在这类方法中,滤波器剪枝最受关注。此外,为了保持CNN架构的一致性,下一层中相应的通道也要进行裁剪。因此,滤波器剪枝需和通道剪枝同时使用。一些方法从CNN中修剪被识别为信息量较少的滤波器。另一些方法则是从被识别为对输出精度影响较小的滤波器进行裁剪,从而压缩网络。滤波器剪枝和通道剪枝可以有效地去除CNN网络中的宽度冗余,从而得到一种新的架构,并且是与硬件平台无关的。因此,滤波器剪枝和通道剪枝被广泛使用。块修剪最早由Lin等人提出。与上述其他方法不同,结构化块剪枝更像是一个重新设计网络结构的过程,因为其目标是完全去除某些网络中的某些结构。为了避免破坏CNN的一致性,只能裁剪不改变输入特征图大小的块,通常是有残差连接的块。尽管有其局限性,但对于一些特殊的架构,块剪枝可以有效地消除深度冗余。
技术实现思路
本专利技术是针对卷积神经网络的压缩任务专门提出的算法,该算法联合层剪枝和通道剪枝作为剪枝方式,能够得到高压缩率的模型并提高模型的推理速度。一般来说,卷积神经网络的压缩存在如下难点和局限性:剪枝容易得到不合理的结构,从而影响模型的性能;通道剪枝对提高模型的推理速度作用有限,仅使用通道剪枝只能降低CNN的参数量和浮点计算量;层剪枝容易破坏CNN的结构一致性,改变网络的计算图,从而带来工程实现上的困难。为解决上述技术问题,本专利技术提供一种联合层剪枝和通道剪枝的卷积神经网络压缩方法,包括如下步骤:步骤1、稀疏化训练:使用带有极化正则化项的目标函数对网络进行训练;步骤2、分层自适应阈值查找:分层绘制缩放因子分布直方图,将组距的宽度设置为0.01。然后从左到右扫描直方图中的组,找到第一个局部最小组,这个组的横坐标就是要找的阈值;步骤3、根据阈值确定各层的稀疏率:根据各层的阈值,计算该层要裁剪的通道数,计算裁剪通道数与该层原通道数的比值,即为各层的稀疏率;步骤4、计算层重要性排序:计算各层剪枝单位的重要性,并按照由小到大的顺序进行排序;步骤5、层剪枝:找到重要性排序中不重要的前N层,将这些结构替换为直连,即将这些层从原网络中删去;步骤6、通道剪枝:删除网络的卷积层中对应的缩放因子小于该层剪枝阈值的通道;步骤7、微调:使用原数据集对网络进行微调以恢复精度。根据本专利技术的一个方面,所述步骤1中的稀疏化训练,使用带有极化正则化项的目标函数对网络进行训练,总的目标函数是:这里,L(.)是CNN网络自身的损失函数,R(.)是用于权重衰减的L2正则项,而Rs(.)是极化稀疏化正则项,λ是用于控制稀疏化强度的超参数。Rs(.)的定义如下:其中,γ是CNN中所有通道的缩放因子所组成的向量,γi指代不同位置的缩放因子。在含有批标准化(BatchNormalization,BN)层的CNN中,即是指BN层中的缩放参数,而无需增加新的缩放因子。超参数t控制L1正则化项|γi|相对于的权重。a是缩放因子的上界。根据本专利技术的一个方面,所述步骤2中的分层自适应阈值查找,通过分层绘制缩放因子分布直方图,将直方图的组距的宽度设置为0.01,然后从左到右扫描直方图中的组,找到第一个局部最小组,这个组的横坐标就是要找的阈值。根据本专利技术的一个方面,所述步骤3中的根据阈值确定各层的稀疏率,根据各层的阈值,计算该层要裁剪的通道数,计算裁剪通道数与该层原通道数的比值,即为各层的稀疏率,其计算方式如下:其中,l代表该卷积层,cl代表该卷积层输出特征图的通道数,γi代表某个通道所对应的缩放因子,δl是前述层自适应阈值查找方法中所确定的该层的剪枝阈值,是指示函数。根据本专利技术的一个方面,所述步骤4中的计算层重要性排序,通过计算各层剪枝单位的重要性,并按照由小到大的顺序进行排序。层剪枝单位定义为删除CNN中层结构的最小单位,通常是网络中的残差结构,每个层剪枝单位的重要性的计算方式如下:其中,l代表某一层剪枝单位,Sparsityi[l]代表该单位中某一卷积层的稀疏率,t是含有卷积层的数量。根据本专利技术的一个方面,所述步骤5中的层剪枝,通过找到重要性排序中不重要的前N层,将这些结构替换为直连,即将这些层从原网络中删去。根据本专利技术的一个方面,所述步骤6中的通道剪枝,通过删除网络的卷积层中对应的缩放因子小于该层剪枝阈值的通道。根据本专利技术的一个方面,所述步骤7中的微调,使用原数据集对网络进行微调以恢复精度。有益效果:在卷积神经网络的剪枝方法中,通道剪枝能大幅降低模型的参数量和计算量,而层剪枝方法能更好地提高模型的推理速度。本专利技术提出了联合通道剪枝和层剪枝的卷积神经网络压缩算法,该算法结合了层剪枝和通道剪枝的优点,能够高效、快速地得到高压缩率的模型,同时提高模型的推理速度,具有较高的实用价值。附图说明图1是本专利技术方法流程图。图2是本发本文档来自技高网
...

【技术保护点】
1.联合层剪枝和通道剪枝的卷积神经网络压缩方法,包括如下步骤:/n步骤1、稀疏化训练:使用带有极化正则化项的目标函数对网络进行训练;/n步骤2、分层自适应阈值查找:分层绘制缩放因子分布直方图,将组距的宽度设置为0.01。然后从左到右扫描直方图中的组,找到第一个局部最小组,这个组的横坐标就是要找的阈值;/n步骤3、根据阈值确定各层的稀疏率:根据各层的阈值,计算该层要裁剪的通道数,计算裁剪通道数与该层原通道数的比值,即为各层的稀疏率;/n步骤4、计算层重要性排序:计算各层剪枝单位的重要性,并按照由小到大的顺序进行排序;/n步骤5、层剪枝:找到重要性排序中不重要的前N层,将这些结构替换为直连,即将这些层从原网络中删去;/n步骤6、通道剪枝:删除网络的卷积层中对应的缩放因子小于该层剪枝阈值的通道;/n步骤7、微调:使用原数据集对网络进行微调以恢复精度。/n

【技术特征摘要】
1.联合层剪枝和通道剪枝的卷积神经网络压缩方法,包括如下步骤:
步骤1、稀疏化训练:使用带有极化正则化项的目标函数对网络进行训练;
步骤2、分层自适应阈值查找:分层绘制缩放因子分布直方图,将组距的宽度设置为0.01。然后从左到右扫描直方图中的组,找到第一个局部最小组,这个组的横坐标就是要找的阈值;
步骤3、根据阈值确定各层的稀疏率:根据各层的阈值,计算该层要裁剪的通道数,计算裁剪通道数与该层原通道数的比值,即为各层的稀疏率;
步骤4、计算层重要性排序:计算各层剪枝单位的重要性,并按照由小到大的顺序进行排序;
步骤5、层剪枝:找到重要性排序中不重要的前N层,将这些结构替换为直连,即将这些层从原网络中删去;
步骤6、通道剪枝:删除网络的卷积层中对应的缩放因子小于该层剪枝阈值的通道;
步骤7、微调:使用原数据集对网络进行微调以恢复精度。


2.根据权利要求1所述的联合层剪枝和通道剪枝的卷积神经网络压缩方法,其特征在于,所述步骤1中的稀疏化训练过程中,总的目标函数中引入了极化正则项函数,具体总的目标是:



这里,L(.)是CNN网络自身的损失函数,R(.)是用于权重衰减的L2正则项,而Rs(.)是极化稀疏化正则项,λ是用于控制稀疏化强度的超参数。Rs(.)的定义如下:


...

【专利技术属性】
技术研发人员:霍静黄中豪李文斌高阳
申请(专利权)人:南京大学江苏万维艾斯网络智能产业创新中心有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1