掌桥专利:专业的专利平台
掌桥专利
首页

网络压缩方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:59:31


网络压缩方法、装置、计算机设备和存储介质

技术领域

本申请涉及神经网络压缩技术领域,特别是涉及一种网络压缩方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着神经网络在图像分类、目标检测、语义分割等领域的发展,神经网络的规模也在不断增加,对硬件的运算能力、存储和功耗都提出了严峻的挑战。为有效降低网络冗余,一些研究开始采用剪枝、量化、权重分解等网络压缩方法对神经网络进行压缩。

现有的基于剪枝的网络压缩方法,例如结构化剪枝方法,是通过剪去网络中的结构(比如通道和滤波器等)来增加网络压缩率的。但是,这种结构化剪枝方法进行剪枝的粒度较大,剪枝的自由度较差,导致压缩后的神经网络的准确度也会下降。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高压缩后网络的准确度的网络压缩方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种网络压缩方法。所述方法包括:

对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;

通过所述样本图像,对目标检测网络进行训练,得到所述预训练的目标检测网络;

根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;

对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;

对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;

根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

在其中一个实施例中,对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络,包括:

根据教师网络与学生网络之间的差异,得到所述教师网络与所述学生网络之间的蒸馏损失值;所述教师网络和所述学生网络为所述预训练的目标检测网络进行剪枝处理过程中不同时期的剪枝后的目标检测网络;

根据标签值与所述学生网络的预测值之间的差异,得到所述学生网络的分类损失值;

根据所述蒸馏损失值和所述分类损失值,得到所述学生网络的稀疏蒸馏损失值;

通过所述稀疏蒸馏损失值,对所述学生网络进行知识蒸馏训练,得到所述蒸馏后的目标检测网络。

在其中一个实施例中,对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络,包括:

将所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数,输入至网络参数融合模型,得到融合后的网络参数;

根据所述融合后的网络参数,得到所述融合后的目标检测网络。

在其中一个实施例中,根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络,包括:

根据所述预训练的目标检测网络中各网络参数的重要度,对所述各网络参数进行排序处理,得到所述各网络参数对应的排序后参数;

根据所述排序后参数和所述预训练的目标检测网络的参数剪枝率,确定所述预训练的目标检测网络的参数剪枝阈值;

根据所述参数剪枝阈值,对所述预训练的目标检测网络中的网络参数进行掩码处理,得到所述剪枝后的目标检测网络。

在其中一个实施例中,根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络,包括:

根据所述融合后的目标检测网络中各滤波器的重要度,对所述各滤波器进行排序处理,得到所述各滤波器对应的排序后滤波器;

根据预设的滤波器剪枝率和所述排序后滤波器,确定所述融合后的目标检测网络的滤波器剪枝阈值;

根据所述滤波器剪枝阈值,对所述融合后的目标检测网络中的滤波器进行剪枝处理,得到所述压缩后的目标检测网络。

在其中一个实施例中,在根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络之后,还包括:

通过所述样本图像,对所述压缩后的目标检测网络进行训练,得到训练完成的目标检测模型。

第二方面,本申请还提供了一种目标检测方法。所述方法包括:

获取训练完成的目标检测模型;其中,所述训练完成的目标检测模型通过如第一方面所述的网络压缩方法处理得到;

通过所述训练完成的目标检测模型对采集的目标图像进行目标检测处理,得到所述目标图像的目标检测结果。

第三方面,本申请还提供了一种网络压缩装置。所述装置包括:

图像标注模块,用于对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;

网络预训练模块,用于通过所述样本图像,对目标检测网络进行训练,得到所述预训练的目标检测网络;

网络剪枝模块,用于根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;

网络蒸馏模块,用于对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;

网络融合模块,用于对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;

滤波器剪枝模块,用于根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;

通过所述样本图像,对目标检测网络进行训练,得到所述预训练的目标检测网络;

根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;

对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;

对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;

根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;

通过所述样本图像,对目标检测网络进行训练,得到所述预训练的目标检测网络;

根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;

对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;

对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;

根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;

通过所述样本图像,对目标检测网络进行训练,得到所述预训练的目标检测网络;

根据所述预训练的目标检测网络中各网络参数的重要度,对所述预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;

对所述剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;

对所述剪枝后的目标检测网络的网络参数和所述蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;

根据所述融合后的目标检测网络中各滤波器的重要度,对所述融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

上述网络压缩方法、装置、计算机设备、存储介质和计算机程序产品,对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;通过样本图像,对目标检测网络进行训练,得到预训练的目标检测网络;根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;对剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。采用本方法,在利用稀疏蒸馏保持目标检测网络的稀疏度的同时,还通过融合剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数,来恢复目标检测网络被剪枝的网络参数,进而还通过滤波器剪枝使目标检测网络兼具了结构化剪枝和非结构化剪枝的优点,在提高了网络精度的同时还提高了网络的加速效果。

附图说明

图1为一个实施例中网络压缩方法的流程示意图;

图2为一个实施例中融合网络中每层L0范数比例的示意图;

图3为一个实施例中对剪枝后的目标检测网络进行稀疏蒸馏处理步骤的流程示意图;

图4为一个实施例中网络参数融合的示意图;

图5为另一个实施例中目标检测方法的流程示意图;

图6为另一个实施例中网络压缩方法的流程示意图;

图7为一个实施例中网络压缩装置的结构框图;

图8为一个实施例中目标检测装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。

在一个实施例中,如图1所示,提供了一种网络压缩方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:

步骤S101,对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像。

具体地,终端可以预先采集图像,以人工分拣的方式,挑选出所需进行目标检测的图像,得到候选图像。使用标注工具对候选图像中的目标设备及其状态(比如正常或缺陷)进行标注,得到标记后的样本图像;其中,目标设备可以是电网场景中的电力设备。

步骤S102,通过样本图像,对目标检测网络进行训练,得到预训练的目标检测网络。

其中,目标检测网络是指用于在图像中定位和识别目标设备及其状态(比如正常或缺陷)的模型。

具体地,终端使用标注过的样本图像对目标检测网络进行训练,以得到预训练的目标检测网络(简称为预训练网络)。在实际应用中,终端可以使用在ImageNet数据集上预训练的ResNet网络作为主干网络,使用样本图像作为数据集,对待训练的目标检测网络进行预训练,进而终端得到预训练的目标检测网络。

步骤S103,根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络。

终端对预训练的目标检测网络进行非结构化的全局剪枝处理。具体地,终端将预训练网络中的网络参数输入至重要度评估模型,以通过重要度评估模型评估预训练网络中各网络参数的重要度;根据预训练网络中各网络参数的重要度,将所有网络参数按照升序进行排序;根据网络参数的排序结果确定参数剪枝阈值,进而将重要度不及参数剪枝阈值的网络参数进行全局剪枝处理,则终端得到剪枝后的目标检测网络(简称为剪枝网络)。

步骤S104,对剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络。

其中,稀疏蒸馏处理是指使目标检测网络在知识蒸馏过程中还保持一定的稀疏度,使得到的蒸馏后的目标检测网络在经过后续的融合和滤波器剪枝步骤之后还能够尽量保持模型精度不下降的处理方式。

终端将不同迭代时期的剪枝网络来分别作为教师网络和学生网络,以进行稀疏蒸馏处理。具体地,终端可以在迭代时,使用剪枝处理过程中上一迭代阶段生成的剪枝网络作为教师网络,使用当前迭代阶段生成的剪枝网络作为学生网络;其中,教师网络和学生网络均是小型网络,以节省终端进行知识蒸馏的训练成本。在对教师网络和学生网络进行知识蒸馏的过程中,还可以在知识蒸馏的损失函数中加入正则化项,以使学生网络在蒸馏的过程中保持一定的稀疏度,则终端得到蒸馏后的目标检测网络(简称为蒸馏网络)。在保证蒸馏网络的精度的同时,还能有效地帮助蒸馏网络适应滤波器剪枝操作,进而在滤波器剪枝后继续保持处理后的目标检测网络的精度。

步骤S105,对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络。

具体地,终端在得到了剪枝率更高的当前阶段的剪枝网络,以及通过前一阶段的剪枝网络对当前阶段的剪枝网络对稀疏蒸馏处理得到了当前阶段的蒸馏网络之后,可以将当前阶段的剪枝网络和当前阶段的蒸馏网络进行融合,得到当前阶段的融合后的目标检测网络(简称为融合网络)。在融合过程中,可以借助蒸馏网络的信息弥补剪枝网络中被错误剪去的网络参数,从而使得到的融合网络具有较高的精度。与剪枝后的网络参数不再进行更新的硬剪枝相比,本申请上述步骤S103中被剪枝的网络参数在后续步骤中仍能恢复并进行参数更新,因此可以称之为软剪枝。

步骤S106,根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

全局剪枝、稀疏蒸馏和融合处理经过多轮迭代,在结束之后,终端得到了非结构化剪枝的融合网络,此时的融合网络中90%的网络参数已被置为零,假设定义L0范数比例为融合网络中每层值为零的网络参数占总体数量的比例,图2为融合网络中每层L0范数比例的示意图,可以看出,在融合网络的第一层以及最后四层,为零的网络参数所占的比例是非常高的(超过85%),如果对此时得到的融合网络进行滤波器剪枝,网络精度所受到的影响可以最小化。具体地,终端通过滤波器评估模型,确定融合网络中的各滤波器的重要度;进而根据融合网络中各滤波器的重要度,对融合网络进行结构化的滤波器剪枝,即将重要度不及滤波器剪枝阈值的滤波器从融合网络中剪去,最终终端得到压缩后的目标检测网络(简称为压缩网络)。

上述网络压缩方法中,对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像;通过样本图像,对目标检测网络进行训练,得到预训练的目标检测网络;根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络;对剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络;对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络;根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。采用本方法,在利用稀疏蒸馏保持目标检测网络的稀疏度的同时,还通过融合剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数,来恢复目标检测网络被剪枝的网络参数,进而还通过滤波器剪枝使目标检测网络兼具了结构化剪枝和非结构化剪枝的优点,提高了网络精度的同时还提高了网络的加速效果。

在一个实施例中,如图3所示,上述步骤S104,对剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络,具体包括如下内容:

步骤S301,根据教师网络与学生网络之间的差异,得到教师网络与学生网络之间的蒸馏损失值;教师网络和学生网络为预训练的目标检测网络进行剪枝处理过程中不同时期的剪枝后的目标检测网络。

具体地,终端可以根据教师网络与学生网络之间的差异,确定教师网络与学生网络之间的KL散度;将KL散度作为教师网络与学生网络之间的蒸馏损失值,以通过KL散度衡量教师网络与学生网络之间的区别,并且KL散度作为损失时优化过程是凸的,即容易使学生网络收敛到最优解。

在实际应用中,教师网络与学生网络之间的蒸馏损失值L

式中,t表示教师网络;s表示学生网络;使用p(x

式中,T为控制教师网络对学生网络影响程度的超参数;一般来说,T越大教师网络对学生网络的影响就越大,但当T趋向于无穷时,教师网络对学生网络的影响就趋向于无。

步骤S302,根据标签值与学生网络的预测值之间的差异,得到学生网络的分类损失值。

具体地,终端可以根据数据集的标签值与学生网络的预测值之间的差异,确定学生网络的交叉熵(Cross Entropy),将交叉熵作为学生网络的分类损失值。

在实际应用中,学生网络的分类损失值可以通过如下所示的公式(3)进行表示:

式中,y表示数据集的标签值;

步骤S303,根据蒸馏损失值和分类损失值,得到学生网络的稀疏蒸馏损失值。

除了使用上述的蒸馏损失值和分类损失值来构建稀疏蒸馏损失函数以外,还可以加入正则化,来帮助学生网络在知识蒸馏过程中保持一定的稀疏度。具体地,终端可以结合蒸馏损失值、分类损失值和正则化项,来构建知识蒸馏的损失函数,从而通过该损失函数计算得到学生网络的稀疏蒸馏损失值。

在实际应用中,学生网络的稀疏蒸馏损失值可以通过如下所示的公式(4)进行表示:

式中,α为用于平衡蒸馏损失值与分类损失值的超参数,经实验证明,α取0.6时具有最佳的效果;λ||W||

步骤S304,通过稀疏蒸馏损失值,对学生网络进行知识蒸馏训练,得到蒸馏后的目标检测网络。

具体地,终端利用稀疏蒸馏损失值,对学生网络进行多轮的知识蒸馏训练,最终得到蒸馏后的目标检测网络。

本实施例中,根据教师网络与学生网络之间的差异,得到教师网络与学生网络之间的蒸馏损失值;根据标签值与学生网络的预测值之间的差异,得到学生网络的分类损失值;进而根据蒸馏损失值、分类损失值以及正则化项,得到学生网络的稀疏蒸馏损失值;最后通过稀疏蒸馏损失值,对学生网络进行知识蒸馏训练,得到蒸馏后的目标检测网络;通过蒸馏损失值增加教师网络与学生网络之间的相关性,以帮助学生网络的概率分布更接近帮助其训练的教师网络,从而得到更好的网络精度;此外,还利用正则化项使学生网络在知识蒸馏过程中还保持一定的稀疏度,使得到的蒸馏后的目标检测网络在经过后续的融合和滤波器剪枝步骤之后还能够尽量保持模型精度不下降,提高了蒸馏后的目标检测网络和压缩后的目标检测网络的网络精度。

在一个实施例中,上述步骤S105,对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络,具体包括如下内容:将剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数,输入至网络参数融合模型,得到融合后的网络参数;根据融合后的网络参数,得到融合后的目标检测网络。

图4为网络参数融合的示意图,如图4所示网络参数可以是网络卷积核。基于彩票假设理论,所要寻找的最优目标检测网络会同时存在于剪枝网络和蒸馏网络中,进而终端通过融合剪枝网络和蒸馏网络来加强网络中相似的网络参数、同时抑制网络中不相似的网络参数,来找到这个最优的目标检测网络。具体地,终端通过网络参数的融合来实现剪枝网络和蒸馏网络的融合。终端将剪枝网络的网络参数和蒸馏网络的网络参数,输入至网络参数融合模型,得到融合后的网络参数,进而由融合后的网络参数得到融合网络。其中,融合网络的网络结构与剪枝网络的网络结构和蒸馏网络的网络结构相同。

进一步地,将当前阶段的融合网络与当前阶段的剪枝网络和当前阶段的蒸馏网络进行比较,可以看出当前阶段的键值网络和当前阶段的蒸馏网络中更相似的网络参数将更偏离零,而更不相似的网络参数将更贴近零,这使得相似的网络参数的重要性得到了提升,而不相似的网络的参数的重要性得到了抑制,方便在后续阶段的剪枝处理中减去不相似的网络参数而保留相似的网络参数,从而提升了对目标检测网络的键值效果。以图4中的融合网络为例,对融合网络的网络参数的绝对值进行排序,得到排序后的网络参数为(2.8,2.7,1.6,1.5,1.4,1.3,0.6,0.3,0),若下一阶段的剪枝率为50%,则其参数剪枝阈值为1.4,所有绝对值小于1.4的网络参数(即-1.3,-0.6,0.3,0)的重要度都低于它,因此这些网络参数将在下一阶段被剪去,而绝对值大于它的网络参数(即2.8,2.7,1.6,1.5)将被保留。

在实际应用中,网络参数融合模型可以通过如下所示的公式(5)进行表示:

式中,W

从公式(5)可以看出,当W

此外,若被剪枝网络中剪去的网络参数并不重要,则蒸馏网络对其的弥补效果也非常有限,如图4中融合模型卷积核的第一行第三列;若被剪去的网络参数较为重要,需要对其进行弥补,将会得到一个来自蒸馏网络的被抑制的弥补值,如图4中融合网络卷积核的第三行第二列,这就控制了蒸馏网络对剪枝网络的影响,以避免剪枝操作受到过大的影响。当剪枝网络的网络参数被剪去并置为零时,融合网络卷积核的计算方式就由公式(5)退化为公式(6)。

在本实施例中,通过融合剪枝网络的网络参数和蒸馏网络的网络参数,得到融合后的目标检测网络,基于彩票假设理论实现了剪枝网络和蒸馏网络的网络参数融合,同时对融合网络中相似的网络参数进行了加强,对网络中不相似的网络参数进行了抑制,使得网络在后续的剪枝处理不断提升剪枝精度,从而大大提高了得到的融合网络的网络精度。

在一个实施例中,上述步骤S103,根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络,具体包括如下内容:根据预训练的目标检测网络中各网络参数的重要度,对各网络参数进行排序处理,得到各网络参数对应的排序后参数;根据排序后参数和预训练的目标检测网络的参数剪枝率,确定预训练的目标检测网络的参数剪枝阈值;根据参数剪枝阈值,对预训练的目标检测网络中的网络参数进行掩码处理,得到剪枝后的目标检测网络。

其中,参数剪枝率用于表示目标检测网络中需要减去的网络参数的比例。参数剪枝阈值用于表示网络参数的重要度的阈值。

具体地,终端可使用L1范数作为评估预训网络中各网络参数的重要度的指标。其中,预训练的目标检测网络中各网络参数的重要度I

I

式中,W

在得到预训练网络中各网络参数的重要度I

thres

式中,thres

进一步地,终端在得到参数剪枝阈值之后,生成掩码mask,掩码mask的形状与预训练网络中所有的网络参数一致,掩码的约束为mask∈{0,1}

式中,k表示当前阶段的是第k轮迭代。

在本实施例中,在确定预训练网络中各网络参数的重要度之后,可以利用重要度对各网络参数进行排序,以便基于预训练网络的参数剪枝率和排序后参数确定预训练网络的参数剪枝阈值;进而通过掩码,将预训练网络中重要度不及参数剪枝阈值的网络参数进行剪枝,得到剪枝后的目标检测网络,通过非结构化的全局剪枝来提升目标检测网络的网络压缩率,并且还能较好的保持目标检测网络的处理精度。

在一个实施例中,上述步骤S106,根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络,具体包括如下步骤:根据融合后的目标检测网络中各滤波器的重要度,对各滤波器进行排序处理,得到各滤波器对应的排序后滤波器;根据预设的滤波器剪枝率和排序后滤波器,确定融合后的目标检测网络的滤波器剪枝阈值;根据滤波器剪枝阈值,对融合后的目标检测网络中的滤波器进行剪枝处理,得到压缩后的目标检测网络。

其中,滤波器剪枝率可以是预先设置的。与参数剪枝不同,滤波器剪枝属于结构化剪枝,而参数剪枝属于非结构化剪枝。滤波器剪枝阈值用于表示滤波器的重要度的阈值。

由上述可知,迭代多轮之后得到的融合网络中值为0的网络参数的占比非常高,此时对融合网络进行滤波器剪枝,网络精度所受到的影响可以最小化。具体地,终端可以使用L2范数作为评估融合网络中各滤波器的重要度的指标,滤波器的重要度可以通过如下所示的公式(10)进行表示:

式中,E

在得到融合网络中每个滤波器的重要度E={E

thres

式中,thres

在得到滤波器剪枝阈值之后,将重要度不及滤波器剪枝阈值的滤波器从融合网络中剪去,得到压缩后的目标检测网络。

在本实施例中,在确定融合网络中各滤波器的重要度之后,可以利用重要度对各滤波器进行排序,以便基于预设滤波器剪枝率和排序后滤波器,确定融合网络的滤波器剪枝阈值;进而将融合网络中重要度不及滤波器剪枝阈值的滤波器剪去,得到压缩后的目标检测网络,在进一步简化了目标检测网络的模型结构的同时,还能最小化降低对目标检测网络的网络性能影响,使得压缩后的目标检测网络兼具结构了结构化剪枝和非结构化剪枝的优点,在提高了网络精度的同时还提高了网络的加速效果。

在一个实施例中,在上述步骤S106,根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络之后,还包括:通过样本图像,对压缩后的目标检测网络进行训练,得到训练完成的目标检测模型。

具体地,上述实施例中得到压缩后的目标检测网络不建议直接应用在目标检测场景中,而是使用样本图像再次对压缩后的目标检测网络进行几轮的微调训练之后,将所得到的训练完成的目标检测模型应用在目标检测场景中。

在本实施例中,利用预先标注的样本图像,对得到的压缩后的目标检测网络再次进行训练,进一步提高了训练完成的目标检测模型的模型精度,从而大大提高了训练完成的目标检测模型输出的目标检测结果的准确度。

在一个实施例中,如图5所示,提供了一种目标检测方法,以该方法应用于终端为例进行说明,包括以下步骤:

步骤S501,获取训练完成的目标检测模型;其中,训练完成的目标检测模型通过上述网络压缩方法处理得到。

步骤S502,通过训练完成的目标检测模型对采集的目标图像进行目标检测处理,得到目标图像的目标检测结果。

具体地,先通过上述网络压缩方法处理获取训练完成的目标检测模型,在此不再赘述训练完成的目标检测模型的获取过程。采集需要进行目标检测处理的目标图像之后,可以通过训练完成的目标检测模型对目标图像进行目标检测处理,输出目标图像的目标检测结果。

在本实施例中,获取训练完成的目标检测模型,通过训练完成的目标检测模型对采集的目标图像进行目标检测处理,得到目标图像的目标检测结果。采用本方法,通过兼具了结构化剪枝和非结构化剪枝的优点、且经过再次多轮训练微调的训练完成的目标检测模型进行目标检测处理,大大提高了目标检测结果的准确度。

在一个实施例中,如图6所示,提供了另一种网络压缩方法,以该方法应用于终端为例进行说明,包括以下步骤:

步骤S601,对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像。

步骤S602,通过样本图像,对目标检测网络进行训练,得到预训练的目标检测网络。

步骤S603,根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络。

步骤S604,根据教师网络与学生网络之间的差异,得到教师网络与学生网络之间的蒸馏损失值;教师网络和学生网络为预训练的目标检测网络进行剪枝处理过程中不同时期的剪枝后的目标检测网络。

步骤S605,根据标签值与学生网络的预测值之间的差异,得到学生网络的分类损失值。

步骤S606,根据蒸馏损失值和分类损失值,得到学生网络的稀疏蒸馏损失值;通过稀疏蒸馏损失值,对学生网络进行知识蒸馏训练,得到蒸馏后的目标检测网络。

步骤S607,对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络。

步骤S608,根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

步骤S609,通过样本图像,对压缩后的目标检测网络进行训练,得到训练完成的目标检测模型。

上述网络压缩方法,能够实现以下有益效果:在利用稀疏蒸馏保持目标检测网络的稀疏度的同时,还通过融合剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数,来恢复目标检测网络被剪枝的网络参数,进而还通过滤波器剪枝使目标检测网络兼具了结构化剪枝和非结构化剪枝的优点,在提高了网络精度的同时还提高了网络的加速效果。

为了更清晰阐明本公开实施例提供的网络压缩方法,以下以一个具体的实施例对上述网络压缩方法进行具体说明。提供了又一种网络压缩方法,可以应用于终端,具体包括如下内容:

步骤1:预训练需要进行压缩的目标检测模型。

步骤2:对目标检测网络进行非结构化剪枝:对目标检测网络中的网络参数的重要性进行评估并剪去相对不重要的参数。

步骤3:对目标检测网络进行稀疏蒸馏、融合以及滤波器剪枝压缩。

步骤4:对压缩后的目标检测网络进行微调,微调后所得的目标检测网络即可投入目标检测场景中使用。

在本实施例中,通过对目标检测网络进行非结构化的全局剪枝并使用前一阶段的剪枝网络对当前阶段的剪枝网络进行稀疏蒸馏,在保持了网络稀疏度的同时,还能够借助前一阶段剪枝网络的启发式信息来帮助剪枝网络恢复被错误剪去的参数,再将二者相融合得到当前阶段的融合网络,如此迭代数轮得到非结构化剪枝的融合网络,然后对融合网络进行结构化的滤波器剪枝,使得到的压缩网络能够结合结构化剪枝及非结构化剪枝的优点,从而能够兼顾网络的精度及加速效果。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的网络压缩方法的网络压缩装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个网络压缩装置实施例中的具体限定可以参见上文中对于网络压缩方法的限定,在此不再赘述。

在一个实施例中,如图7所示,提供了一种网络压缩装置700,包括:

图像标注模块701,用于对采集的图像中的正常设备和缺陷设备进行标注,得到样本图像。

网络预训练模块702,用于通过样本图像,对目标检测网络进行训练,得到预训练的目标检测网络。

网络剪枝模块703,用于根据预训练的目标检测网络中各网络参数的重要度,对预训练的目标检测网络进行剪枝处理,得到剪枝后的目标检测网络。

网络蒸馏模块704,用于对剪枝后的目标检测网络进行稀疏蒸馏处理,得到蒸馏后的目标检测网络。

网络融合模块705,用于对剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数进行融合,得到融合后的目标检测网络。

滤波器剪枝模块706,用于根据融合后的目标检测网络中各滤波器的重要度,对融合后的目标检测网络进行滤波器剪枝,得到压缩后的目标检测网络。

在一个实施例中,网络蒸馏模块703,还用于根据教师网络与学生网络之间的差异,得到教师网络与学生网络之间的蒸馏损失值;教师网络和学生网络为预训练的目标检测网络进行剪枝处理过程中不同时期的剪枝后的目标检测网络;根据标签值与学生网络的预测值之间的差异,得到学生网络的分类损失值;根据蒸馏损失值和分类损失值,得到学生网络的稀疏蒸馏损失值;通过稀疏蒸馏损失值,对学生网络进行知识蒸馏训练,得到蒸馏后的目标检测网络。

在一个实施例中,网络融合模块704,还用于将剪枝后的目标检测网络的网络参数和蒸馏后的目标检测网络的网络参数,输入至网络参数融合模型,得到融合后的网络参数;根据融合后的网络参数,得到融合后的目标检测网络。

在一个实施例中,网络剪枝模块702,还用于根据预训练的目标检测网络中各网络参数的重要度,对各网络参数进行排序处理,得到各网络参数对应的排序后参数;根据排序后参数和预训练的目标检测网络的参数剪枝率,确定预训练的目标检测网络的参数剪枝阈值;根据参数剪枝阈值,对预训练的目标检测网络中的网络参数进行掩码处理,得到剪枝后的目标检测网络。

在一个实施例中,滤波器剪枝模块705,还用于根据融合后的目标检测网络中各滤波器的重要度,对各滤波器进行排序处理,得到各滤波器对应的排序后滤波器;根据预设的滤波器剪枝率和排序后滤波器,确定融合后的目标检测网络的滤波器剪枝阈值;根据滤波器剪枝阈值,对融合后的目标检测网络中的滤波器进行剪枝处理,得到压缩后的目标检测网络。

在一个实施例中,网络压缩装置700还包括网络微调模块,用于通过样本图像,对压缩后的目标检测网络进行训练,得到训练完成的目标检测模型。

在一个实施例中,如图8所示,提供了一种目标检测装置800,包括:

模型获取模块801,用于获取训练完成的目标检测模型。

目标检测模块802,用于通过训练完成的目标检测模型对采集的目标图像进行目标检测处理,得到目标图像的目标检测结果。

上述网络压缩装置和目标检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种网络压缩方法和一种目标检测方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 视频处理方法、装置、计算机设备和存储介质
  • 基于视频处理方法及装置、视频设备及存储介质
  • 文本处理方法、装置、计算机可读存储介质和计算机设备
  • 数据处理方法、装置、计算机设备及计算机可读存储介质
  • 文本处理方法、装置、设备、计算机设备和存储介质
  • 视频编码、视频数据处理方法、装置、计算机设备和存储介质
  • 视频序列处理方法、视频序列处理装置、电子设备及计算机可读存储介质
技术分类

06120116517758