神经网络模型量化方法及装置、存储介质及电子设备制造方法及图纸

技术编号:37119862 阅读:21 留言:0更新日期:2023-04-01 05:14
本公开涉及模型量化技术领域,具体涉及一种神经网络模型量化方法及装置、计算机可读存储介质及电子设备,方法包括:获取浮点型预训练神经网络模型;确定预设量化精度,并根据预设量化精度对预训练神经网络模型进行量化得到中间神经网络模型;获取训练数据,并利用训练数据对中间神经网络模型进行预设量化精度的量化感知训练得到目标神经网络模型。本公开实施例的技术方案提升模型量化方法的精度,克服了量化过程中模型精度损失较大的问题。服了量化过程中模型精度损失较大的问题。服了量化过程中模型精度损失较大的问题。

【技术实现步骤摘要】
神经网络模型量化方法及装置、存储介质及电子设备


[0001]本公开涉及模型量化
,具体而言,涉及一种神经网络模型量化方法及装置、计算机可读存储介质及电子设备。

技术介绍

[0002]随着深度学习的快速发展,深度学习模型的精度不断地得到提高。这些深度学习模型在应用时,也需要消耗巨大的硬件资源,不适用于移动终端等,为了解决在移动终端上应用高精度的深度学习模型,通常会采用对模型进行量化的方法来获得可以在移动终端上使用的模型。
[0003]但是,相关技术中的模型量化方法的量化精度较差,会造成模型的精度损失,且量化过程中的计算量较大。
[0004]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]本公开的目的在于提供一种神经网络模型量化方法、神经网络模型量化装置、计算机可读介质和电子设备,进而至少在一定程度上提升模型量化方法的精度,克服了量化过程中模型精度损失较大的问题。
[0006]根据本公开的第一方面,提供一种神经网络模型量化方法,包括:获取浮点型预训练神经网络模型;确定预设量化精度,并根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型;获取训练数据,并利用所述训练数据对所述中间神经网络模型进行预设量化精度的量化感知训练得到目标神经网络模型。
[0007]根据本公开的第二方面,提供一种神经网络模型量化装置,包括:获取模块,用于获取浮点型预训练神经网络模型;量化模块,用于确定预设量化精度,并根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型;训练模块,用于获取训练数据,并利用所述训练数据对所述中间神经网络模型进行预设量化精度的量化感知训练得到目标神经网络模型。
[0008]根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法。
[0009]根据本公开的第四方面,提供一种电子设备,其特征在于,包括:一个或多个处理器;以及存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的方法。
[0010]本公开的一种实施例所提供的神经网络模型量化方法,具体可以包括获取浮点型预训练神经网络模型;确定预设量化精度,并根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型;获取训练数据,并利用所述训练数据对所述中间神经网络模型进行预设量化精度的量化感知训练得到目标神经网络模型。相较于现有技
术,在进行量化感知训练之前对预训练模型进行了量化处理,改善了预训练模型的权重分布,能够高量化精度,降低了得到的目标神经网络模型的精度损失。
[0011]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0012]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0013]图1示出了可以应用本公开实施例的一种示例性系统架构的示意图;
[0014]图2示意性示出本公开示例性实施例中一种神经网络模型量化方法的流程图;
[0015]图3示意性示出本公开示例性实施例中一种对预训练神经网络模型量化的流程图;
[0016]图4示意性示出本公开示例性实施例中一种确定量化范围的流程图;
[0017]图5示意性示出本公开示例性实施例中另一种确定量化范围的流程图;
[0018]图6示意性示出本公开示例性实施例中一种量化范围确定的数据结构图;
[0019]图7示意性示出本公开示例性实施例中另一种量化范围确定的数据结构图;
[0020]图8示意性示出本公开示例性实施例中训练中间神经网络模型的流程图;
[0021]图9示意性示出本公开示例性实施例中更新量化参数的流程图;
[0022]图10示意性示出本公开示例性实施例中神经网络模型量化装置的组成示意图;
[0023]图11示出了可以应用本公开实施例的一种电子设备的示意图。
具体实施方式
[0024]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
[0025]此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0026]在相关技术中,随着机器学习、深度学习的不断发展,深度神经网络被广泛的运用在自动驾驶、计算机视觉、自然语言处理、语音识别和数据处理等各个方面。以自动驾驶领域中的物料检测为例,通常是采用训练好的神经网络模型对输入数据进行预测处理,以得到对应的物料检测结果。但是,通常训练好的神经网络模型中的数据通常为32位浮点数,为了使得训练好的神经网络模型可以部署到不同硬件设备(如移动端设备)上,通常对神经网络模型进行量化。
[0027]神经网络模型量化是一种流行的深度学习优化方法,例如,将模型数据从32位浮点数(FP32)转换成定点数(如INT8),使得量化后的模型尺寸缩小,所占用内存比较小,另外,计算使用定点乘法器而不是浮点乘法器,速度更快,并且访问内存所占用的传输带宽更低。基于以上优点,模型量化成为在嵌入式设备上进行网络模型加速的一个重要手段。因此,如何能够使得训练好的神经网络模型较好的适用于嵌入式设备上,成为亟待解决的问题。
[0028]相关技术在对模型进行量化处理时,通常会首先对与预训练模型进行处理,然后在对训练之后模型进行量化感知训练,进而得到量化后模型,浮点训练出来的模型权重可能对量化不友好,最终导致量化感知训练之后的模型精度不达预期。例如权重数据分布过于分散,极值点过大。
[0029]基于上述缺点,本公开提供一种神经网络模型量化方法,图1示出了可以实现上述神经网络模型量化方法的系统架构的示意图,该系统架构100可以包括终端110与服务器120。其中,终端110可以是智能手机、平板电脑、台式电脑、笔记本电脑等终端设备,服务器120泛指提供本示例性实施方式中神经网络模型量化方法相关服务的后台系统,可以是一台服务器或多台服务器形成的集群。终端11本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型量化方法,其特征在于,包括:获取浮点型预训练神经网络模型;确定预设量化精度,并根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型;获取训练数据,并利用所述训练数据对所述中间神经网络模型进行预设量化精度的量化感知训练得到目标神经网络模型。2.根据权利要求1所述的方法,其特征在于,所述根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型,包括:根据所述预设量化精度确定中间量化位数;根据所述量化位数对所述预训练神经网络模型进行量化得到中间神经网络模型。3.根据权利要求1所述的方法,其特征在于,所述根据所述预设量化精度对所述预训练神经网络模型进行量化得到中间神经网络模型,包括:确定所述预训练神经网络模型中各层网络的量化范围;根据所述预设量化精度和所述量化范围对所述预训练神经网络模型中的至少一层网络进行量化得到中间神经网络模型。4.根据权利要求3所述的方法,其特征在于,所述确定所述预训练神经网络模型中各层网络的量化范围,包括:获取各层网络中的权重值集合;根据权重值集合和预设比例系数确定各层网络的量化范围。5.根据权利要求4所述的方法,其特征在于,根据权重值集合和预设比例系数确定各层网络的量化范围,包括:根据所述预设比例系数在所述权重值集合中确定最大值和最小值;根据所述最大值和所述最小值确定所述量化范围。6.根据权利要求1所述的方法,其特征在于,获取训练数据,并利用所述训练数据对所述中间神经网络模型进行预设量化精度的量化感知训练得到目标神...

【专利技术属性】
技术研发人员:陈腊梅
申请(专利权)人:OPPO重庆智能科技有限公司
类型:发明
国别省市:

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

1