神经网络模型量化方法、系统、装置及计算机可读介质制造方法及图纸

技术编号:32213209 阅读:12 留言:0更新日期:2022-02-09 17:18
本发明专利技术公开了神经网络模型量化方法、系统、装置及计算机可读介质,属于神经网络技术领域,要解决的技术问题为如何避免在推理时计算激活值量化因子。包括如下步骤:构建神经网络模型,并对神经网络模型进行训练;对于目标模型,通过计算模型权重绝对值最大值,基于量化范围计算模型权重量化因子;对于目标模型的每一层,通过最小化均方误差,计算目标模型每层的激活值量化因子;对于目标模型的每一层,通过量化后的定点类型的权重和激活值进行模型推理,并将推理结果逆量化为int32数据类型;对于目标模型的每一层,通过非对称量化的方式对每个算子进行量化,将浮点类型模型权重量化成int8数据类型,并将激活值量化成uint8数据类型。类型。类型。

【技术实现步骤摘要】
神经网络模型量化方法、系统、装置及计算机可读介质


[0001]本专利技术涉及神经网络
,具体地说是神经网络模型量化方法、系统、装置及计算机可读介质。

技术介绍

[0002]近年来,神经网络模型被广泛应用在许多领域,并取得了非常好的效果。但是,神经网络模型由于模型复杂度高、模型大,导致推理时效率较低,推理时间较长,尤其是运行在性能较低的移动设备以及低功耗设备。因此,如何设计低资源消耗的,可以实时预测的、同时保证预测精度的模型成为一个现实问题。在类似于单片机的低功耗设备上,需要低资源消耗的模型。在对实时性要求高的领域,如语音识别、自动驾驶,要求可以实时预测的模型。针对该问题,一般可以从设计高效的模型架构、设计适合特定硬件的模型架构、网络剪枝、知识蒸馏以及模型量化等方面入手。其中,模型量化在该问题取得了较好的效果,将模型从浮点类型量化成定点类型可以有效降低模型大小,同时提高模型推理速度。
[0003]为了提高模型推理速度,如何避免在推理时计算激活值量化因子,是需要解决的技术问题。

技术实现思路

[0004]本专利技术的技术任务是针对以上不足,提供神经网络模型量化方法、系统、装置及计算机可读介质,来解决如何避免在推理时计算激活值量化因子的技术问题。
[0005]第一方面,本专利技术的神经网络模型量化方法,在神经网络模型进行推理之前,通过最小化方程计算神经网络模型每层的激活值量化因子,所述方法包括如下步骤:
[0006]构建神经网络模型,并对神经网络模型进行训练,得到浮点类型的神经网络模型作为目标模型;
[0007]对于目标模型,通过计算模型权重绝对值最大值,基于量化范围计算模型权重量化因子;
[0008]对于目标模型的每一层,通过最小化均方误差,计算目标模型每层的激活值量化因子;
[0009]对于目标模型的每一层,通过量化后的定点类型的权重和激活值进行模型推理,并将推理结果逆量化为int32数据类型;
[0010]对于目标模型的每一层,通过非对称量化的方式对每个算子进行量化,将浮点类型模型权重量化成int8数据类型,并将激活值量化成uint8数据类型,得到最终量化后模型。
[0011]作为优选,对于目标模型,模型权重量化为int8类型,量化范围为[

128,127]。
[0012]作为优选,获取测试数据集,基于测试数据集计算目标模型每层量化后输出以及不量化后输出的均方误差,通过最小化均方误差得到激活值量化因子。
[0013]作为优选,所述均方误差公式为:
[0014][0015]其中,y
i
表示不量化输出,表示量化后输出。
[0016]第二方面,本专利技术的神经网络模型量化系统,用于在神经网络模型进行推理之前,通过最小化方程计算神经网络模型每层的激活值量化因子,所述系统包括:
[0017]构建训练模块,所述构建训练模块用于构建神经网络模型,并对神经网络模型进行训练,得到浮点类型的神经网络模型作为目标模型;
[0018]量化因子计算模块,所述量化因子计算模块应用于目标模型,用于通过计算模型权重绝对值最大值,基于量化范围计算模型权重量化因子;
[0019]激活值量化因子计算模块,所述激活值量化因子计算模块应用于目标模型的每一层,用于通过最小化均方误差,计算目标模型每层的激活值量化因子;
[0020]推理逆量化模块,所述推理逆量化模块应用于目标模型的每一层,用于通过量化后的定点类型的权重和激活值进行模型推理,并将推理结果逆量化为int32数据类型;
[0021]最终量化模块,所述最终量化模块应用于目标模型的每一层,用于通过非对称量化的方式对每个算子进行量化,将浮点类型模型权重量化成int8数据类型,并将激活值量化成uint8数据类型,得到最终量化后模型。
[0022]作为优选,对于目标模型,模型权重量化为int8类型,量化范围为[

128,127]。
[0023]作为优选,激活值量化因子计算模块用于通过如下方法计算激活值量化因子:
[0024]获取测试集数据集,计算目标模型每层量化后输出以及不量化后输出的均方误差,通过最小化均方误差得到激活值量化因子。
[0025]作为优选,所述均方误差公式为:
[0026][0027]其中,y
i
表示不量化输出,表示量化后输出。
[0028]第三方面,本专利技术的装置,包括:至少一个存储器和至少一个处理器;
[0029]所述至少一个存储器,用于存储机器可读程序;
[0030]所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一项任一所述的方法。
[0031]第四方面,本专利技术的计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。
[0032]本专利技术的神经网络模型量化方法、系统、装置及计算机可读介质具有以下优点:在模型推理前提前计算激活值量化因子的方法,通过最小化均方误差计算得到每层的激活值量化因子,保证了模型的精度,同时通过提前计算量化因子,提高了模型的推理速度。
附图说明
[0033]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些
实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]下面结合附图对本专利技术进一步说明。
[0035]图1为实施例1神经网络模型量化方法的流程框图。
具体实施方式
[0036]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定,在不冲突的情况下,本专利技术实施例以及实施例中的技术特征可以相互结合。
[0037]本专利技术实施例提供神经网络模型量化方法、系统、装置及计算机可读介质,用于解决如何避免在推理时计算激活值量化因子的技术问题。
[0038]实施例1:
[0039]本专利技术神经网络模型量化方法,在神经网络模型进行推理之前,通过最小化方程计算神经网络模型每层的激活值量化因子,该方法包括如下步骤:
[0040]S100、构建神经网络模型,并对神经网络模型进行训练,得到浮点类型的神经网络模型作为目标模型;
[0041]S200、对于目标模型,通过计算模型权重绝对值最大值,基于量化范围计算模型权重量化因子;
[0042]S300、对于目标模型的每一层,通过最小化均方误差,计算目标模型每层的激活值量化因子;
[0043]S400、对于目标模型的每一层,通过量化后的定点类型的权重和激活值进行模型推理,并将推理结果逆量化为int32数据类型;
[0044]S500、对于目标模型的每一层,通过非本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.神经网络模型量化方法,其特征在于在神经网络模型进行推理之前,通过最小化方程计算神经网络模型每层的激活值量化因子,所述方法包括如下步骤:构建神经网络模型,并对神经网络模型进行训练,得到浮点类型的神经网络模型作为目标模型;对于目标模型,通过计算模型权重绝对值最大值,基于量化范围计算模型权重量化因子;对于目标模型的每一层,通过最小化均方误差,计算目标模型每层的激活值量化因子;对于目标模型的每一层,通过量化后的定点类型的权重和激活值进行模型推理,并将推理结果逆量化为int32数据类型;对于目标模型的每一层,通过非对称量化的方式对每个算子进行量化,将浮点类型模型权重量化成int8数据类型,并将激活值量化成uint8数据类型,得到最终量化后模型。2.根据权利要求1所述的神经网络模型量化方法,其特征在于对于目标模型,模型权重量化为int8类型,量化范围为[

128,127]。3.根据权利要求1或2任一项所述的神经网络模型量化方法,其特征在于获取测试数据集,基于测试数据集计算目标模型每层量化后输出以及不量化后输出的均方误差,通过最小化均方误差得到激活值量化因子。4.根据权利要求3所述的神经网络模型量化方法,其特征在于所述均方误差公式为:其中,y
i
表示不量化输出,表示量化后输出。5.神经网络模型量化系统,其特征在于用于在神经网络模型进行推理之前,通过最小化方程计算神经网络模型每层的激活值量化因子,所述系统包括:构建训练模块,所述构建训练模块用于构建神经网络模型,并对神经网络模型进行训练,得到浮点类型的神经网络模型作为目标模型;量化因子计算模块,所述量化因子计算模块应用于目标模型,...

【专利技术属性】
技术研发人员:陈其宾李锐张晖
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1