本发明涉及深度学习,尤其是涉及一种深度神经网络模型轻量化方法、装置及存储介质。
背景技术:
1、随着近年来深度学习网络模型的流行,许多诸如智能手机,智能手表,智能家居,自动驾驶汽车等可移动式电子设备上都开始逐渐部署上深度学习网络模型,但是成本和体型的需求限制了其计算资源和计算能力,而产品的需求和实用性又需要这些智能设备具有较高的精度和较快的运算速度。如何在保证深度学习网络模型的精度的同时,减小网络模型所占用的计算资源和运行带宽,即对网络模型的轻量化成为了亟待解决的重要问题。
2、现有的网络轻量化方法之一将重点放在改变网络结构上,如模型剪枝方法,其主要通过在对训练好的模型进行继续训练,在继续训练过程中添加批正则化层的l2损失进入网络损失函数,通过l2损失约束各输出通道的均值,最后将通道均值为0的通道裁剪掉。使用模型剪枝这样的轻量化方法可以对网络结构进行直接的修改,降低深度网络模型的复杂度,但是,通过改变网络结构进行网络轻量化的方法有很强的局限性,无法直接保证网络模型轻量化的有效性,如对于已经设计的紧凑的网络模型无法再进行网络的裁剪,同时过多改变网络原先结构会破坏网络原有的精度和性能。另一个常用的网络轻量化方法是通过硬件进行模型优化。深度学习网络模型前向计算由大量的矩阵运算组成,大量的矩阵运算可以使用一些针对并行计算模块来设计的深度学习计算平台进行并行加速,如在实际生活中常用的gpu或fpga,其运行速度远高于单纯使用cpu进行矩阵运算。例如,中国专利cn116502691a公开了一种应用于fpga的深度卷积神经网络混合精度量化方法,该方法通过硬件优化避免了破环原网络结构的问题,但在硬件限制较大的场景下很难发挥作用,且较多的硬件会导致网络的内存占用增大并增加通信开销。除此之外,利用量化方法实现网络轻量化也是一种常用的软件优化方法。对于计算机而言,整型运算速度通常要远远高于浮点型运算速度。将深度卷积网络模型由原本的浮点型模型转化为整型模型,将极大地压缩模型体积,提高网络前向计算速度,实现深度卷积网络模型的轻量化。但是,现有量化方法仍然存在精度损失问题,导致深度学习网络模型性能下降。因此,在利用量化方法实现网络轻量化时,如何在减少模型的计算时间和功耗的同时,提高网络量化精度、保证模型性能的稳定,成为本领域需要解决的问题。
技术实现思路
1、本发明的目的就是为了克服上述现有技术存在的量化模型时难以兼顾提高计算效率、量化精度和保证模型性能稳定的缺陷而提供一种深度神经网络模型轻量化方法、装置及存储介质。
2、本发明的目的可以通过以下技术方案来实现:
3、根据本发明的第一方面,提供一种深度神经网络模型轻量化方法,该方法包括以下步骤:
4、s1,获取经浮点型数据预训练的第一深度神经网络模型;
5、s2,对所述第一深度神经网络模型进行后训练量化处理,利用网络量化框架进行数据标定,并根据每层量化器的标定值,确定特征输入和权重输入的数据范围以及量化器比例系数,得到整型精度下的第二深度神经网络模型,所述网络量化框架包括逐向量量化器和逐通道量化器,所述逐向量量化器设置于特征输入端,所述逐通道量化器设置于权重输入端;
6、s3,终止数据标定,基于梯度反传函数和所述比例系数,更新所述第二深度神经网络模型的权重输入;
7、s4,基于更新后的权重输入和调整后的超参数,训练所述第二深度神经网络模型,所述调整后的超参数包括起始学习率和训练策略,所述起始学习率小于训练所述第一深度神经网络模型时的起始学习率。
8、作为优选的技术方案,所述起始学习率为训练所述第一深度神经网络时起始学习率的百分之一。
9、作为优选的技术方案,所述训练策略采用余弦下降训练策略。
10、作为优选的技术方案,所述浮点型数据的精度为2-24。
11、作为优选的技术方案,所述逐向量量化器和所述逐通道量化器为线性对称量化器。
12、作为优选的技术方案,所述梯度反传函数采用直通估计法进行计算。
13、作为优选的技术方案,所述后训练量化处理的过程包括维护数据统计直方图。
14、作为优选的技术方案,所述确定比例系数的过程包括,选取所述数据统计直方图中的百分比作为标定值,并进行精度验证,选取精度最高的标定值作为比例系数。
15、根据本发明的第二方面,提供一种深度神经网络模型轻量化装置,包括存储器、处理器,以及存储于所述存储器中的程序,所述处理器执行所述程序时实现所述的方法。
16、根据本发明的第三方面,提供一种存储介质,其上存储有程序,所述程序被执行时实现所述的方法。
17、与现有技术相比,本发明具有以下有益效果:
18、1、本发明将后训练量化与量化训练相结合,通过后训练量化获得网络每层更好的量化区间,利用梯度反传函数实现自主更新量化训练的权重输入,并根据调整后的起始学习率和训练策略进行量化训练,进一步减小网络量化误差,能够在提高模型计算效率和量化精度的同时,降低模型波动幅度,有效提升量化模型的网络性能;
19、2、本发明将整型精度下量化训练的起始学习率设置为训练第一深度神经网络时起始学习率的百分之一,并采用余弦下降训练策略,能够使得量化训练过程中得模型性能波动更加平稳,加速网络模型的量化训练过程,进一步提升网络量化精度和量化模型网络性能;
20、3、本发明提供的网络量化框架,采用逐向量的方式量化特征输入,采用逐通道的方式量化权重输入,能够保证不同输入样本下比例系数的独立性,进一步提高深度神经网络模型的计算效率和网络性能。
1.一种深度神经网络模型轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的深度神经网络模型轻量化方法,其特征在于,所述起始学习率为训练所述第一深度神经网络时起始学习率的百分之一。
3.根据权利要求1所述的深度神经网络模型轻量化方法,其特征在于,所述训练策略采用余弦下降训练策略。
4.根据权利要求1所述的深度神经网络模型轻量化方法,其特征在于,所述浮点型数据的精度为2-24。
5.根据权利要求4所述的深度神经网络模型轻量化方法,其特征在于,所述逐向量量化器和所述逐通道量化器为线性对称量化器。
6.根据权利要求1所述的深度神经网络模型轻量化方法,其特征在于,所述梯度反传函数采用直通估计法进行计算。
7.根据权利要求1所述的深度神经网络模型轻量化方法,其特征在于,所述后训练量化处理的过程包括维护数据统计直方图。
8.根据权利要求7所述的深度神经网络模型轻量化方法,其特征在于,所述确定比例系数的过程包括,选取所述数据统计直方图中的百分比作为标定值,并进行精度验证,选取精度最高的标定值作为比例系数。
9.一种深度神经网络模型轻量化装置,包括存储器、处理器,以及存储于所述存储器中的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一所述的方法。
10.一种存储介质,其上存储有程序,其特征在于,所述程序被执行时实现如权利要求1-8中任一所述的方法。