一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

量化模型的训练方法、装置、电子设备和可读存储介质与流程

2023-03-06 16:46:35 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种量化模型的训练方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,出现了数据量化处理技术,例如,通过量化模型对浮点数据进行量化处理,能够将浮点数据转化为整型数据,以降低计算量。而传统的量化模型的量化精度不高。


技术实现要素:

3.本技术实施例提供了一种量化模型的训练方法、装置、电子设备、计算机可读存储介质,可以提高量化模型的量化精度。
4.一种量化模型的训练方法,包括:
5.获取样本数据;
6.通过所述样本数据对量化模型进行第一阶段的训练,得到所述量化模型的浮点权重范围;
7.基于所述浮点权重范围和所述样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在所述第二阶段的训练中获得训练好的目标量化模型的浮点激活范围;
8.其中,所述目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
9.一种量化模型的训练装置,包括:
10.样本获取模块,用于获取样本数据;
11.第一训练模块,用于通过所述样本数据对量化模型进行第一阶段的训练,得到所述量化模型的浮点权重范围;
12.第二训练模块,用于基于所述浮点权重范围和所述样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在所述第二阶段的训练中获得训练好的目标量化模型的浮点激活范围;
13.其中,所述目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
15.获取样本数据;
16.通过所述样本数据对量化模型进行第一阶段的训练,得到所述量化模型的浮点权重范围;
17.基于所述浮点权重范围和所述样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在所述第二阶段的训练中获得训练好的目标量化模型的浮点激活范围;
18.其中,所述目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
19.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
20.获取样本数据;
21.通过所述样本数据对量化模型进行第一阶段的训练,得到所述量化模型的浮点权重范围;
22.基于所述浮点权重范围和所述样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在所述第二阶段的训练中获得训练好的目标量化模型的浮点激活范围;
23.其中,所述目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
24.本实施例中的量化模型的训练方法、装置、电子设备和计算机可读存储介质,获取样本数据,并通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围,从而能够通过不同阶段的训练,使得量化模型的处理精度更高。目标量化模型的浮点权重范围和浮点激活范围,能够对待量化数据进行量化处理,以将浮点数据量化为整型数据,能够减少数据的运算量,提高量化处理的速度。并且将浮点数据量化为整型数据,还能够减少对内存的占用。
25.一种量化处理方法,包括:
26.获取待量化数据对应的量化类型,并获取所述量化类型对应的定点权重范围和定点激活范围;
27.基于所述定点权重范围和训练好的量化模型的浮点权重范围,确定所述待量化数据对应的权重量化参数;
28.基于所述定点激活范围和所述训练好的量化模型的浮点激活范围,确定所述待量化数据对应的激活量化参数;所述训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;
29.基于所述权重量化参数和所述激活量化参数,将所述待量化数据量化为在所述量化类型下的目标数据。
30.一种量化处理装置,包括:
31.类型获取模块,用于获取待量化数据对应的量化类型,并获取所述量化类型对应的定点权重范围和定点激活范围;
32.权重确定模块,用于基于所述定点权重范围和训练好的量化模型的浮点权重范围,确定所述待量化数据对应的权重量化参数;
33.激活确定模块,用于基于所述定点激活范围和所述训练好的量化模型的浮点激活范围,确定所述待量化数据对应的激活量化参数;所述训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;
34.量化模块,用于基于所述权重量化参数和所述激活量化参数,将所述待量化数据量化为在所述量化类型下的目标数据。
35.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理
器执行所述计算机程序时实现以下步骤:
36.获取待量化数据对应的量化类型,并获取所述量化类型对应的定点权重范围和定点激活范围;
37.基于所述定点权重范围和训练好的量化模型的浮点权重范围,确定所述待量化数据对应的权重量化参数;
38.基于所述定点激活范围和所述训练好的量化模型的浮点激活范围,确定所述待量化数据对应的激活量化参数;所述训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;
39.基于所述权重量化参数和所述激活量化参数,将所述待量化数据量化为在所述量化类型下的目标数据。
40.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
41.获取待量化数据对应的量化类型,并获取所述量化类型对应的定点权重范围和定点激活范围;
42.基于所述定点权重范围和训练好的量化模型的浮点权重范围,确定所述待量化数据对应的权重量化参数;
43.基于所述定点激活范围和所述训练好的量化模型的浮点激活范围,确定所述待量化数据对应的激活量化参数;所述训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;
44.基于所述权重量化参数和所述激活量化参数,将所述待量化数据量化为在所述量化类型下的目标数据。
45.上述量化处理方法、装置、电子设备和计算机可读存储介质,获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围;基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数;基于定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数;训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;基于权重量化参数和激活量化参数,能够准确将待量化数据从浮点型量化为在量化类型下的整型的目标数据。
46.当应用于图像处理时,基于整型的数据进行运算,能够减少运算量,提高运算速度,从而提高后续对图像的处理速度。
附图说明
47.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1为一个实施例中量化模型的训练方法的应用环境图;
49.图2为一个实施例中量化模型的训练方法的流程图;
50.图3为一个实施例中量化模型的训练方法的示意图;
51.图4为一个实施例中伪量化节点的示意图;
52.图5为另一个实施例中量化模型的训练方法的流程图;
53.图6为一个实施例中量化处理方法的流程图;
54.图7为一个实施例中量化模型的训练装置的结构框图;
55.图8为一个实施例中量化处理装置的结构框图;
56.图9为一个实施例中电子设备的内部结构图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
58.图1为一个实施例中量化模型的训练方法的应用环境示意图。如图1所示,该应用环境包括电子设备110和服务器120。在一个实施例中,电子设备110和服务器120均可以单独执行该量化模型的训练方法,电子设备110和服务器120也可以协同执行该量化模型的训练方法。当电子设备110和服务器120协同执行该量化模型的训练方法时,电子设备110可获取样本数据,将样本数据发送至服务器120。服务器120通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围。服务器120基于浮点权重范围和该样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围。其中,目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
59.其中,电子设备110通过网络与服务器120进行通信。电子设备110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
60.图2为一个实施例中量化模型的训练方法的流程图。本实施例中的量化模型的训练方法,以运行于图1中的电子设备上为例进行描述。如图2所示,该量化模型的训练方法包括:
61.步骤202,获取样本数据。
62.样本数据是指浮点数据,用于训练量化模型,可以是多媒体数据。多媒体数据具体可以是图像数据、文本数据、音频数据和视频数据等,但不限于此。浮点数据即浮点型数据,例如0.13、5.789等。
63.具体地,电子设备可从本地或其他设备或网络上获取样本数据。例如,电子设备可以从本地或其他设备或网络上获取多媒体数据。该多媒体数据可为图像数据、文本数据、音频数据和视频数据中的至少一种,将图像数据、文本数据、音频数据和视频数据中的至少一种作为样本数据。
64.在一个实施例中,电子设备可以从本地或其他设备或网络上获取多媒体数据,将多媒体数据的内容信息转化为数值型信息,得到该样本多媒体数据所对应的数值型信息。
65.例如,电子设备可以从本地或其他设备或网络上获取样本图像,也可以通过拍摄得到样本图像,还可以从视频中提取视频帧作为样本图像,将样本图像的图像信息转化为数据信息,得到该样本图像的图像数据。图像数据(image data)是指用数值表示的各像素
(pixel)的灰度值的集合。该图像数据作为样本数据,用于训练量化模型,训练好的量化模型用于对待处理图像的图像数据进行量化处理。
66.类似地,电子设备可获取样本文本,将样本文本转换为对应的数据信息,得到文本数据。该文本数据作为样本数据,用于训练量化模型,训练好的量化模型用于对待处理文本的文本数据进行量化处理。
67.类似地,电子设备可获取样本音频、样本视频转换为对应的数据信息,得到音频数据、视频数据。该音频数据、视频数据作为样本数据,用于训练量化模型,训练好的量化模型用于对待处理音频、待处理视频的音频数据、视频数据进行量化处理。
68.步骤204,通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围。
69.具体地,浮点权重范围是浮点数据对应的权重范围。电子设备将样本数据输入量化模型,量化模型将样本数据用于第一阶段的训练,在第一阶段的训练中调整量化模型的权重范围,直至第一阶段的训练停止时,得到该量化模型中的浮点权重范围。
70.步骤206,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围。
71.其中,目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
72.具体地,浮点激活范围是浮点数据对应的激活范围,能够将浮点数据映射到特定范围内。在第一阶段的训练停止后,得到该量化模型的浮点权重范围,在第二阶段的训练中,该浮点权重范围被固定,即浮点权重范围在第二阶段的训练中保持不变。基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,在第二阶段的训练中调整量化模型的激活范围,直至第二阶段的训练停止时,得到该量化模型中的浮点激活范围。
73.该目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
74.可以理解的是,通过图像数据训练量化模型,可得到目标量化模型中图像的浮点权重范围和图像的浮点激活范围。图像的浮点权重范围和图像的浮点激活范围用于对待处理图像的图像数据进行量化处理,以将浮点型的图像数据量化为整型的图像数据。对文本数据、音频数据和视频数据的量化,与对图像数据的量化类似,在此不再赘述。
75.本实施例中的量化模型的训练方法,获取样本数据,通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围,从而能够通过不同阶段的训练,使得量化模型的处理精度更高。目标量化模型的浮点权重范围和浮点激活范围,能够对待量化数据进行量化处理,以将浮点数据量化为整型数据,能够减少数据的运算量,提高量化处理的速度。并且将浮点数据量化为整型数据,还能够减少对内存的占用。
76.在一个实施例中,通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围,包括:
77.对于第一阶段的训练,通过量化模型对样本数据进行前向传播处理,得到第一中
间结果;通过前向传播处理确定量化模型的第一损失误差,并通过前向传播处理统计量化模型的初始权重范围;在对第一中间结果进行反向传播处理的过程中,基于第一损失误差调整初始权重范围,直至量化模型满足第一停止条件时停止,得到量化模型的浮点权重范围。
78.其中,前向传播(forward propagation)处理是指从输入到获得损失误差的处理过程,反向传播(backpropagation)是通过损失误差不断调整参数的处理过程。初始权重范围是浮点数据对应的初始权重范围。
79.具体地,电子设备将样本数据输入量化模型,将样本数据用于对量化模型进行第一阶段的训练。在第一阶段的训练中,该量化模型对样本数据进行前向传播处理,在前向传播处理中通过对样本数据的卷积处理、量化处理和反量化处理,得到第一中间结果。并在前向传播处理中通过对样本数据的卷积处理、量化处理和反量化处理,统计量化模型的初始权重范围,并确定该量化模型的损失误差,即第一损失误差。
80.在对第一中间结果进行反向传播处理的过程中,基于第一损失误差调整初始权重范围。基于调整后的初始权重范围后,继续对量化模型进行训练,直至量化模型满足第一停止条件时停止,得到量化模型的浮点权重范围。
81.在一个实施例中,第一停止条件可以是第一损失误差小于误差阈值,或第一阶段的训练迭代次数达到预设迭代次数等。
82.在一个实施例中,电子设备可通过第一中间结果和样本数据确定该量化模型的第一损失误差。
83.在一个实施例中,还通过前向传播处理统计量化模型的初始激活范围。
84.本实施例中,对于第一阶段的训练,通过量化模型对样本数据进行前向传播处理,得到第一中间结果,通过前向传播处理确定量化模型的第一损失误差,并通过前向传播处理统计量化模型的初始权重范围,以在对第一中间结果进行反向传播处理的过程中,基于第一损失误差调整初始权重范围,使得量化模型的权重范围达到最优,直至量化模型满足第一停止条件时停止,从而能够通过第一阶段的训练准确得到量化模型最终的浮点权重范围。
85.在一个实施例中,通过量化模型对样本数据进行前向传播处理,得到第一中间结果,包括:
86.将量化模型中当前卷积算子通过卷积处理所输出的特征进行量化处理,得到量化特征;首个卷积算子的输出特征是对样本数据进行卷积处理得到的;对量化特征进行反量化处理,得到反量化特征,将反量化特征作为下一卷积算子的输入,并将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果。
87.具体地,在第一阶段的训练中,将样本数据输入量化模型的首个卷积算子,该首个卷积算子对样本数据进行卷积处理,得到输出的特征。对输出的特征进行量化处理,得到量化特征,再对量化特征进行反量化处理,得到反量化特征。
88.将反量化特征作为第二个卷积算子的输入,通过第二个卷积算子对输入的反量化特征进行卷积处理,对卷积处理得到的特征进行量化处理,再对量化处理得到的量化特征进行反量化处理,得到反量化特征。
89.可以理解的是,在第一阶段的训练中,将当前卷积算子通过卷积处理所输出的特征进行量化处理,得到量化特征,对量化特征进行反量化处理,得到反量化特征,将反量化特征作为下一卷积算子的输入。将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果。
90.在一个实施例中,卷积算子卷积核大小和输入特征的宽高一致,是输入特征input和卷积核kernel的矩阵乘法运算,该卷积算子的处理过程如下公式:
91.out
float
=matmul(input
float
,kernel
float
)
92.output
float
=output
scale
(output
quant-output
zero
)
93.input
float
=input
scale
(input
quant-input
zero
)
94.kernel
float
=kernel
scale
(kernel
quant-kernel
zero
)
95.其中,output
float
表示输出的浮点数据,input
float
表示输入的浮点数据,kernel
float
表示卷积核对应的浮点数据,matmul(input
float
,kernel
float
)表示input
float
和kernel
float
进行矩阵乘法处理。
96.output
scale
表示定点量化缩放因子,output
quant
表示输出的定点数据,output
zero
表示定点量化偏移量。input
scale
表示浮点量化缩放因子,input
quant
表示输入的定点数据,input
zero
表示浮点量化偏移量。kernel
scale
表示卷积核对应的量化缩放因子,kernel
quant
表示卷积核对应的定点数据,kernel
zero
表示卷积核对应的量化偏移量。
97.通过上述公式可得到量化计算公式,可得到卷积算子输出的定点数据output
quant

98.本实施例中,将量化模型中当前卷积算子通过卷积处理所输出的特征进行量化处理,得到量化特征,对量化特征进行反量化处理,得到反量化特征,从而能够确定数据经过量化、反量化之后所产生的误差,将反量化特征作为下一卷积算子的输入,并将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果,从而能够准确得到在处理过程中所产生的损失误差,以对量化模型的权重范围进行调整。
99.在一个实施例中,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围,包括:
100.对于第二阶段的训练,通过第一阶段训练后的量化模型中的浮点权重范围对样本数据进行前向传播处理,得到第二中间结果;基于前向传播处理确定量化模型的第二损失误差,并在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整量化模型的初始激活范围,直至量化模型满足第二停止条件时停止,得到训练好的目标量化模型的浮点激活范围。
101.其中,初始激活范围是在第一阶段的训练中通过前向传播处理统计得到。
102.具体地,在第一阶段的训练中,通过前向传播处理统计量化模型的初始激活范围。通过样本数据和浮点权重范围对经过第一阶段训练后的量化模型进行第二阶段的训练,以在第二阶段的训练中对该初始激活范围进行调整。
103.经过第一阶段训练后的量化模型对样本数据进行前向传播处理,在前向传播处理中基于浮点权重范围对样本数据的卷积处理,基于初始激活范围对卷积处理后的数据进行
量化处理和反量化处理,得到第二中间结果。以及基于浮点权重范围对样本数据的卷积处理,基于初始激活范围对卷积处理后的数据进行量化处理和反量化处理,确定该量化模型的损失误差,即第二损失误差。
104.在反向传播处理中,将第二中间结果作为输入,执行与前向传播处理过程相反过程的处理,在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整初始激活范围。基于调整后的初始激活范围后,继续对量化模型进行训练,直至量化模型满足第二停止条件时停止,得到量化模型的浮点激活范围。
105.在一个实施例中,第二停止条件可以是第二损失误差小于误差阈值,或第二阶段的训练迭代次数达到预设迭代次数等。
106.在一个实施例中,电子设备可通过第二中间结果和样本数据确定该量化模型的第二损失误差。
107.本实施例中,对于第二阶段的训练,通过第一阶段训练后的量化模型中的浮点权重范围对样本数据进行前向传播处理,得到第二中间结果,基于前向传播处理确定量化模型的第二损失误差,并在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整量化模型的初始激活范围,直至量化模型满足第二停止条件时停止,从而能够通过第二阶段的训练准确得到目标量化模型,以及目标量化模型中的浮点激活范围。
108.如图3所示,为一个实施例中量化模型的训练方法的示意图。
109.用于训练的量化模型中包括卷积算子(即dense算子)和伪量化节点(即fake quant)。对量化模型进行两个阶段的训练,在第一阶段的训练中,将量化模型的权重范围设置为训练的参数,即param
trainable
={dense

s weights}。在第一阶段的训练包括前向传播处理和反向传播处理。在前向传播处理中,将样本数据输入首个卷积算子进行卷积处理,以统计出首个卷积算子对应的初始权重范围。将首个卷积算子输出的特征作为首个伪量化节点的输入,通过伪量化节点对输入的特征进行量化处理和反量化处理,得到首个伪量化节点输出的反量化特征,并统计出首个量化节点对应的初始激活范围。将首个伪量化节点的输出作为下一个卷积算子的输入,执行上述的卷积处理、量化处理和反量化处理,直至得到最后一个伪量化节点输出的反量化特征,即第一中间结果。
110.通过第一中间结果和样本数据计算量化模型的第一损失误差,根据第一损失误差计算权重范围对于量化模型损失的梯度。
111.伪量化节点的结构如图4所示,伪量化节点中包括对输入的特征进行量化处理,对量化处理后得到的量化特征进行反量化处理,得到反量化特征。
112.伪量化节点可以看作自定义的算子实现逻辑是对输入数据进行量化,再进行反量化,用来模拟量化带来的误差。量化过程如下:
[0113][0114]
xq=clamp(0,n
levels-1,x
int
)
[0115][0116]
其中,x为输入的浮点数据,xq为量化后的数据,δ为量化参数scale,z是量化零点
zero-point。
[0117]nlevels
是量化范围,如量化到8bit时,n
levels
=28=256。
[0118]
反量化过程如下:
[0119]
x
float
=(x
q-z)δ
[0120]
x
float
是反量化后得到的浮点数据,量化误差为diff=x-x
float

[0121]
在反向传播处理中,前向传播处理中的最后一个伪量化节点作为反向传播处理中的首个量化节点,最后一个卷积算子作为反向传播中的首个卷积算子。将第一中间结果作为首个伪量化节点的输入,通过首个伪量化节点对第一中间结果进行反量化处理和量化处理,得到首个伪量化节点处理输出的特征。基于量化模型损失的梯度对首个卷积算子的初始权重范围进行调整,将首个伪量化节点的输出作为首个卷积算子的输入,通过首个卷积算子的调整后的权重范围对输入的特征进行卷积处理。将首个卷积算子的输出作为下一伪量化节点的输入,依次执行上述的反量化处理、量化处理和卷积处理,直至得到最后一卷积算子输出的特征,从而完成对每个卷积算子的初始权重范围的调整,从而得到更新后的量化模型。
[0122]
在反向传播处理中,在完成每个卷积算子的初始权重范围的调整后,根据反向传播处理的输入特征和最后一卷积算子输出的特征,计算更新后量化模型的损失误差,以判断更新后的量化模型是否达到收敛状态,即满足第一停止条件。
[0123]
未达到收敛状态时,对更新后的量化模型再次进行第一阶段的训练,直至得到量化模型达到收敛状态,从而得到量化模型中每个卷积算子分别对应的浮点权重范围。
[0124]
对经过第一阶段训练的量化模型,进行第二阶段的训练,在第二个阶段的训练中,将浮点权重范围设置为不可训练的参数,将激活范围设置为训练的参数,即param
trainable
={activations

range}。第二阶段的训练包括前向传播处理和后向传播处理。将样本数据输入首个卷积算子,通过首个卷积算子对应的浮点权重范围对样本数据进行卷积处理。将首个卷积算子输出的特征作为首个伪量化节点的输入,通过伪量化节点对输入的特征进行量化处理和反量化处理,得到首个伪量化节点输出的反量化特征。将首个伪量化节点的输出作为下一个卷积算子的输入,执行上述的卷积处理、量化处理和反量化处理,直至得到最后一个伪量化节点输出的反量化特征,即第二中间结果。
[0125]
通过第二中间结果和样本数据计算量化模型的第二损失误差,根据第二损失误差计算激活范围对于量化模型损失的梯度。
[0126]
在反向传播处理中,前向传播处理中的最后一个伪量化节点作为反向传播处理中的首个量化节点,最后一个卷积算子作为反向传播中的首个卷积算子。基于量化模型损失的梯度对首个卷积算子的初始激活范围进行调整,将第二中间结果作为首个伪量化节点的输入,通过首个伪量化节点的初始激活范围对第二中间结果进行反量化处理和量化处理,得到首个伪量化节点处理输出的特征。将首个伪量化节点的输出作为首个卷积算子的输入,通过首个卷积算子的调整后的激活范围对输入的特征进行卷积处理。将首个卷积算子的输出作为下一伪量化节点的输入,依次执行上述的反量化处理、量化处理和卷积处理,直至得到最后一卷积算子输出的特征,从而完成对每个卷积算子的初始激活范围的调整,从而得到更新后的量化模型。
[0127]
在反向传播处理中,在完成每个卷积算子的初始激活范围的调整后,根据反向传
播处理的输入特征和最后一卷积算子输出的特征,计算更新后量化模型的损失误差,以判断更新后的量化模型是否达到收敛状态,即满足第二停止条件。
[0128]
未达到收敛状态时,对更新后的量化模型再次进行第二阶段的训练,直至得到量化模型达到收敛状态,从而得到量化模型中每个卷积算子分别对应的浮点激活范围。
[0129]
可以理解的是,伪量化节点用于训练,训练好的目标量化模型中包括卷积算子,不包括伪量化节点。
[0130]
如图5所示,为一个实施例中量化模型的训练方法的流程图。
[0131]
步骤510,在浮点模型中插入伪量化节点,得到量化模型。
[0132]
步骤520,对量化模型进行第一阶段的训练,第一阶段的训练包括步骤521-步骤525:
[0133]
步骤521,获取样本数据,将样本数据输入量化模型。
[0134]
步骤522,基于样本数据进行前向传播处理,并统计初始权重范围和初始激活范围。
[0135]
步骤523,通过前向传播处理计算量化模型的第一损失误差,执行步骤524。
[0136]
步骤524,基于前向传播处理得到的第一中间结果和第一损失误差,进行反向传播处理,在反向传播处理中调整初始权重范围,得到更新后的量化模型。
[0137]
步骤525,判断更新后的量化模型是否达到收敛状态,否则返回执行步骤521,是则完成第一阶段的训练,执行步骤530。
[0138]
步骤530,完成第一阶段的训练后,将经过第一阶段训练的量化模型中的浮点权重范围设置为不可训练参数,设置初始激活范围为可训练参数。并且,在第二阶段的前向传播时不统计激活范围和权重范围。
[0139]
步骤540,对经过第一阶段训练的量化模型进行第二阶段的训练,第二阶段的训练包括步骤541-步骤545:
[0140]
步骤541,获取样本数据,将样本数据输入经过第一阶段训练的量化模型。
[0141]
步骤542,基于样本数据进行前向传播处理,得到的第二中间结果。
[0142]
步骤543,通过前向传播处理计算量化模型的第二损失误差,执行步骤544。
[0143]
步骤544,基于前向传播处理得到的第二中间结果和第二损失误差,进行反向传播处理,在反向传播处理中调整初始权激活范围,得到更新后的量化模型。
[0144]
步骤545,判断更新后的量化模型是否达到收敛状态,否则返回执行步骤541,是则结束第二阶段的训练,得到训练好的目标量化模型。
[0145]
在一个实施例中,该方法还包括:
[0146]
获取预设量化类型对应的预设权重范围和预设激活范围;根据预设权重范围、预设激活范围、浮点权重范围和浮点激活范围确定目标量化模型的量化参数;量化参数用于将待量化数据量化为在预设量化类型下所对应的数据。
[0147]
其中,预设量化类型是指浮点数据所要量化的定点类型,例如8比特(bit)、12比特等。不同的预设量化类型具有不同的预设权重范围和预设激活范围,预设权重范围是定点的权重范围,预设激活范围是定点的激活范围。
[0148]
具体地,电子设备获取预设量化类型对应的预设权重范围和预设激活范围,根据预设权重范围、预设激活范围、浮点权重范围和浮点激活范围,计算目标量化模型的量化参
数。当需要对待量化数据进行量化时,将待量化数据输入目标量化模型,目标量化模型通过量化参数对待量化数据进行量化处理,得到在该预设量化类型下所对应的数据。
[0149]
在一个实施例中,待量化数据是浮点数据,预设量化类型为定点量化类型,通过目标量化模型中的量化参数对浮点数据进行量化处理,能够将浮点数据量化为定点数据,并且是在特定量化类型下的定点数据。
[0150]
在一个实施例中,电子设备可获取多个预设量化类型分别对应的预设权重范围和预设激活范围,根据同一预设量化类型对应的预设权重范围和预设激活范围,以及浮点权重范围和浮点激活范围,确定在该同一预设量化类型下对应的量化参数,从而将该量化参数保留在目标量化模型中。按照相同的处理方式,可得到每个预设量化类型分别对应的量化参数。当需要对待量化数据进行量化时,确定需要将待量化数据量化为哪种预设量化类型,则通过目标量化模型中对应的量化参数对待量化数据进行量化处理,得到相应预设量化类型下的定点数据。
[0151]
本实施例中,获取预设量化类型对应的预设权重范围和预设激活范围;根据预设权重范围、预设激活范围、浮点权重范围和浮点激活范围确定目标量化模型的量化参数,能够通过量化参数准确将待量化数据量化为在预设量化类型下所对应的数据,从而能够将浮点数据准确映射为特定类型的定点数据。
[0152]
图6为一个实施例中量化处理方法的流程图。本实施例中的量化处理方法,以运行于图1中电子设备上为例进行描述。如图6所示,该量化处理方法包括:
[0153]
步骤602,获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围。
[0154]
其中,待量化数据是指需要进行量化处理的浮点数据。量化类型是指浮点数据所要量化的定点类型,例如8比特(bit)、12比特等。不同量化类型具有不同的定点权重范围和定点激活范围。
[0155]
具体地,电子设备可获取待量化数据,确定该待量化数据需要量化的量化类型,从而获取该量化类型对应的定点权重范围和定点激活范围。
[0156]
步骤604,基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数。
[0157]
具体地,电子设备可根据定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数。
[0158]
在一个实施例中,电子设备可确定定点权重范围中的定点权重最大值和定点权重最小值,以及浮点权重范围中的浮点权重最大值和浮点权重最小值。根据定点权重最大值、定点权重最小值、浮点权重最大值和浮点权重最小值,计算待量化数据对应的权重量化参数。
[0159]
步骤606,基于定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数;训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型。
[0160]
具体地,电子设备可根据定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数。
[0161]
在一个实施例中,电子设备可确定定点激活范围中的定点激活最大值和定点激活
最小值,以及浮点激活范围中的浮点激活最大值和浮点激活最小值。根据定点激活最大值、定点激活最小值、浮点激活最大值和浮点激活最小值,计算待量化数据对应的激活量化参数。
[0162]
步骤608,基于权重量化参数和激活量化参数,将待量化数据量化为在量化类型下的目标数据。
[0163]
其中,目标数据为量化类型下的整型数据。
[0164]
具体地,电子设备根据权重量化参数和激活量化参数,对待量化数据进行量化处理,得到在量化类型下的目标数据。
[0165]
在一个实施例中,电子设备可获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围。将待量化数据、定点权重范围和定点激活范围输入训练好的量化模型。训练好的量化模型中包括浮点权重范围和浮点激活范围,训练好的量化模型根据定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数。根据定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数。通过权重量化参数和激活量化参数,对待量化数据进行量化,输出在量化类型下的目标数据。
[0166]
本实施例中,获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围;基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数;基于定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数;训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;基于权重量化参数和激活量化参数,能够准确将待量化数据从浮点型量化为在量化类型下的整型的目标数据。基于整型的数据进行运算,能够减少运算量,提高运算速度,从而提高后续对图像的处理速度。
[0167]
在一个实施例中,基于浮点权重范围和定点权重范围,确定待量化数据对应的权重量化参数,包括:
[0168]
基于浮点权重范围中的浮点权重最大值和浮点权重最小值,以及定点权重范围中的定点权重最大值和定点权重最小值,确定待量化数据对应的权重量化因子;根据权重量化因子、浮点权重最小值和定点权重最小值,确定待量化数据对应的权重量化偏移量。
[0169]
其中,权重量化因子是指浮点数据量化为定点数据的权重缩放因子,权重量化偏移量即权重量化零点(zero-point),是指浮点数据量化为定点数据时,浮点数据的零点在定点数据下对应的权重数值。
[0170]
具体地,权重量化参数包括权重量化因子和权重量化偏移量。电子设备可确定定点权重范围中的定点权重最大值和定点权重最小值,以及浮点权重范围中的浮点权重最大值和浮点权重最小值。计算浮点权重最大值和浮点权重最小值之间的第一差值,以及定点权重最大值和定点权重最小值之间的第二差值,根据第一差值和第二差值确定待量化数据对应的权重量化因子。进一步地,将第一差值和第二差值的比值,作为待量化数据对应的权重量化因子。
[0171]
计算浮点权重最小值和该权重量化因子之间的比值,并根据定点权重最小值与该比值确定待量化数据对应的权重量化偏移量。进一步地,将定点权重最小值与该比值之间
的差值,作为待量化数据对应的权重量化偏移量。
[0172]
例如,可按照下列公式计算权重量化因子和权重量化偏移量:
[0173][0174]
其中,scale为权重量化因子,r
max
为浮点权重最大值,r
min
为浮点权重最小值,q
max
为定点权重最大值,q
min
为定点权重最小值,zero为权重量化偏移量。
[0175]
本实施例中,基于浮点权重范围中的浮点权重最大值和浮点权重最小值,以及定点权重范围中的定点权重最大值和定点权重最小值,能够准确确定待量化数据对应的权重量化因子。根据权重量化因子、浮点权重最小值和定点权重最小值,准确确定待量化数据对应的权重量化偏移量。
[0176]
在一个实施例中,激活量化参数包括激活量化因子和激活量化偏移量;基于浮点激活范围和定点激活范围,确定待量化数据对应的激活量化参数,包括:基于浮点激活范围中的浮点激活最大值和浮点激活最小值,以及定点激活范围中的定点激活最大值和定点激活最小值,确定待量化数据对应的激活量化因子;根据激活量化因子、浮点激活最小值和定点激活最小值,确定待量化数据对应的激活量化偏移量。
[0177]
其中,激活量化因子是指浮点数据量化为定点数据的激活缩放因子,激活量化偏移量即激活量化零点,是指浮点数据量化为定点数据时,浮点数据的零点在定点数据下对应的激活数值。
[0178]
具体地,激活量化参数包括激活量化因子和激活量化偏移量。电子设备可确定定点激活范围中的定点激活最大值和定点激活最小值,以及浮点激活范围中的浮点激活最大值和浮点激活最小值。计算浮点激活最大值和浮点激活最小值之间的第三差值,以及定点激活最大值和定点激活最小值之间的第四差值,根据第三差值和第四差值确定待量化数据对应的激活量化因子。进一步地,将第三差值和第四差值的比值,作为待量化数据对应的激活量化因子。
[0179]
计算浮点激活最小值和该激活量化因子之间的比值,并根据定点激活最小值与该比值确定待量化数据对应的激活量化偏移量。进一步地,将定点激活最小值与该比值之间的差值,作为待量化数据对应的激活量化偏移量。
[0180]
在一个实施例中,基于权重量化参数和激活量化参数,将待量化数据量化为在量化类型下的目标数据,包括:
[0181]
基于权重量化参数对待量化数据进行卷积处理,并通过激活量化参数对卷积处理后的结果进行激活处理,得到在量化类型下的目标数据。
[0182]
具体地,电子设备基于权重量化参数对待量化数据进行卷积处理,得到卷积处理的结果。基于激活量化参数对卷积处理后的结果进行激活处理,得到在量化类型下的目标数据。
[0183]
本实施例中,考虑权重量化参数和激活量化参数对数据量化的影响,基于权重量化参数对待量化数据进行卷积处理,并通过激活量化参数对卷积处理后的结果进行激活处理,使得所得到的在量化类型下的目标数据更准确。
[0184]
在一个实施例中,待量化数据为待量化的多媒体数据;训练好的量化模型是基于样本多媒体数据在第一阶段中训练多媒体的浮点权重范围,并在第二阶段中训练多媒体的
浮点激活范围所得到量化模型;训练好的量化模型中多媒体的浮点权重范围和多媒体的浮点激活范围,用于对待量化的多媒体数据进行量化处理,目标数据为量化得到的目标多媒体数据。
[0185]
具体地,电子设备获取获取样本多媒体,将样本多媒体的多媒体信息转化为数据信息,得到该样本多媒体的样本多媒体数据。通过样本多媒体数据对量化模型进行第一阶段的训练,得到量化模型中多媒体的浮点权重范围。基于多媒体的浮点权重范围和样本多媒体数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型中多媒体的浮点激活范围。
[0186]
电子设备获取待量化多媒体和对应的量化类型,将待量化多媒体和对应的量化类型输入目标量化模型,目标量化模型提取待量化多媒体的数据信息,得到待量化的多媒体数据。目标量化模型获取量化类型对应的定点权重范围和定点激活范围,基于定点权重范围和多媒体的浮点权重范围,确定待量化的多媒体数据对应的权重量化参数。基于定点激活范围和多媒体的量化模型的浮点激活范围,确定待量化的多媒体数据对应的激活量化参数。基于权重量化参数和激活量化参数,将待量化的多媒体数据量化为在量化类型下的目标多媒体数据。
[0187]
在一个实施例中,可基于目标多媒体数据进行多媒体识别、多媒体分类、多媒体分割等处理,但不限于此。
[0188]
可以理解的是,基于定点权重范围和多媒体的浮点权重范围,确定待量化的多媒体数据对应的权重量化参数的处理过程,以及基于定点激活范围和多媒体的量化模型的浮点激活范围,确定待量化的多媒体数据对应的激活量化参数的处理过程,参见上述对获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围的处理过程,以及基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数的处理过程。
[0189]
可以理解的是,当待量化的多媒体数据为待量化的图像数据时,多媒体的浮点权重范围是指图像的浮点权重范围,多媒体的浮点激活范围是指图像的浮点激活范围,目标多媒体数据是指目标图像数据。当待量化的多媒体数据为待量化的文本数据时,多媒体的浮点权重范围是指文本的浮点权重范围,多媒体的浮点激活范围是指文本的浮点激活范围,目标多媒体数据是指目标文本数据。
[0190]
本实施例中,将量化处理方法应用在多媒体数据的量化处理上,通过样本多媒体数据对量化模型进行两阶段的训练,通过第一阶段的训练确定量化模型中多媒体的浮点权重范围,并在对经过第一阶段训练的量化模型进行第二阶段的训练中,基于样本多媒体数据和多媒体的权重范围确定量化模型中多媒体的浮点激活范围,从而得到训练好的用于进行多媒体数据量化的目标量化模型,从而能够提高目标量化模型的量化精度,使得对多媒体数据的量化更准确。
[0191]
通过目标量化模型对待量化的多媒体数据进行量化处理,能够将浮点型的图像、文本、音频和视频等数据准确量化为整型的数据。基于整型的数据进行运算,能够减少运算量,提高运算速度,从而提高对图像、文本、音频和视频的相关处理速度。
[0192]
在一个实施例中,提供了一种量化模型的训练方法,包括:
[0193]
电子设备获取样本数据,将量化模型中当前卷积算子通过卷积处理所输出的特征
进行量化处理,得到量化特征;首个卷积算子的输出特征是对样本数据进行卷积处理得到的。
[0194]
接着,电子设备对量化特征进行反量化处理,得到反量化特征,将反量化特征作为下一卷积算子的输入,并将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果。
[0195]
接着,电子设备通过前向传播处理确定量化模型的第一损失误差,并通过前向传播处理统计量化模型的初始权重范围和初始激活范围。
[0196]
进一步地,在对第一中间结果进行反向传播处理的过程中,电子设备基于第一损失误差调整初始权重范围,直至量化模型满足第一停止条件时停止,得到量化模型的浮点权重范围。
[0197]
接着,对于第二阶段的训练,电子设备通过第一阶段训练后的量化模型中的浮点权重范围对样本数据进行前向传播处理,得到第二中间结果。
[0198]
进一步地,电子设备基于前向传播处理确定量化模型的第二损失误差,并在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整量化模型的初始激活范围,直至量化模型满足第二停止条件时停止,得到训练好的目标量化模型的浮点激活范围。
[0199]
通过目标量化模型对待量化数据进行量化处理,包括:
[0200]
获取待量化数据对应的量化类型,将待量化数据和对应的量化类型输入目标量化模型。
[0201]
该目标量化模型获取量化类型对应的定点权重范围和定点激活范围,基于浮点权重范围中的浮点权重最大值和浮点权重最小值,以及定点权重范围中的定点权重最大值和定点权重最小值,确定待量化数据对应的权重量化因子。
[0202]
接着,根据权重量化因子、浮点权重最小值和定点权重最小值,确定待量化数据对应的权重量化偏移量。
[0203]
进一步地,基于浮点激活范围中的浮点激活最大值和浮点激活最小值,以及定点激活范围中的定点激活最大值和定点激活最小值,确定待量化数据对应的激活量化因子。
[0204]
接着,根据激活量化因子、浮点激活最小值和定点激活最小值,确定待量化数据对应的激活量化偏移量。
[0205]
进一步地,基于权重量化参数对待量化数据进行卷积处理,并通过激活量化参数对卷积处理后的结果进行激活处理,输出在量化类型下的目标数据。
[0206]
本实施例中,通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围,并在经过第一阶段的训练后固定权重范围的前提下,对激活范围参数再次进行训练,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围,从而能够通过不同阶段的训练,使得量化模型的量化处理的精度更高,量化模型的性能得到进一步地提升。
[0207]
目标量化模型的浮点权重范围和浮点激活范围,能够对待量化数据进行量化处理,以将浮点数据量化为整型数据,能够减少数据的运算量,提高量化处理的速度。并且将浮点数据量化为整型数据,还能够减少对内存的占用。
[0208]
应该理解的是,虽然图2-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0209]
图7为一个实施例的量化模型的训练装置的结构框图。如图7所示,该装置包括:
[0210]
样本获取模块702,用于获取样本数据。
[0211]
第一训练模块704,用于通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围。
[0212]
第二训练模块706,用于基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围;其中,目标量化模型中的浮点权重范围和浮点激活范围,用于对待量化数据进行量化处理。
[0213]
本实施例中,获取样本数据,通过样本数据对量化模型进行第一阶段的训练,得到量化模型的浮点权重范围,基于浮点权重范围和样本数据,对经过第一阶段训练的量化模型进行第二阶段的训练,并在第二阶段的训练中获得训练好的目标量化模型的浮点激活范围,从而能够通过不同阶段的训练,使得量化模型的处理精度更高。目标量化模型的浮点权重范围和浮点激活范围,能够对待量化数据进行量化处理,以将浮点数据量化为整型数据,能够减少数据的运算量,提高量化处理的速度。并且将浮点数据量化为整型数据,还能够减少对内存的占用。
[0214]
在一个实施例中,第一训练模块706,还用于对于第一阶段的训练,通过量化模型对样本数据进行前向传播处理,得到第一中间结果;通过前向传播处理确定量化模型的第一损失误差,并通过前向传播处理统计量化模型的初始权重范围;在对第一中间结果进行反向传播处理的过程中,基于第一损失误差调整初始权重范围,直至量化模型满足第一停止条件时停止,得到量化模型的浮点权重范围。
[0215]
本实施例中,对于第一阶段的训练,通过量化模型对样本数据进行前向传播处理,得到第一中间结果,通过前向传播处理确定量化模型的第一损失误差,并通过前向传播处理统计量化模型的初始权重范围,以在对第一中间结果进行反向传播处理的过程中,基于第一损失误差调整初始权重范围,使得量化模型的权重范围达到最优,直至量化模型满足第一停止条件时停止,从而能够通过第一阶段的训练准确得到量化模型最终的浮点权重范围。
[0216]
在一个实施例中,第一训练模块704,还用于将量化模型中当前卷积算子通过卷积处理所输出的特征进行量化处理,得到量化特征;首个卷积算子的输出特征是对样本数据进行卷积处理得到的;对量化特征进行反量化处理,得到反量化特征,将反量化特征作为下一卷积算子的输入,并将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果。
[0217]
本实施例中,将量化模型中当前卷积算子通过卷积处理所输出的特征进行量化处理,得到量化特征,对量化特征进行反量化处理,得到反量化特征,从而能够确定数据经过量化、反量化之后所产生的误差,将反量化特征作为下一卷积算子的输入,并将下一卷积算子作为当前卷积算子,返回对将当前卷积算子通过卷积处理所输出的特征进行量化处理的步骤并继续执行,直至经过最后一次反量化处理后,得到第一中间结果,从而能够准确得到在处理过程中所产生的损失误差,以对量化模型的权重范围进行调整。
[0218]
在一个实施例中,第二训练模块706,还用于对于第二阶段的训练,通过第一阶段训练后的量化模型中的浮点权重范围对样本数据进行前向传播处理,得到第二中间结果;基于前向传播处理确定量化模型的第二损失误差,并在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整量化模型的初始激活范围,直至量化模型满足第二停止条件时停止,得到训练好的目标量化模型的浮点激活范围;其中,初始激活范围是在第一阶段的训练中通过前向传播处理统计得到。
[0219]
本实施例中,对于第二阶段的训练,通过第一阶段训练后的量化模型中的浮点权重范围对样本数据进行前向传播处理,得到第二中间结果,基于前向传播处理确定量化模型的第二损失误差,并在对第二中间结果进行反向传播处理的过程中,基于第二损失误差调整量化模型的初始激活范围,直至量化模型满足第二停止条件时停止,从而能够通过第二阶段的训练准确得到目标量化模型,以及目标量化模型中的浮点激活范围。
[0220]
在一个实施例中,该装置还包括:量化参数确定模块;量化参数确定模块,用于获取预设量化类型对应的预设权重范围和预设激活范围;根据预设权重范围、预设激活范围、浮点权重范围和浮点激活范围确定目标量化模型的量化参数;量化参数用于将待量化数据量化为在预设量化类型下所对应的数据。
[0221]
本实施例中,获取预设量化类型对应的预设权重范围和预设激活范围;根据预设权重范围、预设激活范围、浮点权重范围和浮点激活范围确定目标量化模型的量化参数,能够通过量化参数准确将待量化数据量化为在预设量化类型下所对应的数据,从而能够将浮点数据准确映射为特定类型的定点数据。
[0222]
图8为一个实施例的量化处理装置的结构框图。如图8所示,该装置包括:
[0223]
类型获取模块802,用于获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围。
[0224]
权重确定模块804,用于基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数。
[0225]
激活确定模块806,用于基于定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数;训练好的量化模型是基于样本数据进行第一阶段浮点权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型。
[0226]
量化模块808,用于基于权重量化参数和激活量化参数,将待量化数据量化为在量化类型下的目标数据。
[0227]
本实施例中,获取待量化数据对应的量化类型,并获取量化类型对应的定点权重范围和定点激活范围;基于定点权重范围和训练好的量化模型的浮点权重范围,确定待量化数据对应的权重量化参数;基于定点激活范围和训练好的量化模型的浮点激活范围,确定待量化数据对应的激活量化参数;训练好的量化模型是基于样本数据进行第一阶段浮点
权重范围的训练和第二阶段浮点激活范围的训练所得到的量化模型;基于权重量化参数和激活量化参数,能够准确将待量化数据从浮点型量化为在量化类型下的整型的目标数据。基于整型的数据进行运算,能够减少运算量,提高运算速度,从而提高后续对图像的处理速度。
[0228]
在一个实施例中,权重确定模块804,还用于基于浮点权重范围中的浮点权重最大值和浮点权重最小值,以及定点权重范围中的定点权重最大值和定点权重最小值,确定待量化数据对应的权重量化因子;根据权重量化因子、浮点权重最小值和定点权重最小值,确定待量化数据对应的权重量化偏移量。
[0229]
本实施例中,基于浮点权重范围中的浮点权重最大值和浮点权重最小值,以及定点权重范围中的定点权重最大值和定点权重最小值,能够准确确定待量化数据对应的权重量化因子。根据权重量化因子、浮点权重最小值和定点权重最小值,准确确定待量化数据对应的权重量化偏移量。
[0230]
在一个实施例中,量化模块808,还用于基于权重量化参数对待量化数据进行卷积处理,并通过激活量化参数对卷积处理后的结果进行激活处理,得到在量化类型下的目标数据。
[0231]
本实施例中,考虑权重量化参数和激活量化参数对数据量化的影响,基于权重量化参数对待量化数据进行卷积处理,并通过激活量化参数对卷积处理后的结果进行激活处理,使得所得到的在量化类型下的目标数据更准确。
[0232]
在一个实施例中,待量化数据为待量化的多媒体数据;训练好的量化模型是基于样本多媒体数据在第一阶段中训练多媒体的浮点权重范围,并在第二阶段中训练多媒体的浮点激活范围所得到量化模型;训练好的量化模型中多媒体的浮点权重范围和多媒体的浮点激活范围,用于对待量化的多媒体数据进行量化处理,目标数据为量化得到的目标多媒体数据。
[0233]
本实施例中,将量化处理方法应用在多媒体数据的量化处理上,通过样本多媒体数据对量化模型进行两阶段的训练,通过第一阶段的训练确定量化模型中多媒体的浮点权重范围,并在对经过第一阶段训练的量化模型进行第二阶段的训练中,基于样本多媒体数据和多媒体的权重范围确定量化模型中多媒体的浮点激活范围,从而得到训练好的用于进行多媒体数据量化的目标量化模型,从而能够提高目标量化模型的量化精度,使得对多媒体数据的量化更准确。
[0234]
通过目标量化模型对待量化的多媒体数据进行量化处理,能够将浮点型的多媒体数据准确量化为整型的数据。基于整型的数据进行运算,能够减少运算量,提高运算速度,从而提高对多媒体的处理速度。
[0235]
上述量化模型的训练装置、量化处理装置中各个模块的划分仅仅用于举例说明,在其他实施例中,可将量化模型的训练装置、量化处理装置按照需要划分为不同的模块,以完成上述量化模型的训练装置、量化处理装置的全部或部分功能。
[0236]
关于量化模型的训练装置、量化处理装置的具体限定可以参见上文中对于量化模型的训练方法、量化处理方法的限定,在此不再赘述。上述量化模型的训练装置、量化处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存
储器中,以便于处理器调用执行以上各个模块对应的操作。
[0237]
图9为一个实施例中电子设备的内部结构示意图。该电子设备可以是手机、平板电脑、笔记本电脑、台式电脑、pda(personal digital assistant,个人数字助理)、pos(point of sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。该电子设备包括通过系统总线连接的处理器和存储器。其中,该处理器可以包括一个或多个处理单元。处理器可为cpu(central processing unit,中央处理单元)或dsp(digital signal processing,数字信号处理器)等。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种量化模型的训练方法、量化处理方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。
[0238]
本技术实施例中提供的量化模型的训练装置、量化处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本技术实施例中所描述方法的步骤。
[0239]
本技术实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行量化模型的训练方法或量化处理方法的步骤。
[0240]
本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行量化模型的训练方法或量化处理方法。
[0241]
本技术所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括rom(read-only memory,只读存储器)、prom(programmable read-only memory,可编程只读存储器)、eprom(erasable programmable read-only memory,可擦除可编程只读存储器)、eeprom(electrically erasable programmable read-only memory,电可擦除可编程只读存储器)或闪存。易失性存储器可包括ram(random access memory,随机存取存储器),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如sram(static random access memory,静态随机存取存储器)、dram(dynamic random access memory,动态随机存取存储器)、sdram(synchronous dynamic random access memory,同步动态随机存取存储器)、双数据率ddr sdram(double data rate synchronous dynamic random access memory,双数据率同步动态随机存取存储器)、esdram(enhanced synchronous dynamic random access memory,增强型同步动态随机存取存储器)、sldram(sync link dynamic random access memory,同步链路动态随机存取存储器)、rdram(rambus dynamic random access memory,总线式动态随机存储器)、drdram(direct rambus dynamic random access memory,接口动态随机存储器)。
[0242]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献