模型量化方法、电子设备、介质和程序产品技术

技术编号:34340456 阅读:60 留言:0更新日期:2022-07-31 03:48
本申请涉及机器学习技术领域,特别涉及一种模型量化方法、电子设备、介质和程序产品。该模型包括第一运算、第二运算以及第三运算,其中,第三运算为第一运算和第二运算的关联运算;并且方法包括:获取第一运算的第一量化系数、第一运算的第一量化数据、第二运算的第二量化系数、第二运算的第二量化数据;基于第一量化系数、第二量化系数的大小关系,将第一量化系数或第二量化系数确定为公共量化系数;基于公共量化系数对第一量化数据或第二量化数据进行量化,并基于量化结果得到第三运算的运算结果。如此,可以提高模型的精度、提高电子设备运行模型的速度。备运行模型的速度。备运行模型的速度。

【技术实现步骤摘要】
模型量化方法、电子设备、介质和程序产品


[0001]本申请涉及机器学习
,特别涉及一种模型量化方法、电子设备、介质和程序产品。

技术介绍

[0002]随着人工智能(Artificial Intelligence,AI)技术的快速发展,神经网络(例如,深度神经网络)近年来广泛应用于在计算机视觉、语音、自然语言、强化学习等领域。但是随着神经网络算法的发展,算法的复杂度越来越高,模型结构越来越复杂,相应地,部署有神经网络模型的设备的运算资源和内存需求也会越大。
[0003]因此,在神经网络模型被部署于运算资源、存储资源有限的电子设备(手机等嵌入式电子设备)中时,一般需要通过对神经网络模型进行量化,以使得模型内存变小,数据处理速度变快。但是,由于对神经网络模型进行量化会将神经网络模型中的权重矩阵数据和输入数据从高精度的数量级量化为为低精度的数量级,会出现运算的精度损失;且目前神经网络中的每个算子一般有多个子算子,而多个子算子一般为独立量化,由于确定每个子算子的量化系数的输入数据、权重矩阵数据的量化系数不同,因此可能存在一些子算子的量化系数不一致,而当进行运算的多个子算子的量化系数不一致时,则会出现更大的精度损失。

技术实现思路

[0004]本申请的目的在于提供了一种模型量化方法、电子设备、介质。
[0005]本申请的第一方面提供了一种模型量化方法,应用于电子设备,该模型为GRU模型或LSTM模型,模型包括第一运算、第二运算以及第三运算,其中,第三运算至少为第一运算和第二运算两者的关联运算;并且方法包括:获取第一运算的第一量化系数、第一运算的第一量化数据、第二运算的第二量化系数、第二运算的第二量化数据;基于第一量化系数、第二量化系数的大小关系,确定出公共量化系数;基于公共量化系数对第一量化数据或第二量化数据进行量化,并基于量化结果得到第三运算的运算结果。
[0006]通过本申请实施例提供的方法,可以提高第三运算的运算精度。在一些实施例中,第一运算可以是下文中第一算子对应的运算,第二运算可以是下文中第二算子对应的运算,第三运算可以是下文中第三算子对应的运算。
[0007]在上述第一方面的一种可能的实现中,上述基于第一量化系数、第二量化系数的大小关系,确定出公共量化系数,包括:以第一量化系数和第二量化系数中较大的一个作为公共量化系数。
[0008]在本申请实施例中,公共量化系数为第一量化系数和第二量化系数中的一个,从而电子设备只需要对第一量化数据或第二量化数据进行量化,可以减少电子设备在运算模型过程中将量化数据反量化为浮点数据、再将浮点数据重新量化为量化数据的次数,提高电子设备运行模型的速度。
[0009]在上述第一方面的一种可能的实现中,上述基于公共量化系数对第一量化数据或第二量化数据进行量化,包括:在公共量化系数为第二量化系数的情况下,基于第二量化系数将第一运算的第一量化数据量化为第三量化数据;在公共量化系数为第一量化系数的情况下,基于第一量化系数将第二运算的第二量化数据量化为第四量化数据。
[0010]在上述第一方面的一种可能的实现中,上述基于第二量化系数将第一运算的第一量化数据量化为第三量化数据,包括:根据第一量化系数将第一量化数据反量化为对应的第一浮点数据,并根据第二量化系数将第一浮点数据量化为第三量化数据。
[0011]在上述第一方面的一种可能的实现中,上述基于第一量化系数将第二运算的第二量化数据量化为第四量化数据,包括:根据第二量化系数将第二量化数据反量化为对应的第二浮点数据,并根据第一量化系数将第二浮点数据量化为第四量化数据。
[0012]在上述第一方面的一种可能的实现中,上述基于量化结果得到第三运算的运算结果,包括:在公共量化系数为第二量化系数的情况下,根据第三量化数据、第二量化数据、第二量化系数,得到第三运算的运算结果;在公共量化系数为第一量化系数的情况下,根据第一量化数据、第四量化数据、第一量化系数,得到第三运算的运算结果。
[0013]在上述第一方面的一种可能的实现中,上述第三运算为第一运算和第二运算的关联运算,包括:第一量化数据为第一运算的输出数据、第二量化数据为第二运算的输出数据,并且第三运算的输入数据包括第一量化数据和第二量化数据。
[0014]第二方面,本申请提供了一种模型量化装置,该装置包括:
[0015]公共量化系数确定模块,用于获取第一运算的第一量化系数、第一运算的第一量化数据、第二运算的第二量化系数、第二运算的第二量化数据,并基于第一量化系数、第二量化系数的大小关系,确定出公共量化系数;数据量化模块,用于基于公共量化系数对第一量化数据或第二量化数据进行量化,得到量化结果;运算模块,用于基于量化结果得到第三运算的运算结果。
[0016]第三方面,本申请提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的一个或多个处理器之一,用于执行所述指令以使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种模型量化方法。
[0017]第四方面,本申请实施例提供了一种可读介质,该可读介质上存储有指令,该指令被电子设备执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种模型量化方法。
[0018]第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括指令,该指令被电子设备执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种模型量化方法。
附图说明
[0019]图1A根据本申请的一些实施例,示出了一种GRU模型的应用示意图;
[0020]图1B根据本申请的一些实施例,示出了一种GRU模型的结构示意图;
[0021]图2根据本申请的一些实施例,示出了一种LSTM模型的结构示意图;
[0022]图3根据本申请的一些实施例,示出了一种模型量化场景的示意图;
[0023]图4根据本申请的一些实施例,示出了一种GRU模型量化方法的流程图;
[0024]图5根据本申请的一些实施例,示出了一种LSTM模型量化方法的流程图;
[0025]图6根据本申请的一些实施例,示出了一种模型量化装置的结构示意图;
[0026]图7根据本申请的一些实施例,示出了一种电子设备10的结构框图;
[0027]图8根据本申请的一些实施例,示出了一种SOC 1100的结构框图。
具体实施方式
[0028]本申请的说明性实施例包括但不限于一种模型量化方法、装置、电子设备、介质以及计算机程序产品。下面将结合附图对本申请的实施例作进一步地详细描述。
[0029]由于本申请涉及神经网络模型、模型量化的内容,为了更加清楚的说明本申请实施例的方案,下面对本申请实施例中涉及到的一些内容进行解释。
[0030](1)神经网络模型
[0031]神经网络模型是由大量的处理单元(称为神经元)广泛地互相连接而形成的复杂网络本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型量化方法,应用于电子设备,其特征在于,所述模型为GRU模型或LSTM模型,所述模型包括第一运算、第二运算以及第三运算,其中,所述第三运算至少为所述第一运算和所述第二运算两者的关联运算;并且所述方法包括:获取所述第一运算的第一量化系数、所述第一运算的第一量化数据、所述第二运算的第二量化系数、所述第二运算的第二量化数据;基于所述第一量化系数、所述第二量化系数的大小关系,确定出公共量化系数;基于所述公共量化系数对所述第一量化数据或所述第二量化数据进行量化,并基于量化结果得到所述第三运算的运算结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一量化系数、所述第二量化系数的大小关系,确定出公共量化系数,包括:以所述第一量化系数和所述第二量化系数中较大的一个作为所述公共量化系数。3.根据权利要求2所述的方法,其特征在于,所述基于所述公共量化系数对所述第一量化数据或所述第二量化数据进行量化,包括:在所述公共量化系数为所述第二量化系数的情况下,基于所述第二量化系数将所述第一运算的所述第一量化数据量化为第三量化数据;在所述公共量化系数为所述第一量化系数的情况下,基于所述第一量化系数将所述第二运算的所述第二量化数据量化为第四量化数据。4.根据权利要求3所述的方法,其特征在于,所述基于所述第二量化系数将所述第一运算的所述第一量化数据量化为第三量化数据,包括:根据所述第一量化系数将所述第一量化数据反量化为对应的第一浮点数据,并根据所述第二量化系数将所述第一浮点数据量化为所述第三量化数据。5.根据权利要求3所述的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:章小龙武大伟
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1