网络模型剪枝方法、电子设备及存储介质与流程

文档序号:32841610发布日期:2023-01-06 21:01阅读:42来源:国知局
网络模型剪枝方法、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及网络模型剪枝方法、电子设备及存储介质。


背景技术:

2.近年来,随着计算机技术的不断发展,深度神经网络(convolutional neural networks,cnn)因其信息提取能力也越来越被广泛应用于无人驾驶、图像分类及目标识别等领域,并且随着cnn的深度更深、宽度更宽时,其信息提取能力更强,但随之对计算机硬件资源和实时性也提出了更高要求。因此,在计算机硬件资源和实时性有限时如何对cnn进行轻量化成为研究热点。


技术实现要素:

3.本技术旨在至少解决相关技术中存在的技术问题之一。为此,本技术提出一种网络模型剪枝方法,实现在计算机硬件资源和实时性有限时对cnn进行高效轻量化的目的,同时也有效提高了剪枝后网络模型的精度。
4.本技术还提供一种电子设备。
5.本技术还提供一种非暂态计算机可读存储介质。
6.本技术还提出一种计算机程序产品。
7.根据本技术第一方面实施例的网络模型剪枝方法,包括:
8.获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,所述待剪枝通道集中不同待剪枝通道表征使用对应所述预设剪枝策略获取的不重要的通道;
9.基于所述不同待剪枝通道,确定目标待剪枝通道;
10.基于所述目标待剪枝通道,对所述待剪枝网络模型进行剪枝。
11.根据本技术实施例的网络模型剪枝方法,首先获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,再基于待剪枝通道集确定目标待剪枝通道,由于待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道,因此,当预设剪枝策略的数量越多时,待剪枝通道集中所含的待剪枝通道就越丰富和全面,由此确定的目标待剪枝通道也就越精准,从而基于目标待剪枝通道对待剪枝网络模型进行剪枝,能够实现在计算机硬件资源和实时性有限时对cnn进行高效轻量化的目的,同时也有效提高了剪枝后网络模型的精度。
12.根据本技术的一个实施例,所述不同预设剪枝策略包括bn层通道剪枝策略和卷积层通道剪枝策略,所述获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,包括:
13.获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数;
14.确定与所述目标缩放因子匹配的第一待剪枝通道以及与所述目标权重参数匹配的第二待剪枝通道;
15.获取含有所述第一待剪枝通道和所述第二待剪枝通道的所述待剪枝通道集。
16.根据本技术的一个实施例,所述确定与所述目标缩放因子匹配的第一待剪枝通道以及与所述目标权重参数匹配的第二待剪枝通道,包括:
17.基于所述目标缩放因子、所述bn层的输入和所述bn层的偏置,确定第一通道裁剪策略;
18.基于所述第一通道裁剪策略和预设通道裁剪阈值,确定所述第一待剪枝通道;
19.基于所述卷积核的输入和所述目标权重参数,确定第二通道裁剪策略;
20.基于所述第二通道裁剪策略和所述预设通道裁剪阈值,确定所述第二待剪枝通道。
21.根据本技术的一个实施例,所述基于所述待剪枝通道集,确定目标待剪枝通道,包括:
22.基于所述第一待剪枝通道和所述第二待剪枝通道的交集通道,确定目标待剪枝通道。
23.根据本技术的一个实施例,所述基于所述待剪枝通道集,确定目标待剪枝通道,还包括:
24.按照重要性分别对多个所述第一待剪枝通道和多个所述第二待剪枝通道进行排序;
25.基于排序所得结果的并集确定目标待剪枝通道。
26.根据本技术的一个实施例,所述获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数,包括:
27.使用样本数据集对初始神经网络模型进行训练,确定训练停止时对应的待稀疏训练网络模型;
28.获取所述待稀疏训练网络模型中bn层的初始缩放因子和卷积层的卷积核的初始权重参数;
29.基于预设正则化约束、所述初始缩放因子和所述初始权重参数,确定所述bn层的第一损失函数和所述卷积核的第二损失函数;
30.基于所述第一损失函数和所述第二损失函数,对所述待稀疏训练网络模型进行稀疏训练,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数。
31.根据本技术的一个实施例,在所述基于所述第一待剪枝通道和所述第二待剪枝通道,对所述待剪枝网络模型进行剪枝之后,所述方法还包括:
32.利用知识蒸馏方式,对剪枝所得网络模型进行微调。
33.根据本技术的一个实施例,在所述对剪枝所得网络模型进行微调之后,所述方法还包括:
34.对微调所得网络模型的模型精度和预设模型精度进行匹配;
35.基于所述模型精度和所述预设模型精度的匹配成功结果,确定目标网络模型。
36.根据本技术的一个实施例,在所述对微调所得网络模型的模型精度和预设模型精度进行匹配之后,所述方法还包括:
37.基于所述模型精度和所述预设模型精度的匹配失败结果,获取微调所得网络模型中不同预设剪枝策略对应的新的待剪枝通道集;
38.基于所述新的新的待剪枝通道集,确定新的目标待剪枝通道,以对所述微调所得
网络模型进行剪枝。
39.本技术实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:首先获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,再基于待剪枝通道集确定目标待剪枝通道,由于待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道,因此,当预设剪枝策略的数量越多时,待剪枝通道集中所含的待剪枝通道就越丰富和全面,由此确定的目标待剪枝通道也就越精准,从而基于目标待剪枝通道对待剪枝网络模型进行剪枝,能够实现在计算机硬件资源和实时性有限时对cnn进行高效轻量化的目的,同时也有效提高了剪枝后网络模型的精度。
40.进一步的,当获取到待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数时,基于与目标缩放因子匹配的第一待剪枝通道以及与目标权重参数匹配的第二待剪枝通道确定待剪枝通道集,无需改变原算法的网络结构,通用性强,在目标检测、图像分类等场景中均有显著剪枝效果;以此结合bn层缩放因子和卷积核权重参数确定第一待剪枝通道和第二待剪枝通道的方式,解决了现有剪枝算法仅依赖于bn层的缩放因子所需裁剪的通道所导致的通道剪枝的准确度不高的问题,实现了在确保大幅降低模型部署时的计算量、参数量和模型体积的前提下提高剪枝后网络模型的精度,同时也能提高剪枝后网络模型的轻量化效果。
41.更进一步的,通过对初始cnn模型先进行常规训练、后添加预设正则化约束进行稀疏训练的方式,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数,以此结合模型训练和添加正则化约束提高了确定目标缩放因子和目标权重参数的可靠性和稳定性,也为后续模型剪枝的准确性提供充分依据。
42.再进一步的,通过先基于目标缩放因子和目标权重参数确定第一通道裁剪策略和第二通道裁剪策略、再基于第一通道裁剪策略、第二通道裁剪策略和预设通道裁剪阈值,确定第一待剪枝通道和第二待剪枝通道,以此结合双通道策略剪枝方案提高确定非重要通道的准确性和可靠性,为后续通道裁剪的精确性奠定基础。
43.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
44.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是本技术实施例提供的网络模型剪枝方法的流程示意图;
46.图2是本技术实施例提供的不同剪枝方法在模型尺寸和全类平均正确率下对应的曲线图;
47.图3是本技术实施例提供的不同剪枝方法在参数和全类平均正确率下对应的曲线图;
48.图4是本技术实施例提供的不同剪枝方法在性能和全类平均正确率下对应的曲线图;
49.图5是本技术实施例提供的网络模型剪枝装置的结构示意图;
50.图6是本技术实施例提供的电子设备的结构示意图。
具体实施方式
51.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.近年来,随着cnn的快速发展,cnn在工业、安防和生活等场景中也越来越大放异彩,这是因为cnn在无人驾驶、图像分类及目标识别等多个领域中能够展现出优秀的信息提取能力。同时,由于计算机硬件性能迅速发展,其内部构建更深、更宽的cnn成为可能,并且在边缘设备中硬件资源充足的环境下,更复杂的cnn往往意味着更好更精准的信息提取能力。但是在边缘设备中硬件资源受限、实时性要求较高的生产和现实生活场景中,更深、更宽的cnn并不能发挥出符合需求的信息提取效果,从而使得更深、更宽的cnn在实际生产部署过程中需要足够的硬件资源保证实时性,增加了硬件成本。
53.目前,针对上述问题的解决方案通常包括轻量化结构和模型压缩两种方案,轻量化结构是将卷积层用轻量化结构替换,例如ghost卷积、深度可分离卷积等;模型压缩是采用剪枝、蒸馏、量化等算法对cnn进行模型压缩,虽然两种方案均对cnn有轻量化效果,但轻量化结构对模型的精度影响较大,并且在边缘设备中由于内存访问成本的影响,其速度并不一定会有提升;模型压缩中剪枝算法中对通道选择的准则较多,但各种通道选择的准则互相独立,spf、fpgm等剪枝算法对网络去冗余效果差距较大,会出现轻量化效果不佳、精度损失严重等问题。比如,相关技术中,通过使用剪枝算法对cnn进行剪枝的方式实现轻量化,并且剪枝算法中基于批标准化(batchnormalization,bn)层的缩放因子判断通道是否重要性,并且在确定通道不重要时裁剪该通道。
54.根据发明人研究发现,虽然现有剪枝算法能够降低模型部署时的计算量、参数量和模型体积,但是由于现有剪枝算法仅使用一个bn层的缩放因子判断通道的重要性,导致衡量通道是否重要的准确度不高,从而也导致针对cnn的轻量化效果较差且轻量化后cnn的精度损失较大。
55.基于此,本技术提供一种网络模型剪枝方法、电子设备及存储介质,其中网络模型剪枝方法适用于各种含有深度卷积网络的深度学习算法中,包括但不限于目标检测、图像分类、语义分割等网络,并且也可以应用于智慧安防、智能家居、智慧工厂等场景中。并且,网络模型剪枝方法的执行主体可以为边缘设备,边缘设备可以为路由器、路由交换机、集成接入设备、多路复用器,以及各种城域网接入设备和广域网接入设备;其执行主体还可以为终端设备,终端设备可以为个人计算机(personal computer,pc)、便携式设备、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等其它电子设备。本技术对边缘设备的具体形式不做限定,也不具体限定终端设备的具体形式。
56.需要说明的是,下述方法实施例以执行主体为边缘设备为例进行说明,并且下述方法实施例的执行主体可以是边缘设备的部分或全部。
57.图1为本技术实施例提供的网络模型剪枝方法的流程示意图,如图1所示,该网络
模型剪枝方法,包括以下步骤:
58.步骤110、获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道。
59.其中,待剪枝网络模型可以为经过稀疏训练的cnn且是收敛的;预设剪枝策略可以为预先设置的用于确定待剪枝网络模型中不重要的通道的策略,预设剪枝策略的数量至少为2个,预设剪枝策略可以包括但不限定软裁剪(soft filter pruning,spf)方法、卷积核剪枝(filter pruning via geometric median,fpgm)方法等数学方法的剪枝策略,以及根据待剪枝网络模型中权重进行剪枝的剪枝策略。进一步的,根据待剪枝网络模型中权重进行剪枝的剪枝策略可以是以提升重要通道的输出为目标的剪枝策略,也可以是以将输出较小的权重或影响精度较低的权重修剪掉为目标的剪枝策略。
60.具体的,边缘设备获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,可以先从多个预设剪枝策略中选取本次剪枝所需的至少两个预设剪枝策略,再基于所选取的至少两个预设剪枝策略获取待剪枝通道集。比如,当至少两个预设剪枝策略为spf方法的剪枝策略、fpgm方法的剪枝策略以及根据待剪枝网络模型中bn层缩放因子进行剪枝的剪枝策略时,待剪枝通道集包括使用spf方法获取的待剪枝网络模型中的待剪枝通道、使用fpgm方法获取的待剪枝网络模型中的待剪枝通道以及使用bn层缩放因子获取的待剪枝网络模型中的待剪枝通道。
61.可以理解的是,使用spf方法和fpgm方法分别获取待剪枝通道的过程可以参照现有使用spf方法和fpgm方法进行剪枝的过程。并且,使用bn层缩放因子获取待剪枝通道的过程也可以参照现有仅以bn层缩放因子为基准进行剪枝的过程。此处不再赘述。
62.步骤120、基于待剪枝通道集,确定目标待剪枝通道。
63.具体的,边缘设备基于待剪枝通道集进行通道分析,判断待剪枝通道集中基于不同预设剪枝策略对应确定的待剪枝通道是否通道数量相同以及是否通道标识相同,如果每个预设剪枝策略对应确定的待剪枝通道的通道数量相同且通道标识相同,则将待剪枝网络模型中任一预设剪枝策略对应确定的待剪枝通道确定为目标待剪枝通道;反之,如果每个预设剪枝策略对应确定的待剪枝通道的通道数量不同和/或通道标识存在区别,可以将待剪枝通道集发送至用户终端,并基于用户终端反馈的信息确定目标待剪枝通道,用户终端反馈的信息可以基于用户终端对应用户人为从待剪枝通道集中选取目标待剪枝通道的方式生成。
64.步骤130、基于目标待剪枝通道,对待剪枝网络模型进行剪枝。
65.具体的,边缘设备对待剪枝网络模型进行剪枝,可以为将待剪枝网络模型中的目标待剪枝通道从待剪枝网络模型中移除,同时将目标待剪枝通道的网络连接,并且确保待剪枝网络模型中除目标待剪枝通道之外的其它通道,仍保留于待剪枝网络模型中。
66.根据本技术实施例的网络模型剪枝方法,首先获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,再基于待剪枝通道集确定目标待剪枝通道,由于待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道,因此,当预设剪枝策略的数量越多时,待剪枝通道集中所含的待剪枝通道就越丰富和全面,由此确定的目标待剪枝通道也就越精准,从而基于目标待剪枝通道对待剪枝网络模型进行剪枝,能够实现在计算机硬件资源和实时性有限时对cnn进行高效轻量化的目的,同时也有效提高了剪枝
后网络模型的精度。
67.可以理解的是,考虑到剪枝可以将输出较小的权重或影响精度较低的权重修剪,并且cnn中卷积层卷积核的权重和bn层的缩放因子均可以用于判断通道的重要性,因此可以预先设置bn层通道剪枝策略和卷积层通道剪枝策略确定待剪枝通道集。也即,当不同预设剪枝策略包括bn层通道剪枝策略和卷积层通道剪枝策略时,步骤120的实现过程可以包括:
68.首先,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数;再进一步确定与目标缩放因子匹配的第一待剪枝通道以及与目标权重参数匹配的第二待剪枝通道;然后,获取含有第一待剪枝通道和第二待剪枝通道的待剪枝通道集。
69.其中,目标缩放因子可以表征bn层的所有缩放因子是稀疏的,并且稀疏的缩放因子中部分缩放因子趋近于0;目标权重参数可以表征卷积核的所有权重参数是稀疏的,并且稀疏的权重参数中部分权重参数也趋近于0。
70.具体的,获取待剪枝网络模型,可以是从现有网络模型中选取含有bn层和卷积层且bn层含有目标缩放因子、卷积层含有目标权重参数的模型作为待剪枝网络模型;也可以是通过对含有bn层和卷积层的模型进行训练直至满足含有目标缩放因子和目标权重参数的方式获取。此处对获取待剪枝网络模型的方式不作具体限制。并且,当获取到待剪枝网络模型时,自然也能获取到bn层的目标缩放因子和卷积层的卷积核的目标权重参数。
71.可以理解的是,由于待剪枝网络模型是稀疏训练至收敛的模型,待剪枝网络模型中bn层稀疏的缩放因子中部分缩放因子趋近于0,卷积层的卷积核稀疏的权重参数中部分权重参数也趋近于0,因此,可以基于bn层的目标缩放因子判断bn层的通道是否为重要通道,并且确定bn层的非重要通道为第一待剪枝通道,以及基于卷积核的目标权重参数同样判断卷积核的通道是否为重要通道,并且确定卷积核的非重要通道为第二待剪枝通道。此时可以确定待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集包括第一待剪枝通道和第二待剪枝通道。
72.根据本技术实施例的网络模型剪枝方法,当获取到待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数时,基于与目标缩放因子匹配的第一待剪枝通道以及与目标权重参数匹配的第二待剪枝通道确定待剪枝通道集,无需改变原算法的网络结构,通用性强,在目标检测、图像分类等场景中均有显著剪枝效果;以此结合bn层缩放因子和卷积核权重参数确定第一待剪枝通道和第二待剪枝通道的方式,解决了现有剪枝算法仅依赖于bn层的缩放因子所需裁剪的通道所导致的通道剪枝的准确度不高的问题,实现了在确保大幅降低模型部署时的计算量、参数量和模型体积的前提下提高剪枝后网络模型的精度,同时也能提高剪枝后网络模型的轻量化效果。
73.可以理解的是,考虑到含有bn层和卷积层的网络模型可以为cnn,因此可以通过对cnn先进行常规训练、后进行稀疏训练的方式获取目标缩放因子和目标权重参数。基于此,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数,其具体实现过程可以包括:
74.首先,使用样本数据集对初始神经网络模型进行训练,确定训练停止时对应的待稀疏训练网络模型;再获取待稀疏训练网络模型中bn层的初始缩放因子和卷积层的卷积核的初始权重参数;进一步基于预设正则化约束、初始缩放因子和初始权重参数,确定bn层的
第一损失函数和卷积核的第二损失函数;然后,基于第一损失函数和第二损失函数,对待稀疏训练网络模型进行稀疏训练,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数。
75.其中,样本数据集根据cnn模型的应用场景可以为图像数据集、文本数据集、语音数据集或者视频数据集。本技术对样本数据集的类型不作具体限定。并且,样本数据集可以采用现有的数据集,也可以通过对应用场景进行数据采集获得。本技术对样本数据集的获取方式也不作具体限定。具体的,使用样本数据集对初始cnn模型进行训练,并计算本次训练后所得中间cnn模型的损失函数,基于损失函数确定本次训练所得中间cnn模型的精度是否达到预设精度阈值,若本次训练所得中间cnn模型的精度达到预设精度阈值,则停止训练,且确定训练停止时对应的中间cnn模型为待稀疏训练网络模型;反之,若本次训练所得中间cnn模型的精度未达到预设精度阈值,则获取参数更新后的中间cnn模型,并对参数更新后的中间cnn模型再次进行训练,直至训练后所得中间cnn模型的精度达到预设精度阈值,则停止训练,并确定训练停止时的网络模型为待稀疏训练网络模型。此过程为针对初始cnn模型进行常规训练的过程,将初始cnn模型训练为待稀疏训练网络模型的过程也是将初始cnn训练至收敛的过程,当初始cnn模型被训练至收敛时,可以将bn层的缩放因子作为待稀疏训练网络模型的初始缩放因子γ,以及将卷积层的卷积核的权重参数作为待稀疏训练网络模型的初始权重参数w,初始缩放因子γ是一个一维向量,初始权重参数w是一个多维矩阵。
76.此外,基于预设正则化约束和初始缩放因子,确定bn层的第一损失函数l1=∑l'+λsign(γ):基于预设正则化约束和初始权重参数,确定卷积核的第二损失函数为l2=∑l'+λsign(w0;其中,l'为待稀疏训练网络模型的训练损失函数的导数,λ为预设正则化约束系数,sign为符号函数。然后,基于第一损失函数和第二损失函数,对待稀疏训练网络模型进行稀疏训练,系数训练的目的是将添加预设正则化约束系数的初始缩放因子和初始权重参数稀疏,以使得bn层的缩放因子稀疏且部分缩放因子趋近于0,以及使得卷积核的权重参数稀疏且部分权重参数趋近于0,同时将待稀疏训练网络模型训练至收敛,以此得到待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数进一步的,稀疏训练的具体方式可参照现有稀疏训练方式,此处不再赘述;预设正则化约束稀疏可以为l1正则化约束系数,目标缩放因子也是一个一维向量,目标权重参数也是一个多维矩阵。
77.根据本技术实施例的网络模型剪枝方法,通过对初始cnn模型先进行常规训练、后添加预设正则化约束进行稀疏训练的方式,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数,以此结合模型训练和添加正则化约束提高了确定目标缩放因子和目标权重参数的可靠性和稳定性,也为后续模型剪枝的准确性提供充分依据。
78.可以理解的是,由于稀疏训练可以使得bn层中更多的缩放因子趋近于0和卷积核中更多的权重参数趋近于0,因此为了约束缩放因子和权重参数,可以通过确定不同裁剪准则的方式确定第一待剪枝通道和第二待剪枝通道。基于此,确定与目标缩放因子匹配的第一待剪枝通道以及与目标权重参数匹配的第二待剪枝通道,其具体实现过程可以包括:
79.首先,基于目标缩放因子、bn层的输入和bn层的偏置,确定第一通道裁剪策略;再进一步基于第一通道裁剪策略和预设通道裁剪阈值,确定第一待剪枝通道;基于卷积核的输入和所述目标权重参数,确定第二通道裁剪策略;基于第二通道裁剪策略和预设通道裁
剪阈值,确定第二待剪枝通道。
80.其中,预设通道裁剪阈值为大于0且小于1的百分比,并且预设通道裁剪阈值的大小是可以调整的,也即,可以基于上次剪枝后网络模型的轻量化程度调整本次剪枝过程中预设通道裁剪阈值的大小。并且,确定第一待剪枝通道和确定第二待剪枝通道的过程可以顺序执行,也可以同时执行,此处不作具体限定。
81.具体的,基于目标缩放因子、bn层的输入和bn层的偏置,可以确定第一通道裁剪策略为:略为:为待剪枝网络模型中bn层的输出,z
in
为待剪枝网络模型中bn层的输入,β为待剪枝网络模型中bn层的偏置,为待剪枝网络模型中bn层的目标缩放因子;第一通道裁剪策略表明,针对卷积核的某一通道而言,当目标缩放因子趋近于0时,输出和输入近似无关,则说明该通道相对不重要;以此第一通道裁剪策略,可以确定出卷积核中至少一个相对不重要的通道,并将至少一个相对不重要的通道从小到大排序后,按照至少一个相对不重要的通道总数量和预设通道裁剪阈值的乘积q,从排序后的通道中确定前topq个通道为第一待剪枝通道。同样的,基于第一通道裁剪策略和预设通道裁剪阈值,可以确定第一待剪枝通道为:待剪枝通道为:为待剪枝网络模型中卷积层的卷积核的输出,a为待剪枝网络模型中卷积层的卷积核的输入,为待剪枝网络模型中卷积层的卷积核的目标权重参数,a
ij
为卷积核的输入a中第i行、第j列的输入,为目标权重参数中第i行、第j列的目标权重参数;第二通道裁剪策略表明,针对卷积核而言,当该卷积核内目标权重参数趋近于0时,该卷积核对任意输入a的输出也趋近于0,则可以确定该卷积核的通道相对不重要,并将相对不重要的通道从小到大排序后,按照卷积核中相对不重要的通道总数量和预设通道裁剪阈值的乘积m,从排序后的通道中确定前topm个通道为第二待剪枝通道。
82.可以理解的是,本技术中将确定的第一通道裁剪策略和第二通道裁剪策略称之为双通道策略剪枝方案,双通道策略剪枝方案为添加正则化预设的剪枝策略。
83.根据本技术实施例的网络模型剪枝方法,通过先基于目标缩放因子和目标权重参数确定第一通道裁剪策略和第二通道裁剪策略、再基于第一通道裁剪策略、第二通道裁剪策略和预设通道裁剪阈值,确定第一待剪枝通道和第二待剪枝通道,以此结合双通道策略剪枝方案提高确定非重要通道的准确性和可靠性,为后续通道裁剪的精确性奠定基础。
84.可以理解的是,当基于双通道策略剪枝方案确定的第一待剪枝通道和第二待剪枝通道的通道数量不同和/或通道标识存在区别时,可以通过通道融合的方式确定最终裁剪的通道。基于此,步骤120的具体实现过程可以包括:
85.基于第一待剪枝通道和第二待剪枝通道的交集通道,确定目标待剪枝通道。
86.具体的,针对第一待剪枝通道的数量为m个、第二待剪枝通道的数量为n个的情况,可以首先确定m个第一待剪枝通道和n个第二待剪枝通道的交集通道,并判断该交集通道是否为空,若该交集通道非空,则可以将该交集通道直接确定为目标待剪枝通道,目标待剪枝通道为m个第一待剪枝通道和n个第二待剪枝通道中相同通道标识的通道,m和n分别为大于等于1的正整数;反之,若该交集通道为空,可以将第一待剪枝通道和第二待剪枝通道发送至用户终端,并基于用户终端反馈的信息确定目标待剪枝通道,用户终端反馈的信息可以
基于用户终端对应用户人为从第一待剪枝通道和第二待剪枝通道中选取目标待剪枝通道的方式生成。
87.可以理解的是,针对m个第一待剪枝通道和n个第二待剪枝通道的交集通道非空且设定交集通道的数量为p个的情况,p为大于0的正整数;若p=1,则直接将该1个交集通道确定为目标待剪枝通道;若p>1,则可以按照重要性对p个交集通道进行从大到小排序,并从排序后的p个交集通道中选取前[p/h]个交集通道,然后确定所选取的前[p/h]个交集通道为目标待剪枝通道,h为大于等于2的正整数,[
·
]为取整符号。
[0088]
可以理解的是,在实际处理过程中,除了基于第一通道裁剪策略和第二通道裁剪策略确定第一待剪枝通道和第二待剪枝通道之外,还可以采用不添加正则化约束的剪枝策略确定第三待剪枝通道,其中不添加正则化约束的剪枝策略可以为现有不添加正则化约束的剪枝策略,比如spf方法的剪枝策略、fpgm方法的剪枝策略等等;此时可以根据第一待剪枝通道、第二待剪枝通道以及第三待剪枝通道的交集通道,确定目标待剪枝通道。
[0089]
根据本技术实施例的网络模型剪枝方法,通过针对第一通道裁剪策略和第二通道裁剪策略所确定的第一待剪枝通道和第二待剪枝通道的交集通道,确定目标待剪枝通道,以此实现在确保裁剪后网络模型精度的前提下实现裁剪待剪枝网络模型中冗余参数的目的,大幅度降低了裁剪后网络模型的体积、计算量和参数量,提升了裁剪后网络模型的推理速度,并且在同等算力和内存的硬件中,能够进一步提高实时性,以及在同等实时性要求下,也能够降低算法部署平台的硬件要求,降低算法部署的硬件成本。
[0090]
可以理解的是,当基于双通道策略剪枝方案确定的第一待剪枝通道和第二待剪枝通道的通道数量不同和/或通道标识存在区别时,可以通过另一种通道融合的方式确定最终裁剪的通道。基于此,步骤120的具体实现过程可以包括:
[0091]
按照重要性分别对多个第一待剪枝通道和多个第二待剪枝通道进行排序;基于排序所得结果的并集确定目标待剪枝通道。
[0092]
具体的,按照重要性对m个第一待剪枝通道进行从大到小排序后,从排序后的m个第一待剪枝通道中选取前m/2个第一待剪枝通道;同样的,按照重要性对n个第二待剪枝通道进行从大到小排序后,从排序后的n个第二待剪枝通道中选取前n/2个第二待剪枝通道;然后将选取的前m/2个第一待剪枝通道和选取的前n/2个第二待剪枝通道的并集,确定为目标待剪枝通道。进一步的,当m、n为奇数时,选取前[m/2]个第一待剪枝通道或者前[n/2]个第二待剪枝通道,[
·
]为取整符号。
[0093]
也即,可以直接根据两种待剪枝通道进行重要性排序后的部分通道进行并集,来确定目标待剪枝通道。可以理解的是,这里可以选择前m/2个第一待剪枝通道以及前n/2个第二待剪枝通道进行并集操作,也以选择前m/l个第一待剪枝通道以及前n/l个第二待剪枝通道进行并集操作,其中,l≥2,l的取值不做限制。
[0094]
可以理解的是,针对m个第一待剪枝通道和n个第二待剪枝通道的交集通道为空的情况,也可以按照重要性分别对m个第一待剪枝通道和n个第二待剪枝通道先进行排序、后进行并集的方式确定目标待剪枝通道。此处不再赘述。
[0095]
根据本技术实施例的网络模型剪枝方法,通过按照重要性对多个第一待剪枝通道和多个第二待剪枝通道先排序后取并集的方式,确定目标待剪枝通道,以此实现针对初次确定的待剪枝通道集再次筛选重要性最低的目标待剪枝通道的目的,从而进一步提高了模
型剪枝的精度和剪枝后模型的收敛速度。
[0096]
可以理解的是,为了确保裁剪后网络模型的精度,可以对裁剪后网络模型进行微调,以使其收敛。基于此,在步骤130之后,网络模型剪枝方法还可以包括:
[0097]
利用知识蒸馏方式,对剪枝所得网络模型进行微调。
[0098]
具体的,对剪枝所得网络模型进行微调,可以利用知识蒸馏方式进行微调,也即将待稀疏训练网络模型作为教师网络,将剪枝所得网络模型作为学生网络,再通过对教师网络和学生网络进行蒸馏的方式进行微调。此处知识蒸馏的具体过程与现有知识蒸馏方法相同,此处不再赘述。
[0099]
根据本技术实施例的网络模型剪枝方法,通过利用知识蒸馏方式对剪枝所得网络模型进行微调的方式,提升剪枝后网络模型的精度,从而为大幅提升剪枝后网络模型的轻量化效果提供可靠保障。
[0100]
可以理解的是,由于剪枝和微调的目的是为了获取符合实际轻量化需求的目标网络模型,可以对经过剪枝和微调所得网络模型进行精度判断。基于此,在对剪枝所得网络模型进行微调之后,网络模型剪枝方法还可以包括:
[0101]
对微调所得网络模型的模型精度和预设模型精度进行匹配;基于模型精度和预设模型精度的匹配成功结果,确定目标网络模型。
[0102]
其中,预设模型精度可以针对待剪枝网络模型的实际轻量化需求人为设定。
[0103]
具体的,目标网络模型为轻量化、规模小且精度高的网络模型,预设模型精度可以根据实际需求人为设定。比如,若需要将规模较大的待剪枝网络模型剪枝至较小的模型,为了确保模型收敛速度和模型精度,通常不会一次性设置较高的预设通道裁剪阈值,而是先设置较小的预设通道裁剪阈值进行一次剪枝后查看效果,并根据本次剪枝和微调的效果确定下次剪枝的预设通道裁剪阈值的大小,直至将待剪枝网络模型剪枝至目标网络模型;反之,若需要将规模较小的待剪枝网络模型进行剪枝,可以在确保模型收敛速度和精度的前提下设置较大的预设通道裁剪阈值。基于此,针对剪枝和微调后所得的网络模型,可以判断剪枝和微调所得网络模型的模型精度是否为达到预设模型精度的目标网络模型,若确定剪枝和微调所得网络模型的模型精度达到预设通道裁剪阈值,则确定模型精度和预设模型精度匹配成功,同时停止剪枝操作,并将剪枝操作停止时对应的网络模型确定为目标网络模型。
[0104]
根据本技术实施例的网络模型剪枝方法,通过将剪枝和微调所得网络模型的模型精度与预设模型精度进行匹配的方式,确定匹配成功时的目标网络模型,提高了获取轻量化网络模型的可靠性和准确性。
[0105]
可以理解的是,如果本次剪枝和微调所得网络模型的精度未达到预设轻量化需求,则可以通过再次剪枝和微调的方式确定目标网络模型。基于此,网络模型剪枝方法还可以包括:
[0106]
首先,基于模型精度和预设模型精度的匹配失败结果,获取微调所得网络模型中不同预设剪枝策略对应的新的待剪枝通道集;再进一步基于新的待剪枝通道集,确定新的目标待剪枝通道,以对微调所得网络模型进行剪枝。
[0107]
具体的,针对剪枝和微调后所得的网络模型,确定本次剪枝和微调所得网络模型的模型精度未达到预设模型精度,可以将本次剪枝和微调所得网络模型作为新的待剪枝网
络模型返回步骤110,获取新的待剪枝通道集;并进一步基于新的待剪枝通道集,确定新的目标待剪枝通道,以基于新的目标待剪枝通道对新的待剪枝网络模型再次进行剪枝;直至剪枝和微调所得网络模型的模型精度和预设模型精度匹配成功。
[0108]
可以理解的是,当待剪枝网络模型为应用于人物检测场景中的网络模型yolov5n时,可以使用本技术提供的网络模型剪枝方法对yolov5n进行剪枝,也即首先获取yolov5n中不同预设剪枝策略对应的待剪枝通道集,再基于待剪枝通道集,确定目标待剪枝通道,然后基于目标待剪枝通道,对yolov5n进行剪枝,其中获取待剪枝通道集的过程和确定目标待剪枝通道的过程均可以与前述实施例进行相互参照。进一步的,针对yolov5,分别使用本技术方法(bn+conv)进行剪枝、现有仅使用bn层的缩放因子进行剪枝以及使用仅使用卷积(conv)进行剪枝,可以得到如图2、图3和图4所示的效果图以及表1所示的数据结果,图2为不同剪枝方法在模型尺寸(model size)和全类平均正确率(map)下对应的曲线图,图3为不同剪枝方法在参数(parameter)和全类平均正确率(map)下对应的曲线图,图4为不同剪枝方法在gflops和全类平均正确率(map)下对应的曲线图;其中,gflops为每秒10亿次的浮点运算数(giga floating-point operations per second,gflops),并且gflops可以作为中央处理器的性能参数;yolov5n0为针对yolov5n使用现有仅使用bn层的缩放因子进行剪枝或者使用仅使用卷积(conv)进行剪枝,yolov5n1为针对yolov5n使用本技术方法进行剪枝。
[0109]
通过图2~图4及表1可以理解,使用本技术方法对yolov5n进行剪枝,计算量降低了47%,模型大小降低了71%,全类平均正确率(map)降低了2.8%,单核中央处理器的推理时间降低了40%,其中推理时间为单核推理100次后取平均值所得的时间;从而,相较于现有仅使用bn层的缩放因子进行剪枝的方法,使用本技术方法在确保计算量大幅降低及确保中央处理器性能的前提下,模型轻量化结果不仅更小,而且耗时也少。
[0110]
表1
[0111][0112]
下面对本技术提供的网络模型剪枝装置进行描述,下文描述的网络模型剪枝装置与上文描述的网络模型剪枝方法可相互对应参照。
[0113]
图5示例了一种网络模型剪枝装置的结构示意图,如图5所示,该网络模型剪枝装置500,包括:
[0114]
获取模块510,用于获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道;
[0115]
确定模块520,用于基于待剪枝通道集,确定目标待剪枝通道;
[0116]
剪枝模块530,用于基于目标待剪枝通道,对待剪枝网络模型进行剪枝。
[0117]
可以理解的是,获取模块510,具体可以用于获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数;确定与目标缩放因子匹配的第一待剪枝通道以及与目标权重参数匹配的第二待剪枝通道;获取含有第一待剪枝通道和第二待剪枝通道的
待剪枝通道集。
[0118]
可以理解的是,获取模块510,具体还可以用于使用样本数据集对初始神经网络模型进行训练,确定训练停止时对应的待稀疏训练网络模型;获取待稀疏训练网络模型中bn层的初始缩放因子和卷积层的卷积核的初始权重参数;基于预设正则化约束、初始缩放因子和初始权重参数,确定bn层的第一损失函数和卷积核的第二损失函数;基于第一损失函数和第二损失函数,对待稀疏训练网络模型进行稀疏训练,获取待剪枝网络模型中bn层的目标缩放因子和卷积层的卷积核的目标权重参数。
[0119]
可以理解的是,确定模块520,具体可以用于基于目标缩放因子、bn层的输入和bn层的偏置,确定第一通道裁剪策略;基于第一通道裁剪策略和预设通道裁剪阈值,确定第一待剪枝通道;基于卷积核的输入和目标权重参数,确定第二通道裁剪策略;基于第二通道裁剪策略和预设通道裁剪阈值,确定第二待剪枝通道。
[0120]
可以理解的是,确定模块520,具体还可以用于基于第一待剪枝通道和第二待剪枝通道的交集通道,确定目标待剪枝通道。
[0121]
可以理解的是,确定模块520,具体还可以用于按照重要性分别对多个第一待剪枝通道和多个第二待剪枝通道进行排序;基于排序所得结果的并集确定目标待剪枝通道。
[0122]
可以理解的是,剪枝模块530,具体还可以用于利用知识蒸馏方式,对剪枝所得网络模型进行微调。
[0123]
可以理解的是,剪枝模块530,具体还可以用于对微调所得网络模型的模型精度和预设模型精度进行匹配;基于模型精度和预设模型精度的匹配成功结果,确定目标网络模型。
[0124]
可以理解的是,剪枝模块530,具体还可以用于基于模型精度和预设模型精度的匹配失败结果,获取微调所得网络模型中不同预设剪枝策略对应的新的待剪枝通道集;基于新的新的待剪枝通道集,确定新的目标待剪枝通道,以对微调所得网络模型进行剪枝。
[0125]
根据本技术实施例的网络模型剪枝装置,首先获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,再基于待剪枝通道集确定目标待剪枝通道,由于待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道,因此,当预设剪枝策略的数量越多时,待剪枝通道集中所含的待剪枝通道就越丰富和全面,由此确定的目标待剪枝通道也就越精准,从而基于目标待剪枝通道对待剪枝网络模型进行剪枝,能够实现在计算机硬件资源和实时性有限时对cnn进行高效轻量化的目的,同时也有效提高了剪枝后网络模型的精度。
[0126]
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备600可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:
[0127]
获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道;
[0128]
基于待剪枝通道集,确定目标待剪枝通道;
[0129]
基于目标待剪枝通道,对待剪枝网络模型进行剪枝。
[0130]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为
独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0131]
另一方面,本技术实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
[0132]
获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道;
[0133]
基于待剪枝通道集,确定目标待剪枝通道;
[0134]
基于目标待剪枝通道,对待剪枝网络模型进行剪枝。
[0135]
又一方面,本技术实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
[0136]
获取待剪枝网络模型中不同预设剪枝策略对应的待剪枝通道集,待剪枝通道集中不同待剪枝通道表征使用对应预设剪枝策略获取的不重要的通道;
[0137]
基于待剪枝通道集,确定目标待剪枝通道;
[0138]
基于目标待剪枝通道,对待剪枝网络模型进行剪枝。
[0139]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0140]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0141]
最后应说明的是,以上实施方式仅用于说明本技术,而非对本技术的限制。尽管参照实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,对本技术的技术方案进行各种组合、修改或者等同替换,都不脱离本技术技术方案的精神和范围,均应涵盖在本技术的权利要求范围中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1