一种多任务神经网络模型的剪枝方法及装置与流程

文档序号:30056046发布日期:2022-05-17 18:12阅读:103来源:国知局
一种多任务神经网络模型的剪枝方法及装置与流程

1.本发明涉及计算机技术领域,具体而言,涉及一种多任务神经网络模型的剪枝方法及装置。


背景技术:

2.深度学习的发展使得深度神经网络越来越多地被应用到如图像识别、检测及跟踪等计算机视觉任务中,且网络模型越来越多地趋向于往更宽更深的方向设计。深度学习的成功很大程度上依赖于模型大量的参数以及具有强大性能的计算设备。但是,由于深度神经网络巨大的内存需求和计算消耗使其较难部署到低存储、低功耗的硬件平台上(如移动设备),这极大地限制了其应用。因此,研究如何在保证现有深度神经网络模型性能不变的情况下,有效压缩神经网络模型是需要解决的重要问题。
3.那么,如何提供一种对多任务神经网络模型的剪枝方法成为亟待解决的问题。


技术实现要素:

4.本发明提供了一种多任务神经网络模型的剪枝方法及装置,以实现对多任务神经网络模型的剪枝。具体的技术方案如下:
5.第一方面,本发明实施例提供了一种多任务神经网络模型的剪枝方法,所述方法包括:
6.获得训练完成的多任务神经网络模型,作为待剪枝模型;
7.针对所述待剪枝模型的每一卷积层,执行如下步骤a-c,以确定出每一卷积层在不同预设层剪枝率下的敏感度信息;
8.步骤a:针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝;
9.步骤b:基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值;
10.步骤c:基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;
11.基于所述待剪枝模型对应的通道信息,对所述待剪枝模型的卷积层中的卷积核进行分组;
12.基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型。
13.可选的,所述基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型的步骤,包括:
14.基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中
各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到当前的剪枝模型;
15.基于第二训练数据,确定所述当前的剪枝模型对应的各第二训练数据对应的检测信息;
16.若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型达到预设剪枝条件,将所述当前的剪枝模型确定为目标剪枝模型。
17.可选的,所述方法还包括:
18.若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型未达到预设剪枝条件,调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率;
19.基于新的当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到新的当前的剪枝模型;
20.基于第三训练数据,确定所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息;
21.若基于所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型达到预设剪枝条件,将所述新的当前的剪枝模型确定为目标剪枝模型;
22.若基于所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型未达到预设剪枝条件,返回所述调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率的步骤。
23.可选的,所述基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息的步骤,包括:
24.基于预剪枝后的待剪枝模型对应的各任务损失值以及预设目标函数,确定预剪枝后的待剪枝模型对应的损失值;
25.基于所述预剪枝后的待剪枝模型对应的损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;其中,所述预设目标函数的表达式为:
[0026][0027]
其中,objective表示预剪枝后的待剪枝模型对应的损失值,lossi表示所述待剪枝模型中第i个任务对应的任务损失值,wi表示所述待剪枝模型中第i个任务对应的任务权重;l表示所述待剪枝模型的任务的数量。
[0028]
可选的,所述基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝的步骤,包括:
[0029]
针对该卷积层的每一卷积核,基于该卷积核中的各权重参数,确定该卷积核对应的剪枝范数值;
[0030]
基于该预设层剪枝率以及该卷积层中各卷积核对应的剪枝范数值,依据预设剪枝规则,对该卷积层进行预剪枝,其中,所述预设剪枝规则为:优先针对所对应剪枝范数值小的卷积核进行预剪枝。
[0031]
第二方面,本发明实施例提供了一种多任务神经网络模型的剪枝装置,所述装置包括:
[0032]
获得模块,被配置为获得训练完成的多任务神经网络模型,作为待剪枝模型;
[0033]
第一确定模块,被配置为针对所述待剪枝模型的每一卷积层,通过如下单元,确定出每一卷积层在不同预设层剪枝率下的敏感度信息;
[0034]
预剪枝单元,被配置为针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝;
[0035]
第一确定单元,被配置为基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值;
[0036]
第二确定单元,被配置为基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;
[0037]
分组模块,被配置为基于所述待剪枝模型对应的通道信息,对所述待剪枝模型的卷积层中的卷积核进行分组;
[0038]
第二确定模块,被配置为基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型。
[0039]
可选的,所述第二确定模块,包括:
[0040]
第一剪枝单元,被配置为基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到当前的剪枝模型;
[0041]
第三确定单元,被配置为基于第二训练数据,确定所述当前的剪枝模型对应的各第二训练数据对应的检测信息;
[0042]
第四确定单元,被配置为若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型达到预设剪枝条件,将所述当前的剪枝模型确定为目标剪枝模型。
[0043]
可选的,所述第二确定模块还包括:
[0044]
调整单元,被配置为若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型未达到预设剪枝条件,调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率;
[0045]
第二剪枝单元,被配置为基于新的当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到新的当前的剪枝模型;
[0046]
第五确定单元,被配置为基于第三训练数据,确定所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息;
[0047]
第六确定单元,被配置为若基于所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型达到预设剪枝条件,将所述新的当前的剪枝模型确定为目标剪枝模型;
[0048]
若基于所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型未达到预设剪枝条件,返回触
发所述调整单元。
[0049]
可选的,所述第二确定单元,被具体配置为基于预剪枝后的待剪枝模型对应的各任务损失值以及预设目标函数,确定预剪枝后的待剪枝模型对应的损失值;
[0050]
基于所述预剪枝后的待剪枝模型对应的损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;其中,所述预设目标函数的表达式为:
[0051][0052]
其中,objective表示预剪枝后的待剪枝模型对应的损失值,lossi表示所述待剪枝模型中第i个任务对应的任务损失值,wi表示所述待剪枝模型中第i个任务对应的任务权重;l表示所述待剪枝模型的任务的数量。
[0053]
可选的,所述预剪枝单元,被具体配置为针对该卷积层的每一卷积核,基于该卷积核中的各权重参数,确定该卷积核对应的剪枝范数值;
[0054]
基于该预设层剪枝率以及该卷积层中各卷积核对应的剪枝范数值,依据预设剪枝规则,对该卷积层进行预剪枝,其中,所述预设剪枝规则为:优先针对所对应剪枝范数值小的卷积核进行预剪枝。
[0055]
由上述内容可知,本发明实施例提供的一种多任务神经网络模型的剪枝方法及装置,获得训练完成的多任务神经网络模型,作为待剪枝模型;针对待剪枝模型的每一卷积层,执行如下步骤a-c,以确定出每一卷积层在不同预设层剪枝率下的敏感度信息;步骤a:针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝;步骤b:基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值;步骤c:基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;基于待剪枝模型对应的通道信息,对待剪枝模型的卷积层中的卷积核进行分组;基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型。
[0056]
应用本发明实施例,利用待剪枝网络中各多个任务对应的任务损失值,共同确定各层卷积层在不同预设层剪枝率下的敏感度信息,进而,基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型,以实现对多任务神经网络模型的剪枝。并且结合多个任务对应的任务损失值作为剪枝目标,综合考虑多个任务的精度进行敏感度分析和剪枝,有效保留稀疏模型的泛化性能,能够平衡剪枝后的模型多个任务的精度损失,降低重新训练难度。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
[0057]
本发明实施例的创新点包括:
[0058]
1、利用待剪枝网络中各多个任务对应的任务损失值,共同确定各层卷积层在不同预设层剪枝率下的敏感度信息,进而,基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型,以实现对多任务神经网络模型的剪枝。并且结合多个任务对应的任务损失值作为剪枝目标,综合考虑多个任务的精度对模型进行敏感度分析和剪枝,有效保留稀疏模型的泛化性能,能够平衡剪枝后的模型多个任务的精度损失,降低重新训
练难度。
[0059]
2、设置预设剪枝条件,基于当前的剪枝模型对应的当前损失值,确定当前的剪枝模型达到预设剪枝条件,来确定是否对待剪枝模型剪枝成功,在确定对待剪枝模型剪枝成功的情况下,将当前的剪枝模型确定为目标剪枝模型;在确定对待剪枝模型剪枝不成功的情况下,调整当前的剪枝模型的取值,重新对待剪枝模型剪枝,直至确定对待剪枝模型剪枝成功,得到目标剪枝模型,以得到检测信息好且存储空间需求小的目标剪枝模型。
[0060]
3、利用预设目标函数,基于各任务损失值及其对应的任务权重,确定预剪枝后的待剪枝模型对应的损失值,进而确定该卷积层在该预设层剪枝率下的敏感度信息,实现综合考虑多个任务的精度对模型进行敏感度分析和剪枝,实现对模型的有效剪枝。
附图说明
[0061]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]
图1为本发明实施例提供的多任务神经网络模型的剪枝方法的一种流程示意图;
[0063]
图2为本发明实施例提供的多任务神经网络模型的剪枝装置的一种结构示意图。
具体实施方式
[0064]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0066]
本发明提供了一种多任务神经网络模型的剪枝方法及装置,以实现对多任务神经网络模型的剪枝。下面对本发明实施例进行详细说明。
[0067]
图1为本发明实施例提供的多任务神经网络模型的剪枝方法的一种流程示意图。该方法可以包括如下步骤:
[0068]
s101:获得训练完成的多任务神经网络模型,作为待剪枝模型。
[0069]
本发明实施例所提供的多任务神经网络模型的剪枝方法,可以应用于任一具有计算能力的电子设备,该电子设备可以为终端或者服务器。
[0070]
其中,该多任务神经网络模型为可以实现至少两种检测任务的神经网络模型。该检测任务可以包括但不限于分类、定位以及语义分割等任务,本发明实施并不对多任务神经网络模型的具体任务类型进行限定。
[0071]
该训练完成的多任务神经网络模型可以指:已基于训练数据进行训练且检测信息的检测精度不低于预设精度阈值的多任务神经网络模型。
[0072]
s102:针对待剪枝模型的每一卷积层,执行如下步骤s1021-s1023,以确定出每一卷积层在不同预设层剪枝率下的敏感度信息。
[0073]
s1021:针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝;
[0074]
s1022:基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值;
[0075]
s1023:基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息。
[0076]
其中,该预设层剪枝率为用于指示针对各层卷积层进行预剪枝过程中,所设置的用于控制进行预剪枝的卷积层所需剪枝的比例,即进行预剪枝的卷积层需要预剪枝的卷积核占该卷积层的总卷积核的比例。该预设层剪枝率的取值范围为(0,1),预设层剪枝率为多个,多个预设层剪枝率中相邻的每两个预设层剪枝率之间的差值可以相同。
[0077]
本步骤中,电子设备可以针对待剪枝模型的每一卷积层,确定每一卷积层在不同预设层剪枝率下的敏感度信息,即针对待剪枝模型的每一卷积层,依次针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中的各卷积核,对该卷积层进行预剪枝,即基于该卷积层中的各卷积核,确定出该预设层剪枝率对应的待预剪枝的卷积核,对该预设层剪枝率对应的待预剪枝的卷积核的预剪枝,例如:设置该预设层剪枝率对应的待预剪枝的卷积核对应的权重值为0,实现对该预设层剪枝率对应的待预剪枝的卷积核的预剪枝;进而,基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值,即多个任务各自对应的任务损失值;基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息,以确定出待剪枝模型的每一卷积层在每一预设层剪枝率下的敏感度信息。举例而言,若待剪枝模型的卷积层存在10个,预设层剪枝率包括1%-99%中的整百分数,即99个,则待剪枝模型的所有卷积层的敏感度信息的数量包括10*99=990个。
[0078]
其中,该第一训练数据可以为训练完成该待剪枝模型的训练数据的部分数据,也可以为待剪枝模型对应的其他训练数据,这都是可以的。第一训练数据可以包括样本图像及其对应的标定信息,其中,样本图像包括该待剪枝模型需要检测的目标,样本图像对应的标定信息包括该待剪枝模型的各任务对应的检测标签的具体内容。例如:待剪枝模型需要检测的目标为人员,该待剪枝模型的各任务对应的检测标签为人员身份及人员所在位置,相应的,该样本图像包括各人员,样本图像对应的标定信息包括:所包括人员的人员身份信息以及在图像中的位置信息。
[0079]
相应的,在一种实现中,上述基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值的过程,可以是:将第一训练数据中的每一样本图像输入该预设层剪枝率对应的预剪枝后的待剪枝模型中,得到该样本图像对应的预测信息,其中,该预测信息包括该待剪枝模型的各任务对应的预测信息;针对每一任务,基于该任务对应的预设损失函数、该样本图像对应的该任务对应的预测信息以及第一训练数据中该样本图像对应的该任务对应的标定信息,确定该样本图像对应的该任务对应的任务子损失值,以得到样本图像对应的该任务对应的任务子损失值;并针对每一任务,基于各样本图像对应的该任务对应的任务子损失值,确定该任务对应的任务损失值。其中,各任务对应的
预设损失函数可以为相关技术中任一类型的损失函数,在此不作限定。
[0080]
其中,预剪枝前后任务对应的任务损失值的变化越小,表征对该卷积层中预剪枝该预设层剪枝率对应的卷积核,对该任务损失值对应的任务的检测信息影响越小,即预剪枝的该预设层剪枝率对应的卷积核,对该任务损失值对应的任务检测信息的影响越小,相应的,可以表征相应于该任务损失值对应的任务来说,该预剪枝的该预设层剪枝率对应的卷积核的敏感度不高。
[0081]
在本发明的一种实现方式中,所述s1021,可以包括如下步骤:
[0082]
针对该卷积层的每一卷积核,基于该卷积核中的各权重参数,确定该卷积核对应的剪枝范数值;
[0083]
基于该预设层剪枝率以及该卷积层中各卷积核对应的剪枝范数值,依据预设剪枝规则,对该卷积层进行预剪枝,其中,预设剪枝规则为:优先针对所对应剪枝范数值小的卷积核进行预剪枝。
[0084]
本实现方式中,电子设备可以针对该卷积层的每一卷积核,利用l1-norm算法,基于该卷积核中的各权重参数,确定该卷积核对应的剪枝范数值。具体的可以是:将该卷积核中的各权重参数的绝对值加和,所得结果作为该卷积核对应的剪枝范数值。其中,该卷积核对应的剪枝范数值越大表示该卷积核越重要,在预剪枝以及后续的剪枝过程中选择剪枝该卷积核的概率越小。
[0085]
后续的,基于该预设层剪枝率以及该卷积层中各卷积核对应的剪枝范数值,依据预设剪枝规则,对该卷积层进行预剪枝。即优先针对所对应剪枝范数值小的卷积核进行预剪枝。即在该卷积层内按照该预设层剪枝率,从所对应剪枝范数值由小到大剪去卷积核及其对应的输出特征图通道。
[0086]
其中,上述的剪去卷积核及其对应的输出特征图通道可以是:将卷积核中的包含的各权重参数设置为0,或者设置卷积核对应的权重值为0,以及设置卷积核对应的输出特征图通道对应的权重值为0。
[0087]
s103:基于待剪枝模型对应的通道信息,对待剪枝模型的卷积层中的卷积核进行分组。
[0088]
在一种实现中,待剪枝模型中可能存在多个卷积层以elementwiselayer函数连接,鉴于elementwiselayer函数的数据处理方式,对于待剪枝模型中以elementwiselayer函数连接的多个卷积层来说,当需要剪去某一层中的一个卷积核时,需要将其他卷积层中所对应通道标识与该需要剪去的卷积核对应的通道标识相同的卷积核。鉴于此,电子设备可以预先确定待剪枝模型对应的通道信息,进而,基于待剪枝模型对应的通道信息,对待剪枝模型的卷积层中的卷积核进行分组。其中,将对应相同通道标识的卷积核分为一组,对应不同通道标识的卷积核分为不同组,不以elementwiselayer函数连接的卷积层的卷积核,即不对应通道标识的卷积核可以分为一组。
[0089]
s104:基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型。
[0090]
电子设备本地或所连接的存储设备可以预先存储有当前的模型剪枝率,该模型剪枝率为用于限定对该待剪枝模型进行剪枝过程中减去卷积核及其对应的输出特征图通道
的比例,即用于限定对该待剪枝模型进行剪枝过程中减去卷积核及其对应的输出特征图通道的总数,占该待剪枝模型包括的卷积核及其对应的输出特征图通道的总数的比值。
[0091]
每一层卷积层中各卷积核对应的剪枝范数值为:基于该卷积核中的各权重参数所确定的值,用于表征该卷积核在其所在卷积层中的重要性,其中,卷积层中卷积核对应的剪枝范数值越大示该卷积核越重要,在预剪枝以及后续的剪枝过程中选择剪枝该卷积核的概率越小。
[0092]
电子设备对待剪枝模型的卷积层中的卷积核进行分组后,可以得到待剪枝模型的卷积核的分组情况,其中,对于对应同一通道标识的卷积核来说,其需要同时进行剪枝或同时保留,对于不对应通道标识的卷积核来说,基于其对应的剪枝范数值进行剪枝或保留。
[0093]
电子设备可以基于当前的模型剪枝率以及每一卷积层在不同层剪枝率下的敏感度信息,确定每一层卷积层对应的剪枝率,其中,卷积层的敏感度信息表征其越不敏感,其对应的剪枝率越高。进而,电子设备针对每一层卷积层,基于该卷积层对应的剪枝率、待剪枝模型的卷积核的分组情况以及每一层卷积层中各卷积核对应的剪枝范数值,确定出每一层卷积层需要剪枝的具体的卷积核及其对应的输出特征图通道;基于所确定的每一层卷积层需要剪枝的具体的卷积核及其对应的输出特征图通道,进行剪枝,得到目标剪枝模型。
[0094]
其中,上述确定每一层卷积层需要剪枝的具体的卷积核及其对应的输出特征图通道的原则可以包括:优先针对卷积层中所对应剪枝范数值小的卷积核进行剪枝,且当一层卷积层中的一卷积核需要剪枝,且该卷积核属于对应一通道标识的卷积核组中,需要对该卷积核组中所有对应的卷积核及其对应的输出特征图通道进行剪枝。
[0095]
应用本发明实施例,利用待剪枝网络中各多个任务对应的任务损失值,共同确定各层卷积层在不同预设层剪枝率下的敏感度信息,进而,基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型,以实现对多任务神经网络模型的剪枝。并且结合多个任务对应的任务损失值作为剪枝目标,综合考虑多个任务的精度进行敏感度分析和剪枝,有效保留稀疏模型的泛化性能,能够平衡剪枝后的模型多个任务的精度损失,降低重新训练难度。
[0096]
考虑到所设置的当前的模型剪枝率可能设置的不够合适,可能出现当前的模型剪枝率设置的偏小,理论上在检测精度的约束下,待剪枝模型还可以剪枝更多的卷积核和/或其对应的输出特征图通道的情况,即可以得到剪枝后的数据量更小的且检测精度不低的模型;或者可能出现当前的模型剪枝率设置的偏大,剪枝后所得的模型的数据量降低,但剪枝后所得的模型的检测精度不高的情况。上述情况中剪枝后所得的模型均可以认为为不够合适的模型。鉴于此,在本发明的另一实施例中,所述s104,可以包括如下步骤:
[0097]
基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对待剪枝模型进行剪枝,得到当前的剪枝模型;
[0098]
基于第二训练数据,确定当前的剪枝模型对应的各第二训练数据对应的检测信息;
[0099]
若基于当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定当前的剪枝模型达到预设剪枝条件,将当前的剪枝模型确定为目
标剪枝模型。
[0100]
其中,第二训练数据可以为训练完成该待剪枝模型的训练数据的部分数据,也可以为待剪枝模型对应的其他训练数据,这都是可以的。该第二训练数据可以包括与第一训练数据相同的数据,也可以包括与第一训练数据不同的数据。
[0101]
上述基于第二训练数据,确定当前的剪枝模型对应的各第二训练数据对应的检测信息的过程,可以为:将每一第二训练数据中的样本图像,输入当前的剪枝模型,得到各第二训练数据对应的各任务的检测信息。
[0102]
上述基于当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定当前的剪枝模型达到预设剪枝条件的过程,可以是:基于增大后的当前的模型剪枝率的取值之后剪枝所得的模型、第二训练数据、所确定的各第二训练数据对应的各任务的检测信息、各第二训练数据中的标定信息以及该任务对应的预设精确度确定方式,确定该任务的新的剪枝后模型的精确度,若判断待剪枝模型对应的该任务的精确度与该新的剪枝后模型的精确度的差值不在可接受的精度下降范围内,且差值大于可接受的精度下降范围的上限值,则可以确定当前的剪枝模型达到预设剪枝条件。
[0103]
其中,可以理解的是,不同任务其对应的预设精确度确定方式可以存在不同,具体的预设精确度确定方式可以参照相关技术中确定神经网络模型的各任务的精确度的确定方式。
[0104]
以待剪枝模型的任务包括目标检测任务和语义分割任务为例进行说明,目标检测任务对应的剪枝精确度可以是通过map(mean average precision)值表示;语义分割任务对应的剪枝精确度可以是miou(mean intersection-over-union)值表示。其中,map值和miou值的计算过程,可以参见相关技术中神经网络模型中目标检测任务的map值和语义分割任务的miou值的计算过程,在此不再赘述。
[0105]
在本发明的另一实施例中,所述s104,还可以包括如下步骤:
[0106]
若基于当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定当前的剪枝模型未达到预设剪枝条件,调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率;
[0107]
基于新的当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到新的当前的剪枝模型;
[0108]
基于第三训练数据,确定新的当前的剪枝模型对应的各第三训练数据对应的检测信息;
[0109]
若基于新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定新的当前的剪枝模型达到预设剪枝条件,将新的当前的剪枝模型确定为目标剪枝模型;
[0110]
若基于新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定新的当前的剪枝模型未达到预设剪枝条件,返回所述调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率的步骤。
[0111]
电子设备若判断待剪枝模型对应的该任务的精确度与该新的剪枝后模型的精确度的差值,不在可接受的精度下降范围内,则可以确定当前的剪枝模型未达到预设剪枝条
件。
[0112]
相应的,可以调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率,基于新的当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对待剪枝模型进行剪枝,得到新的当前的剪枝模型;基于第三训练数据,确定新的当前的剪枝模型对应的各第三训练数据对应的检测信息;若基于当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定新的当前的剪枝模型达到预设剪枝条件,将新的当前的剪枝模型确定为目标剪枝模型;若基于当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定新的当前的剪枝模型未达到预设剪枝条件,返回所述调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率的步骤。
[0113]
其中,若判断待剪枝模型对应的该任务的精确度与该新的剪枝精确度的差值不在可接受的精度下降范围内,且待剪枝模型对应的该任务的精确度与该新的剪枝后模型的精确度的差值超过可接受的精度下降范围的上限值,则可以调小当前的模型剪枝率的取值,得到新的当前的模型剪枝率;若判断待剪枝模型对应的该任务的精确度与该新的剪枝后模型的精确度的差值在可接受的精度下降范围内,且待剪枝模型对应的改任务的精确度与该信的剪枝后模型的精确度的差值低于可接受的精度下降范围的上限值,则可以调大当前的模型剪枝率的取值,得到新的当前的模型剪枝率。
[0114]
上述第三训练数据可以为与第二训练数据相同的数据,也可以为待剪枝模型对应的不同于第二训练数据的数据。
[0115]
在本发明的另一实施例中,所述s1023,可以包括如下步骤:
[0116]
基于预剪枝后的待剪枝模型对应的各任务损失值以及预设目标函数,确定预剪枝后的待剪枝模型对应的损失值;
[0117]
基于预剪枝后的待剪枝模型对应的损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;其中,预设目标函数的表达式为:
[0118][0119]
其中,objective表示预剪枝后的待剪枝模型对应的损失值,lossi表示所述待剪枝模型中第i个任务对应的任务损失值,wi表示待剪枝模型中第i个任务对应的任务权重;l表示待剪枝模型的任务的数量。
[0120]
一种情况中,可以将待剪枝模型在预剪枝前后对应的损失值变化,确定为该预设层剪枝率下的敏感度信息。例如,可以是:将预剪枝后的待剪枝模型对应的损失值,与预剪枝前的待剪枝模型对应的损失值的差值,确定为该卷积层在该预设层剪枝率下的敏感度信息。相应的,预剪枝后的待剪枝模型对应的损失值,相较于预剪枝前待剪枝模型对应的损失值,上升的越小,表征该卷积层在该预设层剪枝率下的对剪枝后模型的检测信息的精度影响越小,且该卷积层在该预设层剪枝率下的敏感度越低。
[0121]
一种情况中,各任务对应的任务权重可以根据任务对应的任务损失值的范围进行选取,使得加权后的任务损失值在同一数据量级。
[0122]
相应于上述方法实施例,本发明实施例提供了一种多任务神经网络模型的剪枝装置,如图2所示,所述装置可以包括:
[0123]
获得模块210,被配置为获得训练完成的多任务神经网络模型,作为待剪枝模型;
[0124]
第一确定模块220,被配置为针对所述待剪枝模型的每一卷积层,通过如下单元,确定出每一卷积层在不同预设层剪枝率下的敏感度信息;
[0125]
预剪枝单元221,被配置为针对各预设层剪枝率,基于该预设层剪枝率以及该卷积层中各卷积核,对该卷积层进行预剪枝;
[0126]
第一确定单元222,被配置为基于第一训练数据,确定该预设层剪枝率对应的预剪枝后的待剪枝模型所对应各任务损失值;
[0127]
第二确定单元223,被配置为基于预剪枝后的待剪枝模型对应的各任务损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;
[0128]
分组模块230,被配置为基于所述待剪枝模型对应的通道信息,对所述待剪枝模型的卷积层中的卷积核进行分组;
[0129]
第二确定模块240,被配置为基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型。
[0130]
应用本发明实施例,利用待剪枝网络中各多个任务对应的任务损失值,共同确定各层卷积层在不同预设层剪枝率下的敏感度信息,进而,基于当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,确定目标剪枝模型,以实现对多任务神经网络模型的剪枝。并且结合多个任务对应的任务损失值作为剪枝目标,综合考虑多个任务的精度进行敏感度分析和剪枝,有效保留稀疏模型的泛化性能,能够平衡剪枝后的模型多个任务的精度损失,降低重新训练难度。
[0131]
在本发明的另一实施例中,所述第二确定模块240,包括:
[0132]
第一剪枝单元(图中未示出),被配置为基于当前的模型剪枝率、所述待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到当前的剪枝模型;
[0133]
第三确定单元(图中未示出),被配置为基于第二训练数据,确定所述当前的剪枝模型对应的各第二训练数据对应的检测信息;
[0134]
第四确定单元(图中未示出),被配置为若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型达到预设剪枝条件,将所述当前的剪枝模型确定为目标剪枝模型。
[0135]
在本发明的另一实施例中,所述第二确定模块240还包括:
[0136]
调整单元(图中未示出),被配置为若基于所述当前的剪枝模型对应的各第二训练数据对应的检测信息以及各第二训练数据中的标定信息,确定所述当前的剪枝模型未达到预设剪枝条件,调整当前的模型剪枝率的取值,得到新的当前的模型剪枝率;
[0137]
第二剪枝单元(图中未示出),被配置为基于新的当前的模型剪枝率、待剪枝模型的卷积核的分组情况、每一层卷积层中各卷积核对应的剪枝范数值以及每一卷积层在不同层剪枝率下的敏感度信息,对所述待剪枝模型进行剪枝,得到新的当前的剪枝模型;
[0138]
第五确定单元(图中未示出),被配置为基于第三训练数据,确定所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息;
[0139]
第六确定单元(图中未示出),被配置为若基于所述新的当前的剪枝模型对应的各
第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型达到预设剪枝条件,将所述新的当前的剪枝模型确定为目标剪枝模型;
[0140]
若基于所述新的当前的剪枝模型对应的各第三训练数据对应的检测信息以及各第三训练数据中的标定信息,确定所述新的当前的剪枝模型未达到预设剪枝条件,返回触发所述调整单元。
[0141]
在本发明的另一实施例中,所述第二确定单元223,被具体配置为基于预剪枝后的待剪枝模型对应的各任务损失值以及预设目标函数,确定预剪枝后的待剪枝模型对应的损失值;
[0142]
基于所述预剪枝后的待剪枝模型对应的损失值,确定该卷积层在该预设层剪枝率下的敏感度信息;其中,所述预设目标函数的表达式为:
[0143][0144]
其中,objective表示预剪枝后的待剪枝模型对应的损失值,lossi表示所述待剪枝模型中第i个任务对应的任务损失值,wi表示所述待剪枝模型中第i个任务对应的任务权重;l表示所述待剪枝模型的任务的数量。
[0145]
在本发明的另一实施例中,所述预剪枝单元221,被具体配置为针对该卷积层的每一卷积核,基于该卷积核中的各权重参数,确定该卷积核对应的剪枝范数值;
[0146]
基于该预设层剪枝率以及该卷积层中各卷积核对应的剪枝范数值,依据预设剪枝规则,对该卷积层进行预剪枝,其中,所述预设剪枝规则为:优先针对所对应剪枝范数值小的卷积核进行预剪枝。
[0147]
上述系统、装置实施例与系统实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0148]
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0149]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1