模型动态量化方法、装置、电子设备和计算机可读介质与流程

文档序号:26838832发布日期:2021-10-08 19:44阅读:113来源:国知局
模型动态量化方法、装置、电子设备和计算机可读介质与流程

1.本技术实施例涉及计算机技术领域,具体涉及模型动态量化方法、装置、电子设备和计算机可读介质。


背景技术:

2.前向传播,是指数据从模型的输入层输入,之后根据计算图逐算子地进行运算,直到由输出层输出结果的计算过程。前向传播通常应用于利用训练后的模型进行预测的阶段。此阶段往往需要将模型部署于嵌入式平台或移动平台中执行。由于嵌入式平台和移动平台的计算能力和存储能力有限,通常需要进行模型量化并利用量化模型执行前向传播任务,以降低模型计算的复杂度,从而减少计算资源消耗以及存储开销等。
3.现有技术中,为得到量化模型,通常需要由开发者进行模型的量化训练,或者由开发者提供一定数量的输入数据(如图像等)以通过推理引擎得到量化模型。然而,上述方式不仅人力成本较高,且由于开发者能够提供的输入数据有限,易导致量化模型的精度较低。


技术实现要素:

4.本技术实施例提出了模型动态量化方法、装置、电子设备和计算机可读介质,以解决现有技术中模型量化的人力成本较高且量化模型的精度较低的技术问题。
5.第一方面,本技术实施例提供了一种模型动态量化方法,该方法包括:在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将所述量化模型切换为对应的原始模型,以利用所述原始模型执行后续的前向传播任务;统计所述原始模型所涉及的各张量在所述原始模型执行前向传播任务期间的数值范围;响应于满足第二预设条件,基于所述数值范围更新所述量化模型,并将所述原始模型切换为更新后的所述量化模型,以利用更新后的所述量化模型执行后续的前向传播任务。
6.第二方面,本技术实施例提供了一种模型动态量化装置,该装置包括:第一切换单元,被配置成在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将所述量化模型切换为对应的原始模型,以利用所述原始模型执行后续的前向传播任务;统计单元,被配置成统计所述原始模型所涉及的各张量在所述原始模型执行前向传播任务期间的数值范围;第二切换单元,被配置成响应于满足第二预设条件,基于所述数值范围更新所述量化模型,并将所述原始模型切换为更新后的所述量化模型,以利用更新后的所述量化模型执行后续的前向传播任务。
7.第三方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中所描述的方法。
8.第四方面,本技术实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面中所描述的方法。
9.本技术实施例提供的模型动态量化方法、装置、电子设备和计算机可读介质,在利
用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务,并统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围;在利用量化模型执行前向传播任务的过程中,响应于满足第二预设条件,基于所确定的数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。此过程不需要开发者执行量化训练过程,也不需要开发者手动给定数据,由此降低了人力成本。同时,在前向传播过程中量化模型能够动态更新,实现了量化模型的自校准,由此提高了量化模型的精度。
附图说明
10.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
11.图1是本技术一个实施例提供的实施环境的示意图;
12.图2是根据本技术的模型动态量化方法的一个实施例的流程图;
13.图3是根据本技术的模型动态量化方法的一个计算图的示意图;
14.图4是根据本技术的模型动态量化方法的又一个实施例的流程图;
15.图5是根据本技术的模型动态量化装置的一个实施例的结构示意图;
16.图6是用于实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
17.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
18.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
19.请参考图1,其示出了本技术一个实施例提供的实施环境的示意图。该实施环境可以包括:计算机设备10和终端20。
20.计算机设备10是指具有较强的数据存储和计算能力的电子设备,例如计算机设备10可以是pc(personal computer,个人计算机)或服务器。终端20可以是诸如手机、平板电脑、电子书阅读器、多媒体播放设备、可穿戴设备、pc等电子设备。
21.如图1所示,技术人员可以在计算机设备10上构建用于原始模型,并通过计算机设备10对该原始模型进行训练。此处的模型可以是神经网络模型,如卷积神经网络等,具体可以是图像处理模型(如人脸识别模型、图像分割模型、目标检测模型等)、语音处理模型(如语音识别模型等)等。
22.完成训练的原始模型可以从计算机设备10发布至终端20中。终端20既可以使用原始模型执行前向传播任务,也可以在执行前向传播任务的过程中对原始模型进行量化以得到量化模型,并利用量化模型执行前向传播任务,还可以对量化模型的量化参数进行动态更新。通常,量化模型满足一定条件时,可不再使用原始模型执行前向传播任务。由于量化模型计算的复杂度相较于原始模型明显降低,因而利用量化模型执行前向传播任务能够显
著减少计算资源消耗以及存储开销。
23.前向传播是指数据从模型的输入层输入,之后根据计算图逐算子地进行运算,直到由输出层输出结果的计算过程。前向传播通常应用于利用训练后的模型进行预测的阶段。例如,当终端20接收到待识别的人脸图像,即可将该人脸图像输入至量化模型,得到量化模型输出的人脸识别结果。此过程即为前向传播过程。
24.量化是一种行之有效的模型压缩方法。模型量化即为将模型所涉及的各张量的数据类型由浮点型(如32位浮点型)调整为整型(如8位整型或16位整型)的过程,其可有效降低模型计算的复杂度,从而减少硬件实现的资源消耗,包括计算资源与存储开销等。
25.需要说明的是,终端20还可以替换为嵌入式平台、物联网设备等,如dsp(digital signal process,数字信号处理器)、fpga(field programmable gate array,现场可编程逻辑门阵列)等。本技术实施例对此不作具体限定。
26.需要指出的是,本技术的模型动态量化方法可应用于上述终端20。当需要依赖高性能平台执行本技术的模型动态量化方法时,也可应用于如服务器等的电子设备中。
27.请参考图2,其示出了根据本技术的模型动态量化方法的一个实施例的流程200。该模型动态量化方法,包括以下步骤:
28.步骤201,在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务。
29.在本实施例中,模型动态量化方法的执行主体(如图1所示的终端20)中可预先部署有原始模型。原始模型可以是神经网络模型,如图像处理模型(如人脸识别模型、图像分割模型、目标检测模型等)、语音处理模型(如语音识别模型等)等。可预先对原始模型所涉及的各张量的量化参数进行初始化,以得到与原始模型对应的量化模型。在一些示例中,原始模型所涉及的各张量的数据类型为浮点型,量化模型所涉及的各张量的数据类型为整型。
30.在本实施例中,前向传播任务可以是利用模型进行预测的任务。以人脸识别模型为例,前向传播任务可以是人脸识别任务。上述执行主体既可以利用原始模型执行前向传播任务,也可以利用初始化后的量化模型执行前向传播任务。上述执行主体可以根据不同条件,触发原始模型或者量化模型执行前向传播任务,从而实现原始模型或者量化模型的动态切换。
31.在本实施例中,在利用量化模型执行前向传播任务的过程中,当满足第一预设条件时,上述执行主体可以将量化模型切换为原始模型,以利用原始模型执行前向传播任务。其中,第一预设条件可以根据需要进行设定。
32.在一些可选的实现方式中,在利用量化模型执行前向传播任务的过程中,上述执行主体可以实时获取量化模型的输入数据(如待识别的人脸图像)的直方图(如人脸图像的颜色直方图)。以颜色直方图为例,颜色直方图可以表示不同色彩在图像中所占的比例,通常用于表征图像的颜色特征。具体的,可以将颜色空间划分成若干个颜色区间,进行颜色量化。之后,计算图像在每个颜色区间内的像素数量,从而生成颜色直方图。需要说明的是,颜色直方图可以基于各种颜色空间所生成,例如rgb(red green blue,红绿蓝)颜色空间、hsv(hue saturation value,色彩饱和度值)颜色空间、hsi(hue saturation intensity,色彩饱和度亮度)颜色空间等等。在不同的颜色空间中,颜色直方图中的各个颜色区间可以具有
不同的数值。
33.上述执行主体每获取到一个直方图,可检测该直方图与上一次获取的直方图的相似度。在所实时获取到的直方图与上一次获取的直方图的相似度大于预设阈值时,意味着此时的输入数据发生了较大变化,并可认为模型中的各张量的数据范围也发生了较大变化以致量化模型的精度需要调整,此时可将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务。
34.通过检测输入数据的直方图的变化情况,能够自动检测量化模型是否需要更新,由此在前向传播过程中量化模型能够动态更新,从而实现了量化模型的自校准,且能够使量化模型保持在高精度。
35.在一些可选的实现方式中,在利用量化模型执行前向传播任务的过程中,上述执行主体可以实时对系统工作状态进行监控。此处的系统即为上述执行主体的操作系统。系统工作状态可包括但不限于忙时、闲时等。上述执行主体可通过读取系统工作状态标识,来确定系统工作状态。在系统工作状态为闲时的情况下,可将量化模型切换为对应的原始模型。由此,可以避免系统计算资源不足时使用计算资源占用量较大的原始模型执行任务,可有效避免在模型推理过程中系统性能受到影响。
36.在一些可选的实现方式中,在利用量化模型执行前向传播任务的过程中,上述执行主体可以实时统计利用量化模型执行前向传播任务的时长。响应于利用量化模型执行前向传播任务的时长大于或等于第一预设时长,可将量化模型切换为对应的原始模型。实践中,在利用量化模型执行前向传播任务的起始时刻,可设定一计时器。在计时器中断时,可将量化模型切换为对应的原始模型。由此,可在利用量化模型执行前向传播任务一定时长后自动切换为原始模型,从而实现量化模型与原始模型的灵活切换,从而实现量化模型的自动更新。
37.需要说明的是,量化模型可采用各种方式进行初始化。作为示例,首先可以利用原始模型执行前向传播任务,并统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的初始数值范围;而后基于初始数值范围初始化各张量的量化参数,以初始化量化模型。作为又一示例,可以离线统计原始模型所涉及的各张量的高斯分布;而后基于高斯分布初始化各张量的量化参数,以初始化量化模型。作为再一示例,可以采用不依赖于数据的量化压缩方法调整模型结构,计算综合情况下精度相对较高的量化参数,并对量化模型进行初始化。不限于上述列举。
38.步骤202,统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围。
39.在本实施例中,上述执行主体可以统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围。原始模型可涉及多个张量。可针对每个张量进行数值范围的统计,因而可得到分别与各张量对应的数值范围统计结果。每个张量可具有对应的量化参数。量化参数可以指量化运算的参变量,其可表征张量与量化后的张量的转换关系。基于量化参数,可实现对张量的量化。量化参数可基于张量的数值范围确定。当数值范围变化时,张量的量化参数可对应更新。
40.在本实施例中,原始模型所涉及的张量可包括但不限于各个算子的输入、输出、参数等。实践中,对任何函数进行某一项操作都可以认为是一个算子,在神经网络等模型中常
见的算子可包括但不限于加法算子、乘法算子、激活函数算子、卷积算子等。以加法算子为例,其可具有两个输入、一个输出,因而共涉及三个张量。
41.需要说明的是,由于原始模型与量化模型交替工作,因此此处统计数值范围所使用的数据,除原始模型此次工作期间(即此次执行前向传播任务期间)的数据,还可涵盖原始模型历史工作期间的数据。
42.步骤203,响应于满足第二预设条件,基于数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。
43.在本实施例中,在利用原始模型执行前向传播任务的过程中,响应于满足第二预设条件,上述执行主体可基于步骤202所确定出的各张量的数值范围,对各张量的量化参数更新,从而实现对量化模型的更新。在得到更新后的量化模型后,上述执行主体可将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。
44.在本实施例中,第二预设条件可以根据需要进行设定,不作具体限定。例如,可以根据利用原始模型执行前向传播任务的时长进行设定。上述执行主体可以统计利用原始模型执行前向传播任务的时长,响应于该时长大于或等于第二预设时长,可基于上述数值范围更新量化模型。
45.由于此过程不需要开发者执行量化训练过程,也不需要开发者手动给定数据,因而可降低人力成本。同时,通过在不同条件时利用不同模型(原始模型或量化模型)执行前向传播任务,使两模型动态切换,能够在前向传播过程中对量化模型进行动态更新,使之能够进行自校准,从而持续保持高精度。
46.需要说明的是,在输入数据的直方图或者数值范围稳定后(如偏差小于某一预设值),意味着量化模型已稳定且精度已基本无法再提高,此时可停止原始模型的工作,仅使用量化模型执行前向传播任务,以减少计算资源的占用量。
47.在本实施例的一些可选的实现方式中,执行主体可以按照如下步骤更新量化模型:
48.第一步,获取原始模型的计算图。
49.此处,计算图可从模型数据包中直接提取。作为示例,图3示出了计算图的示意图。如图3所示,计算图中concat(合并)操作与add(相加)操作相连接,则需根据张量a与张量b的值计算张量c,并累计统计张量a、张量b、张量c的数值分布。之后根据张量c与张量d的值,计算张量e,并累计张量d、张量e的数值分布。可以理解的是,图3所示仅为计算图的简单示意,实际模型中包含大量算子,因而实际的计算图具有更为丰富的内容。
50.第二步,对于计算图中的每一个计算节点,利用预设的算子量化算法确定该计算节点所涉及的各张量的量化参数。
51.此处,算子量化算法可包括但不限于:均匀量化、非均匀量化、对称量化、非对称量化等。其中,均匀量化是指把输入数据的取值域等间隔分割的量化方式。均匀量化又称为线性编码,其特点是各量化区间的宽度(即宽阶)相同。非均匀量化即为各量化区间的宽度不同的量化方式。对称量化是指将最小值到最大值之间的最大绝对值作为量化范围的量化方式。非对称量化是指将浮点范围中的最小值至最大值映射到整数范围的最小值至最大值的映射方式。
52.此处,针对不同的算子所采用的量化算法可以相同或不同。
53.在一些示例中,对于乘法算子,若需量化至int8(8位整型),可使用均匀对称量化方法。量化表达式可表示为:
54.s
c
q
c
=s
a
q
a
×
s
b
q
b

55.其中,s
a
、s
b
、s
c
分别为算子涉及的张量t
a
、t
b
、t
c
对应的对称量化缩放系数。t
a
、t
b
为输入张量,t
c
为输出张量。q
a
、q
b
、q
c
分别为该张量t
a
、t
b
、t
c
对应的量化张量(即量化后的张量)。
56.经过整理后可表达为:
57.q
c
=s
f
×
q
a
×
q
b
58.q
c
=f8(s
q
×
q
a
×
q
b
)
59.其中,f
n
()为“位右移”函数表达式,当n为8时,即为f8(),表示右移8位。s
q
为量化缩放系数,其计算方法为s
q
=round(s
f
×
256)。s
f
=(s
a
×
s
b
)/s
c
。round()用于返回浮点数的四舍五入值,round(s
f
×
256)即表示用于返回浮点数s
f
×
256的四舍五入值。量化参数的计算,即是对定点值s
q
的求解。因此求解s
q
的关键点在于分别计算s
a
、s
b
、s
c
,可分别由t
a
、t
b
、t
c
的取值分布范围确定。
60.在另一些示例中,对于某一张量t,其取值的最大值为v
max
,最小值为v
min
,若需量化至int8(8位整型),其量化缩放系数s(即量化参数)可根据以下公式计算:s=max(|v
max
|,|v
min
|)/127。其中,max()表示取最大值。
61.在另一些示例中,可以使用饱和量化方法,使用kl(kullback

leibler)散度搜索v
max
,v
min
值,最终获得最佳量化效果。
62.需要说明的是,还可以根据需要采用其他量化算法,不限于上述示例。
63.本技术的上述实施例提供的方法,在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务,并统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围;在利用量化模型执行前向传播任务的过程中,响应于满足第二预设条件,基于所确定的数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。此过程不需要开发者执行量化训练过程,也不需要开发者手动给定数据,由此降低了人力成本。同时,在前向传播过程中量化模型能够动态更新,从而实现了量化模型的自校准,由此提高了量化模型的精度。
64.进一步参考图4,其示出了模型动态量化方法的又一个实施例的流程400。该模型动态量化方法的流程400,包括以下步骤:
65.步骤401,在利用量化模型执行前向传播任务的过程中,实时获取量化模型的输入数据的直方图。
66.在本实施例中,模型动态量化方法的执行主体(如图1所示的终端20)中可预先部署有原始模型。可预先对原始模型所涉及的各张量的量化参数进行初始化,以得到与原始模型对应的量化模型。上述执行主体可以根据不同条件,触发原始模型或者量化模型执行前向传播任务,从而实现原始模型或者量化模型的动态切换。
67.在利用量化模型执行前向传播任务的过程中,上述执行主体可以实时获取量化模型的输入数据(如待识别的人脸图像)的直方图(如人脸图像的颜色直方图)。以颜色直方图为例,颜色直方图可以表示不同色彩在图像中所占的比例,通常用于表征图像的颜色特征。
具体的,可以将颜色空间划分成若干个颜色区间,进行颜色量化。之后,计算图像在每个颜色区间内的像素数量,从而生成颜色直方图。需要说明的是,颜色直方图可以基于各种颜色空间所生成,例如rgb颜色空间、hsv颜色空间、hsi颜色空间等等。在不同的颜色空间中,颜色直方图中的各个颜色区间可以具有不同的数值。
68.步骤402,在所实时获取到的直方图与上一次获取的直方图的相似度大于预设阈值时,将上述量化模型切换为对应的原始模型。
69.在本实施例中,上述执行主体每获取到一个直方图,可检测该直方图与上一次获取的直方图的相似度。在所实时获取到的直方图与上一次获取的直方图的相似度大于预设阈值时,意味着此时的输入数据发生了较大变化,并可认为模型中的各张量的数据范围也发生了较大变化以致量化模型的精度需要调整,此时可将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务。
70.通过检测输入数据的直方图的变化情况,能够自动检测量化模型是否需要更新,由此在前向传播过程中量化模型能够动态更新,从而实现了量化模型的自校准,且能够使量化模型保持在高精度。
71.步骤403,统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围。
72.本实施例中的步骤403可参见图2对应实施例的步骤202,此处不再赘述。
73.步骤404,响应于满足第二预设条件,基于数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。
74.本实施例中的步骤404可参见图2对应实施例的步骤203,此处不再赘述。
75.从图4中可以看出,与图1对应的实施例相比,本实施例中的模型动态量化方法的流程200涉及了在利用量化模型执行前向传播任务的过程中实时获取量化模型的输入数据的直方图以及在所实时获取到的直方图与上一次获取的直方图的相似度大于预设阈值时,将量化模型切换为对应的原始模型的步骤。由此,本实施例描述的方案能够通过检测输入数据的直方图的变化情况,能够自动检测量化模型是否需要更新,由此在前向传播过程中量化模型能够动态更新,从而实现了量化模型的自校准,且能够使量化模型保持在高精度。
76.进一步参考图5,作为对上述各图所示方法的实现,本技术提供了一种模型动态量化装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
77.如图5所示,本实施例的模型动态量化装置500包括:第一切换单元501,被配置成在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将上述量化模型切换为对应的原始模型,以利用上述原始模型执行后续的前向传播任务;统计单元502,被配置成统计上述原始模型所涉及的各张量在上述原始模型执行前向传播任务期间的数值范围;第二切换单元503,被配置成响应于满足第二预设条件,基于上述数值范围更新上述量化模型,并将上述原始模型切换为更新后的上述量化模型,以利用更新后的上述量化模型执行后续的前向传播任务。
78.在本实施例的一些可选的实现方式中,上述第一切换单元501,进一步被配置成:在利用量化模型执行前向传播任务的过程中,实时获取上述量化模型的输入数据的直方图;在所实时获取到的直方图与上一次获取的直方图的相似度大于预设阈值时,将上述量
化模型切换为对应的原始模型。
79.在本实施例的一些可选的实现方式中,上述第一切换单元501,进一步被配置成:在利用量化模型执行前向传播任务的过程中,对系统工作状态进行监控;在上述系统工作状态为闲时的情况下,将上述量化模型切换为对应的原始模型。
80.在本实施例的一些可选的实现方式中,上述第一切换单元501,进一步被配置成:在利用量化模型执行前向传播任务的过程中,实时统计利用上述量化模型执行上述前向传播任务的时长;响应于利用上述量化模型执行上述前向传播任务的时长大于或等于第一预设时长,将上述量化模型切换为对应的原始模型。
81.在本实施例的一些可选的实现方式中,上述第二切换单元503,进一步被配置成:响应于利用上述原始模型执行上述前向传播任务的时长大于或等于第二预设时长,基于上述数值范围更新上述量化模型。
82.在本实施例的一些可选的实现方式中,上述第二切换单元503,进一步被配置成:获取上述原始模型的计算图;对于上述计算图中的每一个计算节点,利用预设的算子量化算法确定该计算节点所涉及的各张量的量化参数;基于所确定出的量化参数,更新上述量化模型。
83.在本实施例的一些可选的实现方式中,上述量化模型通过如下步骤进行初始化:利用上述原始模型执行前向传播任务,并统计上述原始模型所涉及的各张量在上述原始模型执行前向传播任务期间的初始数值范围;基于上述初始数值范围初始化上述各张量的量化参数,以初始化量化模型。
84.在本实施例的一些可选的实现方式中,上述量化模型通过如下步骤进行初始化:离线统计原始模型所涉及的各张量的高斯分布;基于上述高斯分布初始化上述各张量的量化参数,以初始化量化模型。
85.在本实施例的一些可选的实现方式中,上述原始模型所涉及的各张量的数据类型为浮点型,上述量化模型所涉及的各张量的数据类型为整型。
86.在本实施例的一些可选的实现方式中,上述原始模型为以下至少一项:图像处理模型、语音处理模型。
87.本技术的上述实施例提供的装置,在利用量化模型执行前向传播任务的过程中,响应于满足第一预设条件,将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务,并统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围;在利用量化模型执行前向传播任务的过程中,响应于满足第二预设条件,基于所确定的数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。此过程不需要开发者执行量化训练过程,也不需要开发者手动给定数据,由此降低了人力成本。同时,在前向传播过程中量化模型能够动态更新,从而实现了量化模型的自校准,由此提高了量化模型的精度。
88.下面参考图6,其示出了用于实现本技术的一些实施例的电子设备的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本技术的实施例的功能和使用范围带来任何限制。
89.如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问
存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
90.通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁盘、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
91.特别地,根据本技术的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom 602被安装。在该计算机程序被处理装置601执行时,执行本技术的一些实施例的方法中限定的上述功能。
92.需要说明的是,本技术的一些实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
93.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
94.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:在利用量化模型执行前向传播任务的过程
中,响应于满足第一预设条件,将量化模型切换为对应的原始模型,以利用原始模型执行后续的前向传播任务;统计原始模型所涉及的各张量在原始模型执行前向传播任务期间的数值范围;响应于满足第二预设条件,基于数值范围更新量化模型,并将原始模型切换为更新后的量化模型,以利用更新后的量化模型执行后续的前向传播任务。
95.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的一些实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++;还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接),上述网络包括局域网(lan)或广域网(wan)。
96.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
97.描述于本技术的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、选取单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
98.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
99.以上描述仅为本技术的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1