本发明涉及目标检测,尤其涉及一种检测模型剪枝方法、装置、电子设备和存储介质。
背景技术:
1、自动驾驶是智慧交通中的一项重要应用,可实现紧急刹车、行人检测、碰撞警告、变道辅助、自动泊车和自适应巡航等功能。随着智能汽车的智能化程度越来越高,自动驾驶对环境感知的要求也越来越高。目标检测是环境感知的一项重要任务,可实时高精度检测周围目标,获得目标精准的3d位置信息,这是自动驾驶路径规划和控制的前提,也是实现精准驾驶的基础,直接提升自动驾驶的安全性和环境适应性。
2、现有目标检测模型能够实时检测周围目标,但参数多,计算量大,难以满足实时检测的需求。在计算资源受限的条件下,对模型进行剪枝压缩是十分必要的。剪枝分为两类,一类是非结构型剪枝,一类是结构型剪枝。前者随机地将网络的一些权重置零,不会改变网络的结构,而后者不仅可以移除网络权重,还可以移除通道、网络层、网络模块等等。相比之下,结构型剪枝不依赖特定的硬件支持(如支持稀疏矩阵的运算),并且能够显著压缩模型,提高推理速度,这使得结构型剪枝的应用更加普遍。
3、目标检测模型的网络结构包括残差连接和级联连接等大量复杂连接,现有的结构型剪枝方法普遍存在的问题是未能很好地处理网络参数的复杂耦合,没有考虑到相互依赖的参数分组间的重要性差异,剪枝后易造成模型性能的下降。
技术实现思路
1、本发明提供一种检测模型剪枝方法、装置、电子设备和存储介质,用以解决现有技术中未能很好地处理网络参数的复杂耦合,没有考虑到相互依赖的参数分组间的重要性差异,剪枝后易造成模型性能的下降的缺陷。
2、第一方面,本发明提供一种检测模型剪枝方法,包括:
3、对待剪枝检测模型的网络层进行分解,得到分解网络层;
4、根据所述分解网络层之间的连接关系和剪枝策略,构建所述分解网络层的依赖图,所述依赖图用于表征所述分解网络层的依赖关系;
5、根据所述依赖图对所述分解网络层进行分组,得到网络层分组;
6、对所述网络层分组进行稀疏性训练,确定待剪枝的所述网络层分组的重要性以及所述网络层分组中参数的重要性;
7、根据所述网络层分组的重要性、所述参数的重要性以及预设的剪枝率,对所述网络层分组中参数进行移除以完成剪枝。
8、根据本发明提供的一种检测模型剪枝方法,所述对所述网络层分组进行稀疏性训练,确定待剪枝的确定所述网络层分组的重要性以及所述网络层分组中参数的重要性,包括:
9、通过在所述待剪枝检测模型的损失函数中引入正则项,对所述网络层分组进行稀疏性训练;
10、根据剪枝所述网络层分组产生的损失偏移量,确定所述网络层分组的重要性;
11、根据所述网络层分组中参数的权重范数,确定所述网络层分组中参数的重要性。
12、根据本发明提供的一种检测模型剪枝方法,所述根据剪枝所述网络层分组产生的损失偏移量,确定所述网络层分组的重要性,包括:
13、根据剪枝所述网络层分组中参数的求偏导数、所述参数的权重范数以及海森矩阵,构建与所述参数对应的参数损失偏移量模型;
14、基于费舍尔信息矩阵对所述参数损失偏移量模型进行求解,将所有所述参数对应的参数损失偏移量之和作为所述网络层分组的重要性。
15、根据本发明提供的一种检测模型剪枝方法,所述正则项基于所述网络层分组中每一参数的权重范数以及所述参数对应的缩放因子确定。
16、根据本发明提供的一种检测模型剪枝方法,所述对待剪枝检测模型的网络层进行分解,得到分解网络层,包括:
17、将每一所述网络层的输入部分和输出部分进行分解,将分解得到的输入层和输出层作为分解网络层。
18、根据本发明提供的一种检测模型剪枝方法,所述根据所述分解网络层之间的连接关系和剪枝策略,构建所述分解网络层的依赖图,包括:
19、根据所述分解网络层之间的连接关系,确定所述分解网络层之间的层间依赖关系;
20、根据所述分解网络层的剪枝策略,确定所述分解网络层的层内依赖关系;
21、根据所述层间依赖关系和所述层内依赖关系,构建所述分解网络层的依赖图。
22、根据本发明提供的一种检测模型剪枝方法,所述根据所述网络层分组的重要性、所述参数的重要性以及预设的剪枝率,对所述网络层分组中参数进行移除以完成剪枝,包括:
23、根据所述网络层分组的重要性,确定待剪枝的目标网络层分组;
24、根据所述参数的重要性和所述剪枝率,从所述目标网络层分组中选择待剪枝的目标参数;
25、将所述目标参数从所述目标网络层分组中移除以完成剪枝。
26、第二方面,本发明还提供一种检测模型剪枝装置,包括:
27、分解模块,用于对待剪枝检测模型的网络层进行分解,得到分解网络层;
28、构建模块,用于根据所述分解网络层之间的连接关系和剪枝策略,构建所述分解网络层的依赖图,所述依赖图用于表征所述分解网络层的依赖关系;
29、分组模块,用于根据所述依赖图对所述分解网络层进行分组,得到网络层分组;
30、确定模块,用于对所述网络层分组进行稀疏性训练,确定待剪枝的所述网络层分组的重要性以及所述网络层分组中参数的重要性;
31、剪枝模块,用于根据所述网络层分组的重要性、所述参数的重要性以及预设的剪枝率,对所述网络层分组中参数进行移除以完成剪枝。
32、第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述检测模型剪枝方法的步骤。
33、第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述检测模型剪枝方法的步骤。
34、本发明提供的检测模型剪枝方法、装置、电子设备和存储介质,利用依赖图描述分解网络层的依赖关系,并建立网络层分组,在对网络层分组中相互依赖的参数剪枝时会一并移除,避免破坏网络结构,同时对网络层分组进行稀疏性训练,使得网络层分组内耦合的参数都是稀疏的,避免移除重要参数。
1.一种检测模型剪枝方法,其特征在于,包括:
2.根据权利要求1所述的检测模型剪枝方法,其特征在于,所述对所述网络层分组进行稀疏性训练,确定待剪枝的确定所述网络层分组的重要性以及所述网络层分组中参数的重要性,包括:
3.根据权利要求2所述的检测模型剪枝方法,其特征在于,所述根据剪枝所述网络层分组产生的损失偏移量,确定所述网络层分组的重要性,包括:
4.根据权利要求2所述的检测模型剪枝方法,其特征在于,所述正则项基于所述网络层分组中每一参数的权重范数以及所述参数对应的缩放因子确定。
5.根据权利要求1所述的检测模型剪枝方法,其特征在于,所述对待剪枝检测模型的网络层进行分解,得到分解网络层,包括:
6.根据权利要求1所述的检测模型剪枝方法,其特征在于,所述根据所述分解网络层之间的连接关系和剪枝策略,构建所述分解网络层的依赖图,包括:
7.根据权利要求1所述的检测模型剪枝方法,其特征在于,所述根据所述网络层分组的重要性、所述参数的重要性以及预设的剪枝率,对所述网络层分组中参数进行移除以完成剪枝,包括:
8.一种检测模型剪枝装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述检测模型剪枝方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述检测模型剪枝方法的步骤。