一种基于模型微调的卷积神经网络通道剪枝方法与流程

文档序号:22917055发布日期:2020-11-13 15:59阅读:209来源:国知局
一种基于模型微调的卷积神经网络通道剪枝方法与流程

本发明涉及深度学习卷积神经网络剪枝技术领域,具体涉及一种基于模型微调的通道剪枝方法。



背景技术:

卷积神经网络通道剪枝技术是一种降低网络模型时间、空间复杂度的技术。这种方法通过调整训练好的模型结构,去除冗余通道,来达到提高模型推理速度并降低模型尺寸的目的。通道剪枝技术的重点是如何挑选待剪通道,使得剪枝后模型性能不产生大幅度下降。目前较为常用的方法是zhuangliu等人在2017年提出的networksliming方法,这一方法通过对网络进行稀疏训练、全局剪枝和微调剪枝模型,可以实现在分类模型准确率基本不变的前提下降低模型尺寸。

原始networksliming方法需要随机初始化网络参数,并对批归一化层中的γ参数进行l1正则化,目的是为了使模型收敛后所有γ参数的分布较为稀疏。这种方法就导致训练模型时,不能用大型数据集上训练好的预训练模型初始化网络参数,因为训练好的模型较深层的参数通常较小,会出现某个卷积层所有通道都被剪掉的情况。而在工程应用中,所用的数据集规模通常较小,若不能使用预训练模型,将会大幅度降低模型的效果。因此,如何使用预训练模型进行模型微调,并对微调后的模型进行通道剪枝,具有重要的研究价值。



技术实现要素:

本发明的目的在于提供一种基于模型微调的卷积神经网络通道剪枝方法,用于解决上述现有技术中的缺陷。

本发明一种基于模型微调的卷积神经网络通道剪枝方法,其中,包括:构造卷积神经网络分类模型,该模型由特征提取器和分类器两部分构成,特征提取器包括卷积层以及池化层,在imagenet图像分类数据集上进行训练,得到预训练模型c;修改所述预训练模型c的分类器,将分类器全连接层输出的类别数设置为目标类别,并在目标数据集上进行稀疏性训练,得到收敛后的模型c′;将所述稀疏训练后的模型c′根据通道剪枝策略进行剪枝,得到剪枝后的模型c″;将所述剪枝后的模型c″在目标数据集上进行微调,以提高剪枝后模型的性能。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,所述将预训练模型c进行稀疏性训练得到收敛后模型c′的过程,包括:根据目标数据集类别数,构建全连接层作为新的分类器,替换所述模型c中的分类器,并随机初始化该分类器中的参数;冻结所述模型c中所有可学习参数,只对新创建的分类器参数进行更新,训练模型;将所述模型c所有参数设置为可学习状态继续训练。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,卷积层之后使用批归一化层对特征图进行归一化,使用relu6作为激活函数。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,所述将所述稀疏训练后的模型c′根据通道剪枝策略进行剪枝,包括:基于稀疏训练后模型c′中批归一化层的γ参数进行全局排序,按照设置的剪枝率p确定待剪枝通道,所述批归一化层表达式为:

其中,x表示输出到批归一化层的特征图,y表示归一化之后的特征图,μb、是一批数据的均值和方差,ε是为了计算数值稳定性加入的一个较小的数,γ和β为批归一化层中可学习的缩放和平移参数。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,还包括:根据通道保留率k对待剪枝通道进行后处理,强制每层保留一定比例的通道数。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,所述卷积神经网络分类模型由若干个级联的分数步长卷积层构成,且利用跨步卷积来进行降采样,激活函数为relu6,最后一层使用全连接层作为分类器,网络除最后一层外的每一层均使用批归一化技术进行特征图的归一化。

根据本发明的基于模型微调的卷积神经网络通道剪枝方法的一实施例,其中,使用全连接层作为模型的分类器。

本发明一种基于模型微调的卷积神经网络通道剪枝系统,其中,包括:第一微调训练单元,用于获取预训练模型c以及在目标数据集上微调后的模型c′;模型剪枝单元,用于根据剪枝率和通道保留率,从所述模型c′的所有通道中选取待剪通道;所述模型剪枝单元还用于根据选取的待剪通道,将所述模型c进行剪枝,得到所述模型c″;模型重建单元,用于创建与所述模型c″结构相同的模型,并将剪枝后模型参数赋值给新创建模型;第二微调训练单元,用于在目标数据集上微调剪枝后的模型。

本发明提供一种基于模型微调的卷积神经网络通道剪枝方法及系统,通过对批归一化层缩放参数进行全局排序,并限制每个待剪枝网络层通道保留率,来选取网络中待剪通道。并在军事目标识别数据集上训练不同剪枝率、不同通道保留率的网络模型,和基线模型的分类准确率以及模型参数量进行对比,展示了模型性能的提升和模型训练过程的稳定性。

附图说明

图1是本发明提供的一种基于模型微调的卷积神经网络通道剪枝方法流程图;

图2是本发明方法中对预训练模型进行微调的流程图;

图3是本发明方法中对模型进行通道剪枝的流程图;

图4是本发明方法在军事目标识别数据集中的测试结果图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1是本发明提供的一种基于模型微调的卷积神经网络通道剪枝方法流程图,如图1所示,一种基于模型微调的卷积神经网络通道剪枝方法,包括:

步骤1:构造卷积神经网络分类模型,并在imagenet图像分类数据集上训练所述模型c;

步骤2:修改所述模型c,将其类别数设置为目标类别,并在目标数据集上进行稀疏性训练,得到收敛后的模型c′;

步骤3:将所述稀疏训练后的模型c′根据通道剪枝策略进行剪枝,得到剪枝后的模型c″;

步骤4:将所述剪枝后的模型c″在目标数据集上进行微调,以提高剪枝后模型的性能。

在实际应用中,卷积神经网络通道剪枝方法包括下列:

s1、构造并训练卷积神经网络模型;

s2、确定训练好的神经网络中所有待剪通道;

s3、根据确定好的待剪通道对模型进行剪枝;

s4、微调剪枝后的模型,并对其进行测试。

进一步地,所述的步骤s1中构造并训练卷积神经网络模型,如图2所示,具体过程如下:

s11、在imagenet图像分类数据集上训练卷积神经网络模型c,模型c由特征提取器c.f和分类器c.cls两部分构成;

其中,imagenet图像分类数据集是用于自然图像分类的大型数据集,包含1000个类别,每个类别的训练图片1300张。

s12、根据军事目标书别数据集的类别数,使用全连接层构造分类器c′.cls,替换掉模型c中的分类器c.cls;

其中,军事目标识别数据集包含9类自然图像,每个类别1850张训练图片,150张测试图片。

s13、在军事目标识别数据集上训练替换分类器之后的模型c,得到收敛后的模型c′。

进一步地,所述的步骤s2中确定训练好的神经网络中所有待剪通道,如图3所示,具体过程如下:

s21、对所述模型c′中所有批归一化层缩放参数γ=[γ1,γ2,...,γn]进行全局从大到小排序,γ向量中每个数值分别对应卷积层中的一个通道,数值越大则该通道对模型输出贡献越大;

s22、根据剪枝率p对排序后的缩放参数γ进行过滤,使用与γ维度相同的mask向量作为通道掩码,掩码中保留的通道对应位置置为1,被过滤的通道对应位置置为0,,优先剪掉缩放参数较小的通道;

s23、根据通道保留率k对mask进行后处理,保证每个卷积层剩余的通道数比例必须大于等于k,实验中,k取0.25时通常会取得较好的效果。

进一步地,所述步骤s3中根据确定好的待剪通道对模型进行剪枝,剪枝过程中要对卷积层和批归一化层进行处理。所述方法和系统在pytorch深度学习框架中实现,卷积层的参数为(n,c,h,w)的形式,其中n为卷积核数量,c为输入特征图通道数,h、w代表卷积核的高和宽。在对卷积层进行处理时,卷积层之前的批归一化层决定了第二个维度c如何剪枝,卷积层之后的批归一化层决定了第一个维度n如何剪枝。而对批归一化层进行处理时,只需根据当前层的掩码进行剪枝即可。

进一步地,所述步骤s4中微调剪枝后的模型,并对其进行测试,在军事目标识别数据集上对剪枝后的模型进行微调训练和测试。整个网络的训练批输入数量设置为128,训练过程采用adam(adaptivemomentestimation)优化器,对于从头开始训练的模型,初始学习率设置为0.001,对于微调训练的模型,初始学习率设置为0.0003,每经过40轮迭代,将学习率衰减为原来的1/10。整个实验在pytorch深度学习框架下进行,实验环境为ubuntu18.04操作系统,利用nvidia公司11gb显存的rtx2080tigpu进行网络的训练并利用cuda进行训练的加速。

使用原始的networksliming方法和所提出的方法分别进行了剪枝率为10%、20%和30%的通道剪枝。由于所提出方法使用预训练模型进行网络训练,模型收敛速度明显快于随机初始化参数并训练,只需较少的迭代次数即可收敛。因此使用这两种方法训练模型时,并没有按照相同的学习率、迭代次数进行训练,而是根据不同模型的训练情况适当调整训练策略。图4从模型参数量和分类准确率两方面展示了所提出方法的效果,从图4中可以得出如下结论:

1.当数据集规模较小时,使用预训练模型可以明显提升模型效果。在其他条件不变的情况下,从头训练的准确率只有87.48%,而使用预训练模型的准确率可以达到94%。

2.无论是原始方法还是所提方法,进行剪枝后模型准确率都有下降,大约下降1%~2%。但是所提出方法在模型参数量略多于原始方法的情况下,准确率明显优于原始方法。当剪枝率为10%的情况下,所提出方法的参数量少于原始方法,这是由于所提出方法剪去的通道所在的卷积层位于整个网络中较深层的位置,网络从前端到后端卷积层中卷积核的数量通常呈现递增的趋势。

可见,本发明提供一种基于模型微调的卷积神经网络通道剪枝方法,通过对批归一化层缩放参数进行全局排序,并限制每个待剪枝网络层通道保留率,获取剪枝后的网络结构以及剪枝后模型参数。并在军事目标识别数据集上训练不同剪枝率的网络模型,和基线模型的分类准确率以及模型参数量进行对比,展示了模型性能的提升和模型训练过程的稳定性。

相应地,本发明还提供一种基于模型微调的卷积神经网络通道剪枝系统,包括:第一微调训练单元,用于获取预训练模型c以及在目标数据集上微调后的模型c′。模型剪枝单元,用于根据剪枝率和通道保留率,从所述模型c′的所有通道中选取待剪通道。所述模型剪枝单元还用于根据选取的待剪通道,将所述模型c′进行剪枝,得到所述模型c″。模型重建单元,用于创建与所述模型c″结构相同的模型,并将剪枝后模型参数赋值给新创建模型。

进一步,还包括:第二微调训练单元,用于在目标数据集上微调剪枝后的模型。

可见,本发明提供一种基于模型微调的卷积神经网络通道剪枝系统,通过对批归一化层缩放参数进行全局排序,并限制每个待剪枝网络层通道保留率,获取剪枝后的网络结构以及剪枝后模型参数。并在军事目标识别数据集上训练不同剪枝率的网络模型,和基线模型的分类准确率以及模型参数量进行对比,展示了模型性能的提升和模型训练过程的稳定性。

针对原始networksliming方法需要随机初始化网络参数、不能用预训练模型初始化网络参数的问题,本发明提供一种基于模型微调的卷积神经网络通道剪枝方法及系统,通过对批归一化层缩放参数进行全局排序,并限制每个待剪枝网络层通道保留率,获取剪枝后的网络结构以及剪枝后模型参数。并在军事目标识别数据集上训练不同剪枝率的网络模型,和基线模型的分类准确率以及模型参数量进行对比,展示了模型性能的提升和模型训练过程的稳定性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1