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

基于目标检测模型的剪枝方法、装置和存储介质

文献发布时间:2023-06-19 11:52:33


基于目标检测模型的剪枝方法、装置和存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种基于目标检测模型的剪枝方法、装置和存储介质。

背景技术

近年来,目标检测模型通过利用大量数据的大规模网络学习,在分类、检测和分割等计算机视觉任务中取得了显着的成功。但是,目标检测模型通常会占用大量计算资源和存储空间,阻碍了其在移动和嵌入式等资源受限型设备上的部署。基于目标检测模型yolov3进行行人检测时,由于yolov3算法计算量大、参数多,放入边缘设备时会导致运行效率较低。

发明内容

为了解决上述技术问题,本申请提供了一种基于目标检测模型的剪枝方法、装置和存储介质。

第一方面,本实施例提供了一种基于目标检测模型的剪枝方法,所述方法包括:

训练目标检测模型;

确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;

对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;

裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;

对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

可选地,所述对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型,包括:

对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束;

令所述目标检测模型中的剪枝目标按照稀疏因子调整参数,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型;

其中,所述稀疏因子在稀疏训练时按照线性关系逐渐减小。

可选地,所述剪枝指标包括第一评判指标和第二评判指标,所述方法还包括:

将所述剪枝目标中所有BN层对应的缩放系数按照从大到小排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,

将所述筛选出的每个缩放系数对应的卷积核的权重进行绝对值求和,每个缩放系数对应一个绝对值之和,再将所有的绝对值之和按照从大到小的顺序排序,按照剪枝率将排序后的绝对值之和由小至大筛选出作为所述第二评判指标;

所述裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型,包括:

裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型。

可选地,所述确定所述目标检测模型中的剪枝目标,包括:

选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道;

所述对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型,包括:

对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型,包括:

裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

可选地,所述确定所述目标检测模型中的剪枝目标,包括:

选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道;

所述对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型,包括:

对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型,包括:

裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

可选地,所述确定所述目标检测模型中的剪枝目标,包括:

选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;

所述对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型,包括:

对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型,包括:

当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

可选地,所述确定所述目标检测模型中的剪枝目标,包括:

选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;

所述对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型,包括:

对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型,包括:

裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

第二方面,本实施例提供了一种基于目标检测模型的剪枝装置,所述装置包括:

训练模块,用于训练目标检测模型;

目标确定模块,用于确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;

稀疏模块,用于对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;

剪枝模块,用于裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;

恢复模块,用于对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

训练目标检测模型;

确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;

对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;

裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;

对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

训练目标检测模型;

确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;

对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;

裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;

对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

上述基于目标检测模型的剪枝方法、装置和存储介质,所述方法包括:训练目标检测模型;确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。根据上述方法对目标检测模型进行剪枝,降低了对目标检测时的算法复杂度,解决了边缘设备进行目标检测时性能较差的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中一种基于目标检测模型的剪枝方法的流程示意图;

图2为一个实施例中一种基于目标检测模型的剪枝装置的结构示意图;

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

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为一个实施例中一种基于目标检测模型的剪枝方法的流程示意图,在一个实施例中,本实施例提供了一种基于目标检测模型的剪枝方法。参照图1,该基于目标检测模型的剪枝方法具体包括如下步骤:

步骤S110,训练目标检测模型。

在本实施例中,所述目标检测模型为yolov3目标检测模型,利用yolov3目标检测模型对不同的移动目标进行识别检测,移动目标包括但不仅限于行人、移动车量、移动的动植物等。

步骤S120,确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层。

在本实施例中,选择所述目标检测模型中不同的网络结构作为剪枝目标,可以选择所述目标检测模型中的卷积通道作为所述目标剪枝通道,也可以选择所述目标检测模型中的卷积层作为所述目标剪枝层,所述卷积层携带有BN层。

步骤S130,对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型。

在本实施例中,对所述目标检测模型中包含所述目标剪枝通道或目标剪枝层的网络结构进行稀疏训练,使得所述目标检测模型朝着结构性稀疏的方向调整参数,得到稀疏检测模型,所述稀疏检测模型便于观察计算适合裁减的卷积通道或卷积层。

步骤S140,裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型。

在本实施例中,对经过稀疏训练得到的稀疏检测模型进行剪枝,裁剪所述目标剪枝通道中满足剪枝指标的卷积通道,裁剪所述目标剪枝层中满足剪枝指标的卷积层,得到剪枝模型。

步骤S150,对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

在本实施例中,对所述剪枝模型进行再训练,使剪枝模型中经过稀疏训练的网络参数由稀疏性状态恢复至正常分布状态,提高了剪枝模型的算法精度,得到低存储占用、具有一定精度的目标检测模型,将剪枝后的目标检测模型与其他压缩方法(如量化、低秩分解方法)结合使用,可以进一步提高剪枝率,减少计算量;将剪枝后的目标检测模型与其他优化加速方法(如TensorRT)结合使用,可以进一步提升计算速度。

具体地,训练yolov3目标检测模型,利用yolov3目标检测模型对不同的移动目标进行识别检测,移动目标包括但不仅限于行人、移动车量、移动的动植物等。选择所述目标检测模型中不同的网络结构作为剪枝目标,可以选择所述目标检测模型中的卷积通道作为所述目标剪枝通道,也可以选择所述目标检测模型中的卷积层作为所述目标剪枝层。对所述目标检测模型中包含所述目标剪枝通道或目标剪枝层的网络结构进行稀疏训练,使得所述目标检测模型朝着结构性稀疏的方向调整参数,得到稀疏检测模型,所述稀疏检测模型便于观察计算适合裁减的卷积通道或卷积层。对经过稀疏训练得到的稀疏检测模型进行剪枝,裁剪所述目标剪枝通道中满足剪枝指标的卷积通道,裁剪所述目标剪枝层中满足剪枝指标的卷积层,得到剪枝模型。对所述剪枝模型进行再训练,使剪枝模型中经过稀疏训练的网络参数由稀疏性状态恢复至正常分布状态,提高了剪枝模型的算法精度,得到低存储占用、具有一定精度的目标检测模型,将剪枝后的目标检测模型与其他压缩方法(如量化、低秩分解方法)结合使用,可以进一步提高剪枝率,减少计算量;将剪枝后的目标检测模型与其他优化加速方法(如TensorRT)结合使用,可以进一步提升计算速度。

在一个实施例中,对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束;令所述目标检测模型中的剪枝目标按照稀疏因子调整参数,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型;其中,所述稀疏因子在稀疏训练时按照线性关系逐渐减小。

具体地,对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束,所述缩放系数为γ,令所述目标检测模型中的剪枝目标按照稀疏因子S调整参数,在稀疏训练开始时,所述稀疏因子值较大(如0.01),数值较大的稀疏因子使参数稀疏较快但精度下降的快,数值较大的稀疏因子使参数稀疏缓慢但精度下降的慢,因此在稀疏训练过程中稀疏因子随着稀疏时间的推移按照线性关系逐渐减小,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型,当大部分γ无限接近于零时,则停止稀疏训练。

在一个实施例中,所述剪枝指标包括第一评判指标和第二评判指标,将所述剪枝目标中所有BN层对应的缩放系数按照从大到小排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,将所述筛选出的每个缩放系数对应的卷积核的权重进行绝对值求和,每个缩放系数对应一个绝对值之和,再将所有的绝对值之和按照从大到小的顺序排序,按照剪枝率将排序后的绝对值之和由小至大筛选出作为所述第二评判指标;裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型。

具体地,所述剪枝指标包括第一评判指标和第二评判指标,将所述剪枝目标中所有BN层对应的缩放系数γ按照从大到小的排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,假设剪枝率为60%,则将排序结果中后60%的γ筛选出作为第一评判指标,即为筛选γ数值小的作为第一评判指标;筛选出排序结果中后60%的γ,将筛选出的每一个γ对应的卷积核的权重Weights进行绝对值求和,每一个γ对应一个绝对值之和W,再将每个γ对应的绝对值之和W按照从大到小的顺序排序,将排序结果中后60%的绝对值之和W筛选出作为第二评判指标,即为筛选绝对值之和W数值小的作为第二评判指标。当所述目标剪枝通道或目标剪枝层中存在同时满足第一评判指标和第二评判指标的卷积通道和卷积层时,则对其进行剪枝,得到剪枝后的目标检测模型,即为剪枝模型。

在一个实施例中,选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

具体地,选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道,避免剪枝后shortcut层的两个输入维度不一致,对shortcut层直连的卷积层不进行剪枝,避免了维度处理问题;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

具体地,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道,对整个目标检测模型的卷积通道进行剪枝,进一步提高了剪枝率;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标检测模型中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

具体地,选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;对所有BN层对应的γ和W进行排序,裁剪γ和W都为最小的卷积层;当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,即同一卷积层的大部分卷积通道同时满足第一评判指标和第二评判指标时,裁剪该卷积层,得到剪枝模型。当所述裁剪的卷积层为所述目标检测模型中shortcut层时,裁剪该卷积层的同时裁剪与该shortcut层相连的两个卷积层,得到剪枝模型,yolov3目标检测模型中有23处shortcut层,每剪一个shortcut层就是剪掉3个网络结构层,剪掉shortcut层的同时也会剪掉与shortcut层相连的两个卷积层,yolov3目标检测模型中最多有69个网络结构层的剪层空间。

在一个实施例中,选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

具体地,选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。对目标剪枝通道和目标剪枝层同时进行剪枝,同时压缩了目标检测模型的宽度和深度,以达到更高效的剪枝。

图1为一个实施例中一种基于目标检测模型的剪枝方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

图2为一个实施例中一种基于目标检测模型的剪枝装置的结构示意图,在一个实施例中,参照图2,提供了一种基于目标检测模型的剪枝装置,所述装置包括:

训练模块210,用于训练目标检测模型;

目标确定模块220,用于确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;

稀疏模块230,用于对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;

剪枝模块240,用于裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;

恢复模块250,用于对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

在一个实施例中,所述稀疏模块230包括:

约束单元,用于对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束;

调整单元,用于令所述目标检测模型中的剪枝目标按照稀疏因子调整参数,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型;

其中,所述稀疏因子在稀疏训练时按照线性关系逐渐减小。

在一个实施例中,所述剪枝指标包括第一评判指标和第二评判指标,所述装置还包括:

第一评判装置,用于将所述剪枝目标中所有BN层对应的缩放系数按照从大到小排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,

第二评判装置,用于将所述筛选出的每个缩放系数对应的卷积核的权重进行绝对值求和,每个缩放系数对应一个绝对值之和,再将所有的绝对值之和按照从大到小的顺序排序,按照剪枝率将排序后的绝对值之和由小至大筛选出作为所述第二评判指标;

所述剪枝模块240包括:

剪枝单元,用于裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型。

在一个实施例中,所述目标确定模块220包括:

第一通道筛选单元,用于选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道;

所述稀疏模块230包括:

第一稀疏单元,用于对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪模块包括:

第一裁剪单元,用于裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,所述目标确定模块220包括:

第二通道筛选单元,用于选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道;

所述稀疏模块230包括:

第二稀疏单元,用于对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪模块包括:

第二裁剪单元,用于裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,所述目标确定模块220包括:

第三通道筛选单元,用于选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;

所述稀疏模块230包括:

第三稀疏单元,用于对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪模块包括:

第三裁剪单元,用于当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

在一个实施例中,所述目标确定模块220包括:

第四通道筛选单元,用于选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;

所述稀疏模块230包括:

第四稀疏单元,用于对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;

所述裁剪模块包括:

第四裁剪单元,用于裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

图3为一个实施例中计算机设备的内部结构图。如图3所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于目标检测模型的剪枝方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于目标检测模型的剪枝方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

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

在一个实施例中,本申请提供的基于目标检测模型的剪枝装置可以实现为一种计算机程序的形式,计算机程序可在如图3所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于目标检测模型的剪枝装置的各个程序模块,比如,图2所示的训练模块210、目标确定模块220、稀疏模块230、剪枝模块240和恢复模块250。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的基于目标检测模型的剪枝方法中的步骤。

例如,图3所示的计算机设备可以通过如图2所示的基于目标检测模型的剪枝装置中的训练模块210执行训练目标检测模型。计算机设备可以通过目标确定模块220执行确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层。计算机设备可以通过稀疏模块230执行对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型。计算机设备可以通过剪枝模块240执行裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型。计算机设备可以通过恢复模块250执行对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:训练目标检测模型;确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束;令所述目标检测模型中的剪枝目标按照稀疏因子调整参数,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型;其中,所述稀疏因子在稀疏训练时按照线性关系逐渐减小。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述剪枝指标包括第一评判指标和第二评判指标,将所述剪枝目标中所有BN层对应的缩放系数按照从大到小排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,将所述筛选出的每个缩放系数对应的卷积核的权重进行绝对值求和,每个缩放系数对应一个绝对值之和,再将所有的绝对值之和按照从大到小的顺序排序,按照剪枝率将排序后的绝对值之和由小至大筛选出作为所述第二评判指标;裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:训练目标检测模型;确定所述目标检测模型中的剪枝目标,所述剪枝目标包括目标剪枝通道和目标剪枝层;对所述目标检测模型中包含所述剪枝目标的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述稀疏检测模型的目标剪枝通道或目标剪枝层中满足剪枝指标的卷积通道或卷积层,得到剪枝模型;对所述剪枝模型进行再训练,恢复稀疏后的网络参数至正常分布状态,得到剪枝后的目标检测模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述目标检测模型中剪枝目标的BN层的缩放系数施加L1正则约束;令所述目标检测模型中的剪枝目标按照稀疏因子调整参数,使所述目标检测模型朝着结构性稀疏的方向调整参数,得到所述稀疏检测模型;其中,所述稀疏因子在稀疏训练时按照线性关系逐渐减小。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述剪枝指标包括第一评判指标和第二评判指标,将所述剪枝目标中所有BN层对应的缩放系数按照从大到小排序,按照剪枝率将排序后的缩放系数由小至大筛选出作为第一评判指标,将所述筛选出的每个缩放系数对应的卷积核的权重进行绝对值求和,每个缩放系数对应一个绝对值之和,再将所有的绝对值之和按照从大到小的顺序排序,按照剪枝率将排序后的绝对值之和由小至大筛选出作为所述第二评判指标;裁剪所述目标剪枝通道或目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道或卷积层,得到剪枝模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:选择不与所述目标检测模型中shortcut层直接连通的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:选择所述目标检测模型中所有的卷积通道作为目标剪枝通道,包括所述目标剪枝通道与所述目标检测模型中shortcut层直接连通的卷积通道;对所述目标检测模型中包含所述目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道中同时满足第一评判指标和第二评判指标的卷积通道,得到剪枝模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层;对所述目标检测模型中包含所述目标剪枝层的网络结构进行稀疏训练,得到稀疏检测模型;当所述目标剪枝层中的同一卷积层中同时满足第一评判指标和第二评判指标的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:选择所述目标检测模型中所有的卷积层作为目标剪枝层,所述卷积层携带有BN层,选择所述目标检测模型中所有的卷积通道作为目标剪枝通道;对所述目标检测模型中包含所述目标剪枝层和目标剪枝通道的网络结构进行稀疏训练,得到稀疏检测模型;裁剪所述目标剪枝通道和目标剪枝层中同时满足第一评判指标和第二评判指标的卷积通道,当裁剪同一卷积层的卷积通道数大于裁剪阈值时,裁剪该卷积层,得到剪枝模型。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于目标检测模型的剪枝方法、装置和存储介质
  • 基于矩阵分解模型的剪枝方法、装置、设备、存储介质
技术分类

06120113082825