推理速度优先的层-通道联合剪枝方法
未命名
08-15
阅读:144
评论:0
1.本发明涉及计算机应用领域,具体为推理速度优先的层-通道联合剪枝方法。
背景技术:
2.在使用卷积神经网络的任务场合中,如在自动驾驶任务中,通过卷积神经网络对当前场景中的物体进行识别或者检测,从而识别获取当前场景中出现的行人、车辆、路标等物体的具体信息,通过这些环境信息,帮助自动驾驶系统进行下一步的决策。
3.因此,快速识别和检测当前环境存在的物体,对于自动驾驶任务是非常重要的。目前深度卷积神经网络的推理,特别在自动驾驶这类场景中,往往是通过一些边缘端的高性能设备来进行推理,而像自动驾驶这样高时效性的场景,对于模型的推理速度要求极高,如果模型推理速度过慢的话,可能会使得对应得到的信息滞后于场景信息,使得获得的信息失去价值,也带来了安全问题。同时,由于自动驾驶场景对于模型的精度要求较高,往往在这类场景中需要使用更复杂的模型,才能得到更高的准确率,而复杂模型意味着模型规模较大,参数量和计算量较多,推理速度较小模型更慢,对于设备的能耗也更高。这些都不利于模型在边缘设备的推理任务。
4.在这种情况下,通过使用一些模型压缩加速的算法,对模型进行一定压缩,使得模型的推理速度得到显著提升,同时还能降低模型的参数量和计算量,减少模型对内存的占用和降低模型的推理功耗。无疑能够提升模型在任务中的适用性,帮助模型在任务要求的时间范围内完成推理。
5.常见的模型压缩技术包括张量分解、量化、剪枝和知识蒸馏。其中剪枝作为模型压缩技术的一个重要研究方向,可以分为结构化剪枝和非结构化剪枝。
6.非结构剪枝一般是通过将模型每层中权重较小的权值置零来加速网络,其特点即任意剪枝,无需遵循太多规则,但一般需要特定硬件来实现稀疏矩阵的加速计算。结构化剪枝则需要按照规则对神经元、通道或层进行剪枝,最常用的通道剪枝规则是根据神经元、通道或层的重要性进行剪枝。
7.由于非结构化剪枝中往往需要特定硬件才能实现网络加速,在实际使用中并不方便。而结构化剪枝中的神经元剪枝和通道剪枝从模型修剪结果的角度看,其结果是一样的,都是对卷积层中的部分卷积核进行修剪,所以人们在讨论神经元剪枝和通道剪枝时,并不会刻意区分,以下统称通道剪枝。通道剪枝一般可以在保证精度的情况下,实现模型在计算量和参数量上的显著压缩,但在实际使用中,即使模型的计算量和参数量得到了较大幅度的压缩,但在实际推理速度上,并没有显著提升。这是因为通道剪枝减少的是模型并行计算量,虽然某层的部分通道被修剪了,但其他通道仍然需要在该时刻进行推理,所以实际加速效果并不明显。目前层剪枝算法主要有三类方法,一是引入缩放因子,通过对缩放因子进行正则化,从而找到不重要的层;二是在模型的每一层后面都增加一个线性分类层,找到准确率上升较慢的层,认为是不重要的层。三是利用某些模型的特定结构,如resnet的残差结构,找到不重要的残差映射剪去。在实际使用过程中,以上方法会存在收敛性差、可修剪层
数量少、模型适用性窄等问题。
技术实现要素:
8.本发明的目的在于提供推理速度优先的层-通道联合剪枝方法,以解决上述背景技术中提出的问题。
9.为实现上述目的,本发明提供如下技术方案:推理速度优先的层-通道联合剪枝方法,包括以下阶段:阶段s1:正常训练阶段,根据特定任务训练出符合任务要求精度的模型,并且找到适合该任务的优化器及优化策略,为层剪枝阶段和通道剪枝阶段微调提供优化器及优化策略参考;阶段s2:层剪枝阶段,对输入模型使用基于模型恢复力的层剪枝算法进行渐进层剪枝,对得到的层剪枝模型进行微调,并将得到符合任务精度要求的不同层剪枝率的模型作为缓存模型;阶段s3:通道剪枝阶段,弹出当前缓存列表中的最大层剪枝率的层剪枝模型进行通道剪枝,并进行微调,得到一个经过层剪枝和通道剪枝两个维度剪枝的模型,即层-通道剪枝模型;阶段s4:验证反馈阶段,将上一阶段输出的层-通道剪枝模型作为输入,对该模型精度、参数量、计算量等指标进行验证,并将验证得到的指标与任务要求的各项约束指标进行比较,如果模型指标符合任务要求,则直接输出该模型,否则重复阶段s3、s4,直到找到符合任务要求的模型。
10.具体的,阶段s2中:微调是以正常训练阶段的优化器及优化策略为基础,并进行策略调整,其调整包括降低初始学习率、减少训练轮次;基于模型恢复力的层剪枝算法:该方法将修剪某层后的模型在微调n个轮次之后的模型精度定义为模型的恢复力,并根据不同层被修剪后的模型恢复力衡量被修剪层的重要性。模型恢复力越低,对应被修剪层越重要。基于模型恢复力的层剪枝算法根据模型恢复力对各层重要性进行排序,并根据排序列表优先修剪重要性更低的层;缓存模型:通过渐进层剪枝的方式可以得到多个中间输出模型,将符合任务精度要求的模型缓存到缓存列表,在渐进层剪枝过程中,多次使用基于模型恢复力的层剪枝算法判断当前模型的各层重要性,更加精确地找到较不重要的层并进行剪枝。
11.具体的,阶段s3中:微调所使用的优化器及优化策略与层剪枝微调相同。
12.具体的,阶段s4中:如果层-通道剪枝模型符合任务指标要求,则直接输出当前模型作为最终输出结果,否则回退通道剪枝阶段之前,重新在缓存模型中选择符合精度要求的次优层剪枝率的层剪枝模型进行通道剪枝,之后重复通道剪枝阶段和验证反馈阶段,直至找到符合预设指标要求的层-通道剪枝模型。
13.与现有技术相比,本发明的有益效果是:使用模型恢复力来衡量每一层的重要性,该方法在不额外增加模型结构的情况下,快速且有效地判断模型各层重要性;基于“缓存-回退”的层优先联合剪枝方法,提出层剪枝优先策略,将原本层和通道
的二维变量寻优问题转换为了两个一维变量的寻优问题。并且通过“缓存-回退”机制,缩短了两个一维变量的寻优路径,使得寻优过程快速且高效。并且由于层优先和“缓存-回退”机制,最终输出的层-通道剪枝模型总是原始模型中符合任务要求的推理速度最优模型,在提升速度的同时也尽可能压缩了模型的参数量和计算量,进一步节约了内存和模型的能耗。
附图说明
14.图1为本发明的层-通道联合剪枝方法的流程示意图。
15.图2为本发明的基于模型恢复力的层重要性衡量方法示意图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.请参阅图1,本发明提供一种技术方案:推理速度优先的层-通道联合剪枝方法,包括以下阶段:正常训练阶段,模型需要根据特定任务训练出符合任务要求精度的模型,并且找到适合该任务的优化器及优化策略,为层剪枝阶段和通道剪枝阶段微调提供优化器及优化策略参考。
18.层剪枝阶段,本阶段对输入模型使用基于模型恢复力的层剪枝算法进行剪枝,并进行微调。微调过程以正常训练阶段的优化器及优化策略为基础,并进行部分策略调整(如适当降低初始学习率、减少训练轮次)。在本阶段,会有多个符合任务精度要求的不同层剪枝率的模型作为缓存模型。
19.通道剪枝阶段,本阶段以上一阶段多个不同层剪枝率的模型的其中一个作为输入。由于算法的第一目标是提高推理速度,减少推理耗时,在本阶段会优先弹出缓存列表中层剪枝率最大的模型进行通道剪枝,并进行微调。通常来说,通道剪枝微调阶段使用的优化器及优化策略与层剪枝微调阶段一致即可。通道剪枝阶段完成后,可以得到一个经过层剪枝和通道剪枝两个维度剪枝的模型。
20.验证反馈阶段,本阶段将上一阶段输出的层-通道剪枝模型作为输入,对该模型精度、参数量、计算量等指标进行验证,并将验证得到的指标与任务要求的各项约束指标进行比较。如果模型符合任务指标要求,则直接输出当前模型作为最终输出结果,否则回退通道剪枝阶段之前,重新在缓存模型中弹出符合精度要求的次优层剪枝率的层剪枝模型进行通道剪枝,之后重复通道剪枝阶段和验证反馈阶段,直至找到符合预设指标要求的层-通道剪枝模型。对于绝大多数常规任务而言,在任务指标没有极端需求的情况下,一般符合要求的速度最优模型可以在缓存列表中的前两个层剪枝率最高的模型进行通道剪枝得到。因此,在正常情况下,通过回退0次或1次便能找到目标模型。
21.层剪枝优先策略是指在整个联合剪枝方法中优先考虑层剪枝,所有输入通道剪枝的模型都是经过层剪枝的模型,并且会优先将符合精度的层剪枝率更大的模型输入到后续通道剪枝阶段。“缓存-回退”机制是指将层剪枝过程中的多个层剪枝率模型作为缓存模型,
当符合精度要求的最大层剪枝率模型经过通道剪枝后无法满足任务要求时,退回到通道剪枝阶段之前,重新选择次高层剪枝率的层剪枝模型重新输入到通道剪枝阶段,直到找到符合任务精度等指标的层-通道剪枝模型。
22.请参阅图2,本发明提供一种技术方案:基于模型恢复力的层重要性衡量方法:基于模型恢复力的层重要性准则通过判断某层剪掉后的模型精度恢复水平来判断某层的重要性。如图2所示为模型恢复力的计算流程。对于网络中的某个可修剪层,首先需要将该层除移,此时模型依然可以完成前向传播,但由于层剪枝破坏了模型原本前向传播的连续性,此时模型的精度并没有太大的参考价值。为了准确判断该层的重要性,需要再对剪掉该层后的模型进行微调,并且得到对应模型恢复力的曲线图。观察如图2中的模型恢复力曲线图,可以发现,在epoch=0时,由于层剪枝破坏了模型的连续性,模型准确率仅有1.31%,此时精度并不能作为判断被修剪层的重要性指标。而在之后的n个轮次中,模型都恢复了一定的水平,对应的精度表征了该层被修剪后模型的恢复力,此时的精度可以作为判断被修剪层的重要性指标。一般情况下,取n=1即可。在本发明的描述中,需要理解的是,术语“同轴”、“底部”、“一端”、“顶部”、“中部”、“另一端”、“上”、“一侧”、“顶部”、“内”、“前部”、“中央”、“两端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
23.此外,术语“第一”、“第二”、“第三”、“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,由此,限定有“第一”、“第二”、“第三”、“第四”的特征可以明示或者隐含地包括至少一个该特征。
24.在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
25.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
技术特征:
1.推理速度优先的层-通道联合剪枝方法,其特征在于,包括以下阶段:阶段s1:正常训练阶段,根据特定任务训练出符合任务要求精度的模型,并且找到适合该任务的优化器及优化策略,为层剪枝阶段和通道剪枝阶段微调提供优化器及优化策略参考;阶段s2:层剪枝阶段,对输入模型使用基于模型恢复力的层剪枝算法进行渐进层剪枝,对得到的层剪枝模型进行微调,并将得到符合任务精度要求的不同层剪枝率的模型作为缓存模型;阶段s3:通道剪枝阶段,弹出当前缓存列表中的最大层剪枝率的层剪枝模型进行通道剪枝,并进行微调,得到一个经过层剪枝和通道剪枝两个维度剪枝的模型,即层-通道剪枝模型;阶段s4:验证反馈阶段,将上一阶段输出的层-通道剪枝模型作为输入,对该模型精度、参数量、计算量等指标进行验证,并将验证得到的指标与任务要求的各项约束指标进行比较,如果模型指标符合任务要求,则直接输出该模型,否则重复阶段s3、s4,直到找到符合任务要求的模型。2.根据权利要求1所述的推理速度优先的层-通道联合剪枝方法,其特征在于:阶段s2中:微调是以正常训练阶段的优化器及优化策略为基础,并进行策略调整,其调整包括降低初始学习率、减少训练轮次;基于模型恢复力的层剪枝算法:该方法将修剪某层后的模型在微调n个轮次之后的模型精度定义为模型的恢复力,并根据不同层被修剪后的模型恢复力衡量被修剪层的重要性。模型恢复力越低,对应被修剪层越重要。基于模型恢复力的层剪枝算法根据模型恢复力对各层重要性进行排序,并根据排序列表优先修剪重要性更低的层;缓存模型:通过渐进层剪枝的方式可以得到多个中间输出模型,将符合任务精度要求的模型缓存到缓存列表,在渐进层剪枝过程中,多次使用基于模型恢复力的层剪枝算法衡量当前模型的各层重要性,更加精确地找到较不重要的层并进行剪枝。3.根据权利要求1所述的推理速度优先的层-通道联合剪枝方法,其特征在于:阶段s3中:微调所使用的优化器及优化策略与层剪枝微调相同。4.根据权利要求1所述的推理速度优先的层-通道联合剪枝方法,其特征在于:阶段s4中:如果层-通道剪枝模型符合任务指标要求,则直接输出当前模型作为最终输出结果,否则回退通道剪枝阶段之前,重新在缓存模型中选择符合精度要求的次优层剪枝率的层剪枝模型进行通道剪枝,之后重复通道剪枝阶段和验证反馈阶段,直至找到符合预设指标要求的层-通道剪枝模型。
技术总结
本发明公开了推理速度优先的层-通道联合剪枝方法,包括以下阶段:阶段S1:正常训练阶段;阶段S2:层剪枝阶段;阶段S3:通道剪枝阶段;阶段S4:验证反馈阶段,将上一阶段输出的层-通道剪枝模型作为输入,对该模型精度、参数量、计算量等指标进行验证,并将验证得到的指标与任务要求的各项约束指标进行比较,本发明的有益效果是:在不额外添加模型结构的情况下,快速且精确地判断模型中各层的重要性;通过层剪枝优先策略将层和通道的二维变量寻优问题转换成两个一维变量寻优问题,并且通过“缓存-回退”机制找到两个一维变量的快速寻优路径,在显著提升速度的同时尽可能压缩了模型的参数量和计算量,进一步节约了内存和模型的能耗。进一步节约了内存和模型的能耗。进一步节约了内存和模型的能耗。
技术研发人员:陈润和 何杰 齐悦 杨文金 黄源翔 李冠辰
受保护的技术使用者:北京科技大学
技术研发日:2023.05.19
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
