模型量化方法、装置、设备、存储介质及产品与流程
未命名
09-22
阅读:102
评论:0

1.本技术涉及深度学习技术领域,特别涉及一种模型量化方法、装置、设备、存储介质及产品。
背景技术:
2.目前,深度学习模型已经在各行各业中占据了主导应用,然而为了提高深度学习模型的精度,深度学习模型往往比较大,从而导致深度学习模型很难部署到资源受限的边缘设备上(例如,手机或者智能手表等);因此,需要对深度学习模型进行量化。
技术实现要素:
3.本技术实施例提供了一种模型量化方法、装置、设备、存储介质及产品,能够提高量化深度学习模型的精度。所述技术方案如下:
4.一方面,提供了一种模型量化方法,所述方法包括:
5.基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,所述伪造数据的标签为所述目标标签;
6.基于所述深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,所述代理数据集合中包括多个代理数据,所述代理数据为开源的真实数据;
7.将所述伪造数据和所述代理数据进行混合,得到第一样本数据;
8.基于所述第一样本数据,对所述深度学习模型进行量化。
9.另一方面,提供了一种模型量化装置,所述装置包括:
10.生成模块,用于基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,所述伪造数据的标签为所述目标标签;
11.第一确定模块,用于基于所述深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,所述代理数据集合中包括多个代理数据,所述代理数据为开源的真实数据;
12.混合模块,用于将所述伪造数据和所述代理数据进行混合,得到第一样本数据;
13.量化模块,用于基于所述第一样本数据,对所述深度学习模型进行量化。
14.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述所述的模型量化方法。
15.另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述所述的获模型量化方法。
16.另一方面,提供了一种计算机程序产品,所述计算机程序产品存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行,以实现上述所述的模型量化方法。
17.在本技术实施例中,由于第一样本数据中包括了伪造数据和代理数据;而仿造数据是基于深度学习模型对应的标签生成的,因此仿造数据是符合标签要求的数据;而代理
数据是真实获取到的开源数据,而开源数据具有丰富的特征;因此代理数据在数据特征方面具有优势;因此,基于第一样本数据,对深度学习模型进行量化是结合了仿造数据和代理数据的优势,能够提高量化深度学习模型的精度。
附图说明
18.图1示出了本技术一个示例性实施例示出的模型量化方法的实施环境的示意图;
19.图2示出了本技术一个示例性实施例示出的模型量化方法的流程图;
20.图3示出了本技术一个示例性实施例示出的模型量化方法的示意图;
21.图4示出了本技术一个示例性实施例示出的模型量化方法的流程图;
22.图5示出了本技术一个示例性实施例示出的模型量化方法的流程图;
23.图6示出了本技术一个示例性实施例示出的模型量化方法的流程图;
24.图7示出了本技术一个示例性实施例示出的模型量化方法的流程图;
25.图8示出了本技术一个示例性实施例示出的模型量化装置的框图;
26.图9示出了本技术一个示例性实施例示出的终端的框图;
27.图10示出了本技术一个示例性实施例示出的服务器的框图。
具体实施方式
28.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
29.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
30.需要说明的是,本技术所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本技术中涉及到的伪造数据和代理数据等都是在充分授权的情况下获取的。
31.请参考图1,其示出了本技术一个示例性实施例示出的模型量化方法的实施环境的示意图。参见图1,该实施环境包括:计算机设备101和终端102。计算机设备101用于对深度学习模型进行量化,将量化后的深度学习模型部署到终端102中。本技术实施例是模型的无数据量化方法,也即不依赖于训练深度学习模型的原始的样本数据进行量化的方法。计算机设备101可以为终端或者服务器;在图1中以计算机设备101为服务器为例进行说明的。而终端102可以为资源受限的边缘终端,例如终端102可以为手机或者穿戴设备等。
32.在一些实施例中,深度学习模型可以为图像识别模型,也即计算机设备101对图像识别模型进行量化,将量化后的图像识别模型部署到终端102中,使得终端102通过量化后的图像识别模型进行图像识别。在一些实施例中,深度学习模型可以为语音识别模型,也即计算机设备101对语音识别模型进行量化,将量化后的语音识别模型部署到终端102中,使得终端102通过量化后的语音识别模型进行语音识别;例如,终端102识别语音信号的语音控制指令,从而执行语音控制指令对应的操作,进而实现通过语音信号控制终端102的目
的。在一些实施例中,深度学习模型可以为图像分类模型,也即计算机设备101对图像分类模型进行量化,将量化后的图像分类模型部署到终端102中,使得终端102通过量化后的图像分类模型进行图像分类。另外,本技术实施例提供的模型量化方法可以对任一深度学习模型进行量化,以上仅仅是对深度学习模型的举例,并不对深度学习模型进行限制。
33.请参考图2,其示出了本技术一个示例性实施例示出的模型量化方法的流程图。参考图2,该方法包括:
34.步骤201:基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
35.伪造数据为深度学习模型对应的训练数据;在一些实施例中,在深度学习模型为图像识别模型的情况下,伪造数据可以为伪造的图像;在深度学习模型为语音识别模型的情况下,伪造数据可以为伪造的语音信号;在深度学习模型为图像分类模型的情况下,伪造数据可以为伪造的图像。
36.在一些实施例中,本步骤可以通过以下步骤(1)至(3)实现,包括:
37.(1)从标签集合中确定目标标签,标签集合中存储第二样本数据的标签,第二样本数据为训练深度学习模型的样本数据。
38.例如,从标签集合{0,1,
…
,n-1},采样一个标签y,该标签y即为目标标签,n为标签的数量。其中,标签集合中的{0,1,
…
,n-1}为第二样本数据的标签对应的数字标识;例如,深度学习模型为图像识别模型,图像识别模型的标签分别为“狗”、“猫”、“兔子”,则标签集合为{0,1,2,3},0对应标签“狗”,1对应标签“猫”,2对应标签“兔子”,3对应标签“老鼠”。
39.(2)确定高斯噪声。
40.计算机设备从标签的正态分布参数中随机选择一个高斯噪声;例如计算机设备从n(0,1)中采样一个随机向量z,z∈r1×n,r表示自然数。
41.(3)基于目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
42.计算机设备将目标标签和高斯噪声输入生成器中,输出伪造数据,高速噪声用于增加生成的多个伪造数据的差异度,也即伪造数据的数量为多个,且多个伪造数据的标签均为目标标签,但多个伪造数据均不同。其中,生成器基于目标标签和高斯噪声生成伪造数据可以通过以下公式一实现:公式一:i
fd
=g(z|y),z~n(0,1);其中,i
fd
表示伪造数据;g(
·
)表示生成器,y表示目标标签,z表示高斯噪声。例如,参见图3,计算机设备选择的目标标签和高斯噪声分别为y和z,将y+z输入到生成器g中,输出伪造数据i
fd
,i
fd
∈rc×h×w;其中,c表示i
fd
的通道数,h表示高度,w表示宽度。
43.步骤202:基于深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,代理数据集合中包括多个代理数据,代理数据为开源的真实数据。
44.代理数据为深度学习模型对应的训练数据;在一些实施例中,在深度学习模型为图像识别模型的情况下,代理数据可以为开源的真实图像;在深度学习模型为语音识别模型的情况下,代理数据可以为开源的真实语音信号;在深度学习模型为图像分类模型的情况下,代理数据可以为开源的真实图像。
45.由于并不是所有的开源数据作为代理数据使用时,都能最终提升无数据量化方法最终的精度;因此,如何挑选合适的代理数据是一个很关键的点。在本技术实施例中,借助
于bn层来挑选代理数据,从而提高无数据量化方法最终的精度。
46.步骤203:将伪造数据和代理数据进行混合,得到第一样本数据。
47.伪造数据和代理数据的数量均为多个;在一些实施例中,计算机设备可以直接将步骤201中确定出的伪造数据和代理数据直接进行混合,得到第一样本数据。在另一些实施例中,计算机设备可以控制伪造数据和代理数据的混合比例;相应的,步骤202可以为:确定第一超参数,第一超参数用于约束伪造数据和代理数据的混合比例;基于第一超参数,对仿造数据和代理数据进行混合得到第一样本数据。
48.在一些实施例中,第一超参数为伪造数据的权重;则基于第一超参数,对仿造数据和代理数据进行混合得到第一样本数据的步骤可以通过以下公式二实现:公式二:其中,表示第一样本数据,γ表示第一超参数,i
fd
表示伪造数据,i
pd
表示代理数据,concat表示混合函数。第一超参数可以为事先配置到深度学习模型中的;且第一超参数可以根据需要进行设置并更改,在本技术实施例中,对第一超参数不作具体限定。
49.在本技术实施例中,代理数据可以以极小代价插入到无数据量化方法中使用,从而本技术实施例能够降低模型量化的代价。
50.步骤204:基于第一样本数据,对深度学习模型进行量化。
51.计算机设备基于深度学习模型,确定量化模型,量化模型为对深度学习模型进行量化得到的模型,基于第一样本数据,对量化模型进行多轮优化,直到满足迭代停止条件,最终完成对深度学习模型的量化过程。
52.由于第一样本数据中包括了伪造数据和代理数据;而仿造数据是基于深度学习模型对应的标签生成的,因此仿造数据是符合标签要求的数据;而代理数据是真实获取到的开源数据,而开源数据具有丰富的特征;因此代理数据在数据特征方面具有优势;因此,基于第一样本数据,对深度学习模型进行量化是结合了仿造数据和代理数据的优势,能够提高量化深度学习模型的精度。
53.请参考图4,其示出了本技术一个示例性实施例示出的模型量化方法的流程图。参考图4,该方法包括:
54.步骤401:计算机设备基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
55.在一些实施例中,本步骤与步骤201相同,在此不再赘述。
56.步骤402:计算机设备确定代理数据集合,代理数据集合包括多个候选代理数据。
57.候选代理数据为开源数据;相应的,计算机设备从开源数据集合中确定代理数据集合。在一些实施例中,计算机设备从开源数据集合中确定与深度学习模型对应数据类型的开源数据,将确定出开源数据组成代理数据集合。例如,深度学习模型为图像识别模型,则计算机设备从开源数据集合中确定多个图像组成代理数据集合;再如,深度学习模型为语音识别模型,则计算机设备从开源数据集合中确定多个语音信号组成代理数据集合;再如,深度学习模型为图像分类模型,则计算机设备从开源数据集合中确定多个图像组成代理数据集合。
58.在一些实施例中,计算机设备从开源数据集合中随机确定多个开源数据,将确定出的多个开源数据组成代理数据集合,从而能够保证数据的随机性,进而能够提高模型量
化的精度。
59.步骤403:计算机设备基于深度学习模型中的多个第一批归一化bn层,确定代理数据集合中的多个候选代理数据对应的归一化距离,候选代理数据对应的归一化距离用于表征候选代理数据与第二样本数据之间的相关性,第二样本数据为训练深度学习模型的样本数据。
60.候选代理数据对应的归一化距离越大表示候选代理数据与第二样本数据之间的相关性越小,而候选代理数据对应的归一化距离越小表示候选代理数据与第二样本数据之间的相关性越大。需要说明的一点是,在量化深度学习模型时,并未真实获取到第二样本数据,而只是通过归一化距离来表征与第二样本数据之间的相关性。
61.在一些实施例中,本步骤可以通过以下步骤(1)至(3)实现,包括:
62.(1)对于任一候选代理数据,计算机设备将候选代理数据输入深度学习模型中。
63.计算机设备可以将代理数据集合中的多个候选代理数据一次性输入深度学习模型,而深度学习模型依次对多个候选代理数据执行步骤(2)。
64.(2)计算机设备通过深度学习模型中的多个第一bn层,确定候选代理数据在多个bn层的第一均值和第一方差。
65.深度学习模型中包括多个第一bn层,bn层用于确定归一化距离。
66.(3)计算机设备基于候选代理数据在多个第一bn层的第一均值和第一方差以及预先存储在多个第一bn层的第二均值和第二方差,确定候选代理数据对应的归一化距离。
67.本步骤可以通过以下步骤(3-1)至(3-2)实现,包括:
68.(3-1)对于任一第一bn层,计算机设备基于候选代理数据在第一bn层的第一均值和预先存储在第一bn层的第二均值,确定第一归一化距离,以及基于候选代理数据第一bn层的第一方差和预先存储在第一bn层的第二方差,确定第二归一化距离,确定第一归一化距离和第二归一化距离之和,得到第三归一化距离。
69.(3-2)计算机设备确定多个第一bn层对应的第三归一化距离的平均值,得到候选代理数据对应的归一化距离。
70.在一些实施例中,步骤(3-1)和步骤(3-2)可以通过以下公式三实现:
71.公式三:
72.其中,d
bn
表示候选代理数据对应的归一化距离,和分别为第i个第一bn层的候选代理数据计算出的均值和方差,μ1和σ1分别为深度学习模型存储在第i个第一bn层的相应均值和方差。l1表示深度学习模型中的第一bn层的总数。其中,
73.步骤404:计算机设备基于代理数据集合中的多个候选代理数据对应的归一化距离,从代理数据集合中确定对应归一化距离满足条件的代理数据。
74.候选代理数据对应的归一化距离越大表示候选代理数据与第二样本数据之间的相关性越小,而候选代理数据对应的归一化距离越小表示候选代理数据与第二样本数据之间的相关性越大。因此,计算机设备基于代理数据集合中的多个候选代理数据对应的归一化距离,从代理数据集合中确定对应归一化距离最小的多个代理数据;或者,从代理数据集合中确定对应归一化距离小于预设距离的多个代理数据。
75.步骤405:计算机设备将伪造数据和代理数据进行混合,得到第一样本数据。
76.在一些实施例中,本步骤与步骤203相同,在此不再赘述。
77.步骤406:计算机设备基于第一样本数据,对深度学习模型进行量化。
78.在一些实施例中,本步骤与步骤204相同,在此不再赘述。
79.在本技术实施例中,由于并不是所有的开源数据作为代理数据使用时,都能最终提升无数据量化方法最终的精度;因此,如何挑选合适的代理数据是一个很关键的点。在本技术实施例中,借助于bn层来挑选代理数据,从而提高无数据量化方法最终的精度。
80.请参考图5,其示出了本技术一个示例性实施例示出的模型量化方法的流程图。参考图5,该方法包括:
81.步骤501:计算机设备基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
82.在一些实施例中,本步骤与步骤201相同,在此不再赘述。
83.步骤502:计算机设备基于深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,代理数据集合中包括多个代理数据,代理数据为开源的真实数据。
84.在一些实施例中,本步骤可以通过步骤402-404实现,在此不再赘述。
85.步骤503:计算机设备在代理数据中标注标签。
86.由于伪造数据为基于深度学习模型的目标标签生成的数据,因此伪造数据和原始数据(训练深度学习模型的第二样本数据)具有相同的标签,且伪造数据中标注有其对应的标签;而代理数据是从自然界获取到的开源数据,而开源数据不一定有和原始数据(训练深度学习模型的第二样本数据)相同的标签;因此需要构造代理数据的标签,然后在代理数据中标注其对应的标签。
87.在一些实施例中,计算机设备将代理数据输入深度学习模型,输出代理数据的标签,在代理数据中标注代理数据的标签。由于是通过代理数据来量化深度学习模型的;因此,深度学习模型能够从其对应的多个标签中确定一个标签作为代理数据的标签,这样确定出的标签与原始数据(训练深度学习模型的第二样本数据)具有相同的标签,能够提高后续量化的精度。
88.在一些实施例中,深度学习模型生成代理数据的标签可以通过以下公式四实现:公式四:其中,表示代理数据的标签,f(
·
)表示原始的深度学习模型,i
pd
表示代理数据。例如,继续参考图3,计算机设备将i
pd
输入原始的深度学习模型中,输出代理数据的标签
89.步骤504:计算机设备将伪造数据和代理数据进行混合,得到第一样本数据。
90.在一些实施例中,本步骤与步骤201相同,在此不再赘述。计算机设备对深度学习模型进行量化的过程为:计算机设备确定量化模型,量化模型是对深度学习模型进行量化得到的模型,然后通过多轮迭代优化过程,对量化模型进行优化,以最终完成对深度学习模型的量化;对于每一轮迭代优化,均通过步骤505-508实现。在一些实施例中,计算机设备确定量化模型的过程可以为:计算机设备将深度学习模型中的浮点数据量化为定点数据,得到量化模型。计算机设备还可以通过其他量化方法,确定量化模型,在本技术实施例中,对计算机设备确定量化模型的过程不作具体限定。
91.步骤505:对于任一轮迭代优化,计算机设备基于第一样本数据和第一样本数据的
标签,通过量化模型,确定第一损失函数。
92.量化模型是对深度学习模型进行量化得到的模型;计算机设备基于第一样本数据和第一样本数据的标签,通过量化模型,依据交叉熵损失函数,确定第一损失函数。例如,计算机设备将标注标签的第一样本数据输入量化模型中,通过交叉熵损失函数,确定第一损失函数,其实现过程可以通过公式五实现:公式五:其中,l
ce
(q)表示第一损失函数,q(
·
)表示量化模型,表示第一样本数据,表示第一样本数据的标签,ce(
·
,
·
)表示交叉熵损失函数。
93.步骤506:计算机设备基于第一样本数据,通过量化模型和深度学习模型,确定第二损失函数。
94.计算机设备基于第一样本数据,通过量化模型和深度学习模型,依据相对熵函数,确定第二损失函数。例如,计算机设备将第一样本数据分别输入量化模型和深度学习模型中,通过相对熵函数,确定第二损失函数,其实现过程可以通过公式六实现:公式六:其中,l
kd
(q)表示第二损失函数,q(
·
)表示量化模型,表示第一样本数据,f(
·
)表示深度学习模型。
95.步骤507:计算机设备基于第二超参数,对第一损失函数和第二损失函数进行加权求和,得到第一总损失函数,第二超参数用于约束第二损失函数的权重。
96.在一些实施例中,计算机设备基于第二超参数,通过以下公式七,对第一损失函数和第二损失函数进行加权求和,得到第一总损失函数。公式七:lq=l
ce
(q)+β
·
l
kd
(q);其中,lq表示第一总损失函数,β表示第二超参数,l
kd
(q)表示第二损失函数,l
ce
(q)表示第一损失函数。
97.在一些实施例中,计算机设备基于第二超参数和第四超参数,通过以下公式八,对第一损失函数和第二损失函数进行加权求和,得到第一总损失函数,第二超参数用于约束第二损失函数的权重,第四超参数用于约束第一损失函数的权重。公式八:lq=εl
ce
(q)+β
·
l
kd
(q);其中,lq表示第一总损失函数,β表示第二超参数,ε表示第四超参数,l
kd
(q)表示第二损失函数,l
ce
(q)表示第一损失函数。
98.在本技术实施例中,通过对两个方式获取到的损失函数进行加权求和的方式来得到总的损失函数,能够权衡两个损失函数对整个损失函数的影响,从而提高基于总的损失函数进行模型量化的精度。
99.步骤508:计算机设备基于第一总损失函数,对量化模型进行一轮优化。
100.在第一总损失函数对应值小于第一预设阈值的情况下,对量化模型优化结束;在第一总损失函数对应值不小于第一预设阈值的情况下,调整量化模型的参数值,然后进行下一轮的优化过程。或者,在第一总损失函数与上一轮的第一总损失函数对应的值之间的差值小于第二预设阈值的情况下,对量化模型优化结束;在第一总损失函数与上一轮的第一总损失函数对应的值之间的差值不小于第二预设阈值的情况下,然后进行下一轮的优化过程,直到量化模型优化结束。例如,继续参考图3,计算机设备将代理数据i
pd
和伪造数据i
fd
输入量化模型中,以对量化模型进行优化。
101.在本技术实施例中,在确定第一损失函数和第二损失函数时,直接使用结合了代理数据和伪造数据的第一样本数据来确定,这样能够将本技术的方法零成本的结合到其他
无数据量化方法中,进而能够帮助其他无数据量化方法提高量化精度。另外,本技术提出的基于代理数据实现无数据量化方法,能够缓解无数据量化方法中缺乏原始数据集,进一步导致模型量化精度退化的问题。同时,本技术实施例验证了完全依赖于仿造数据集是没有必要的,也验证了代理数据可以成本的结合到其他无数据量化的方法中使用。
102.请参考图6,其示出了本技术一个示例性实施例示出的模型量化方法的流程图。参考图6,该方法包括:
103.步骤601:计算机设备基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
104.在一些实施例中,本步骤与步骤201相同,在此不再赘述。
105.步骤602:计算机设备基于深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,代理数据集合中包括多个代理数据,代理数据为开源的真实数据。
106.在一些实施例中,本步骤可以通过步骤402-404实现,在此不再赘述。
107.步骤603:计算机设备将伪造数据和代理数据进行混合,得到第一样本数据。
108.在一些实施例中,本步骤与步骤203相同,在此不再赘述。
109.步骤604:计算机设备基于第一样本数据,对深度学习模型进行量化。
110.在一些实施例中,本步骤可以通过步骤505-508实现,在此不再赘述。
111.步骤605:计算机设备基于伪造数据和目标标签,通过深度学习模型,确定生成器的第三损失函数。
112.计算机设备基于伪造数据和目标标签,通过深度学习模型,依据交叉熵损失函数,确定第三损失函数。例如,计算机设备将标注目标标签的伪造数据输入深度学习模型中,通过交叉熵损失函数,确定第三损失函数,其实现过程可以通过公式九实现:公式九:l
ce
(g)=ce(f(g(z|y)),y);其中,l
ce
(g)表示第三损失函数,f(
·
)表示深度学习模型,g(z|y)表示伪造数据,y表示伪造数据的标签,ce(
·
,
·
)表示交叉熵损失函数。
113.步骤606:计算机设备基于仿造数据,通过深度学习模型中的多个第二bn层确定生成器的第四损失函数。
114.计算机设备引入bn损失函数来约束生成器,从而使得伪造数据更接近真实的分布,进而提高无数据量化的精度。相应的,计算机设备将伪造数据输入生成器中,通过深度学习模型中的多个第二bn层确定生成器的第四损失函数,其实现过程可以通过公式十实现:公式十:现:公式十:其中,和分别为第i个第二bn层仿造数据计算的均值和方差,μ2和σ2分别为原模型存储在第i个第二bn层的相应均值和方差。l2表示网络中第二bn的总数。其中在一些实施例中,第二bn层和第一bn层可以为同一bn层,也可以为深度学习模型中不同的bn层。
115.步骤607:计算机设备基于第三超参数,对第三损失函数和第四损失函数进行加权求和,得到第二总损失函数,第三超参数用于约束第四损失函数的权重。
116.在一些实施例中,计算机设备基于第三超参数,通过以下公式十一,对第三损失函数和第四损失函数进行加权求和,得到第二总损失函数。公式十一:l(g)=l
ce
(g)+α
·
l
bn
(g);其中,l(g)表示第二总损失函数,α表示第三超参数,l
ce
(g)表示第三损失函数,l
nn
(g)
表示第四损失函数。
117.在一些实施例中,计算机设备基于第三超参数,通过以下公式十二,对第三损失函数和第四损失函数进行加权求和,得到第二总损失函数。公式十二:l(g)=(1-α)l
ce
(g)+α
·
l
bn
(g);其中,l(g)表示第二总损失函数,α表示第三超参数,l
ce
(g)表示第三损失函数,l
bn
(g)表示第四损失函数。
118.在本技术实施例中,通过对两个方式获取到的损失函数进行加权求和的方式来得到总的损失函数,能够权衡两个损失函数对整个损失函数的影响,从而提高基于总的损失函数进行模型量化的精度。
119.步骤608:计算机设备基于第二总损失函数,对生成器进行更新。
120.在第二总损失函数对应值小于第三预设阈值的情况下,对生成器更新结束;在第二总损失函数对应值不小于第三预设阈值的情况下,调整生成器的参数值,然后进行下一轮的更新过程。或者,在第二总损失函数与上一轮的第二总损失函数对应的值之间的差值小于第四预设阈值的情况下,对生成器更新结束;在第二总损失函数与上一轮的第二总损失函数对应的值之间的差值不小于第四预设阈值的情况下,然后进行下一轮的更新过程,直到生成器更新结束。
121.在一些实施例中,计算机设备更新完生成器之后,从深度学习模型对应的标签集合中选择一个新的目标标签,基于新的目标标签和重新确定的高斯噪声,通过更新后的生成器生成新的伪造数据,然后进行后续的模型量化过程。在本技术实施例中,在生成一次伪造数据之后,就对生成器进行一次更新,这样能够约束生成器,进而使得生成器生成的伪造数据更接近真实的分布,进而提高无数据量化的精度。
122.请参考图7,其示出了本技术一个示例性实施例示出的模型量化方法的流程图。参考图7,该方法包括:
123.步骤701:计算机设备基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签。
124.在一些实施例中,本步骤与步骤201相同,在此不再赘述。
125.步骤702:计算机设备基于深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,代理数据集合中包括多个代理数据,代理数据为开源的真实数据。
126.在一些实施例中,本步骤可以通过步骤402-404实现,在此不再赘述。
127.步骤703:计算机设备将伪造数据和代理数据进行混合,得到第一样本数据。
128.在一些实施例中,本步骤与步骤203相同,在此不再赘述。
129.步骤704:计算机设备基于第一样本数据,对量化模型进行一轮优化。
130.在一些实施例中,本步骤可以通过步骤505-508实现,在此不再赘述。
131.步骤705:计算机设备更新一轮生成器,通过更新后的生成器生成新的伪造数据。
132.在一些实施例中,计算机设备更新一轮生成器的过程可以通过步骤605-608实现,计算机设备通过更新后的生成器生成新的伪造数据的过程与步骤201类似,只是获取的目标标签不同而已,当然高斯噪声也可以是不同的,具体的过程在此不再赘述。
133.步骤706:计算机设备将新的伪造数据和代理数据进行混合,得到新的第一样本数据。
134.在一些实施例中,本步骤与步骤203相同,在此不再赘述。
135.步骤707:计算机设备基于新的第一样本数据,对量化模型再进行一轮优化。
136.在一些实施例中,本步骤可以通过步骤504-507实现,在此不再赘述。
137.步骤708:计算机设备再更新一轮生成器。
138.在一些实施例中,本步骤可以通过步骤504-507实现,在此不再赘述。计算机再更新一轮生成器之后,再基于更新后的生成器生成新的伪造数据,然后再次将新的伪造数据和代理数据进行混合,也即执行步骤706-708,直到量化模型优化完成为止。
139.在本技术实施例中,在每个训练周期中,交替更新生成器和量化模型,从而能够在对量化模型进行优化时,能够基于最新的生成器来生成伪造数据,这样能够提高生成的伪造数据的准确性,进而提高量化模型的精度。
140.请参考图8,其示出了本技术一个示例性实施例示出的模型量化装置,装置包括:
141.生成模块801,用于基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,伪造数据的标签为目标标签;
142.第一确定模块802,用于基于深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,代理数据集合中包括多个代理数据,代理数据为开源的真实数据;
143.混合模块803,用于将伪造数据和代理数据进行混合,得到第一样本数据;
144.量化模块804,用于基于第一样本数据,对深度学习模型进行量化。
145.在一些实施例中,第一确定模块802,用于确定代理数据集合,代理数据集合包括多个候选代理数据;基于深度学习模型中的多个第一批归一化bn层,确定代理数据集合中的多个候选代理数据对应的归一化距离,候选代理数据对应的归一化距离用于表征候选代理数据与第二样本数据之间的相关性,第二样本数据为训练深度学习模型的样本数据;基于代理数据集合中的多个候选代理数据对应的归一化距离,从代理数据集合中确定对应归一化距离满足条件的代理数据。
146.在一些实施例中,第一确定模块802,用于对于任一候选代理数据,将候选代理数据输入深度学习模型中;通过深度学习模型中的多个第一bn层,确定候选代理数据在多个bn层的第一均值和第一方差;基于候选代理数据在多个第一bn层的第一均值和第一方差以及预先存储在多个第一bn层的第二均值和第二方差,确定候选代理数据对应的归一化距离。
147.在一些实施例中,第一确定模块802,用于对于任一第一bn层,基于候选代理数据在第一bn层的第一均值和预先存储在第一bn层的第二均值,确定第一归一化距离,以及基于候选代理数据第一bn层的第一方差和预先存储在第一bn层的第二方差,确定第二归一化距离,确定第一归一化距离和第二归一化距离之和,得到第三归一化距离;确定多个第一bn层对应的第三归一化距离的平均值,得到候选代理数据对应的归一化距离。
148.在一些实施例中,混合模块803,用于确定第一超参数,第一超参数用于约束伪造数据和代理数据的混合比例;基于第一超参数,对仿造数据和代理数据进行混合得到第一样本数据。
149.在一些实施例中,量化模块804,用于对于任一轮迭代优化,基于第一样本数据和第一样本数据的标签,通过量化模型,确定第一损失函数,量化模型是对深度学习模型进行量化得到的模型;基于第一样本数据,通过量化模型和深度学习模型,确定第二损失函数;基于第二超参数,对第一损失函数和第二损失函数进行加权求和,得到第一总损失函数,第
二超参数用于约束第二损失函数的权重;基于第一总损失函数,对量化模型进行优化。
150.在一些实施例中,装置还包括:
151.标注模块,用于将代理数据输入深度学习模型中,输出代理数据的标签;在代理数据中标注代理数据的标签。
152.在一些实施例中,装置还包括:
153.第二确定模块,用于基于伪造数据和目标标签,通过深度学习模型,确定生成器的第三损失函数;
154.第三确定模块,用于基于仿造数据,通过深度学习模型中的多个第二bn层确定生成器的第四损失函数;
155.加权模块,用于基于第三超参数,对第三损失函数和第四损失函数进行加权求和,得到第二总损失函数,第三超参数用于约束第四损失函数的权重;
156.更新模块,用于基于第二总损失函数,对生成器进行更新。
157.在本技术实施例中,由于第一样本数据中包括了伪造数据和代理数据;而仿造数据是基于深度学习模型对应的标签生成的,因此仿造数据是符合标签要求的数据;而代理数据是真实获取到的开源数据,而开源数据具有丰富的特征;因此代理数据在数据特征方面具有优势;因此,基于第一样本数据,对深度学习模型进行量化是结合了仿造数据和代理数据的优势,能够提高量化深度学习模型的精度。
158.需要说明的是,上述实施例提供的模型量化装置在进行模型量化时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的模型量化装置与模型量化方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
159.在一些实施例中,计算机设备可以为终端;请参考图9,其示出了本技术一个示例性实施例示出的终端900的框图。本技术中的终端900可以包括一个或多个如下部件:处理器910、存储器920、显示屏930和计算机设备通信模块940。
160.处理器910与计算机设备通信模块940通过总线电性连接,且处理器910通过计算机设备通信模块940与计算机设备进行通信,以获取指示信息。
161.处理器910可以包括一个或者多个处理核心。处理器910利用各种接口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行终端900的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器910可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing unit,npu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏930所需要显示的内容的渲染和绘制;npu用于实现人工智能(artificial intelligence,ai)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块芯片进行实现。
162.存储器920可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选地,该存储器920包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端900的使用所创建的数据(比如音频数据、电话本)等。
163.显示屏930是用于显示用户界面的显示组件。可选的,该显示屏930为具有触控功能的显示屏,通过触控功能,用户可以使用手指、触摸笔等任何适合的物体在显示屏930上进行触控操作。
164.显示屏930通常设置在终端900的前面板。显示屏930可被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。显示屏930还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合等,本实施例对此不加以限定。
165.除此之外,本领域技术人员可以理解,上述附图所示出的终端900的结构并不构成对终端900的限定,终端900可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端900中还包括音频采集器件、扬声器、射频电路、输入单元、传感器、音频电路、无线保真(wireless fidelity,wi-fi)模块、电源、蓝牙模块等部件,在此不再赘述。
166.在一些实施例中,计算机设备可以为服务器;请参考图10,其示出了本技术一个示例性实施例示出的服务器1010的框图。服务器1010可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,cpu)1001和存储器1002,其中,存储器1002中存储有至少一条程序代码,至少一条程序代码由处理器1001加载并执行以实现上述各个方法实施例提供的方法。当然,服务器1010还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,服务器1010还可以包括其他用于实现设备功能的部件,在此不做赘述。
167.本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现如上各个实施例示出的模型量化方法。
168.本技术实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现如上各个实施例示出的模型量化方法。
169.在一些实施例中,本技术实施例所涉及的计算机程序产品可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
170.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个
地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
171.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种模型量化方法,其特征在于,所述方法包括:基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,所述伪造数据的标签为所述目标标签;基于所述深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,所述代理数据集合中包括多个代理数据,所述代理数据为开源的真实数据;将所述伪造数据和所述代理数据进行混合,得到第一样本数据;基于所述第一样本数据,对所述深度学习模型进行量化。2.根据权利要求1所述的方法,其特征在于,所述基于所述深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,包括:确定代理数据集合,所述代理数据集合包括多个候选代理数据;基于所述深度学习模型中的多个第一批归一化bn层,确定所述代理数据集合中的多个候选代理数据对应的归一化距离,所述候选代理数据对应的归一化距离用于表征所述候选代理数据与第二样本数据之间的相关性,所述第二样本数据为训练所述深度学习模型的样本数据;基于所述代理数据集合中的多个候选代理数据对应的归一化距离,从所述代理数据集合中确定对应归一化距离满足条件的代理数据。3.根据权利要求2所述的方法,其特征在于,所述基于所述深度学习模型中的多个第一批归一化bn层,确定所述代理数据集合中的多个候选代理数据对应的归一化距离,包括:对于任一候选代理数据,将所述候选代理数据输入所述深度学习模型中;通过所述深度学习模型中的多个第一bn层,确定所述候选代理数据在所述多个bn层的第一均值和第一方差;基于所述候选代理数据在所述多个第一bn层的第一均值和第一方差以及预先存储在所述多个第一bn层的第二均值和第二方差,确定所述候选代理数据对应的归一化距离。4.根据权利要求3所述的方法,其特征在于,所述基于所述候选代理数据在所述多个第一bn层的第一均值和第一方差以及预先存储在所述多个第一bn层的第二均值和第二方差,确定所述候选代理数据对应的归一化距离,包括:对于任一第一bn层,基于所述候选代理数据在所述第一bn层的第一均值和预先存储在所述第一bn层的第二均值,确定第一归一化距离,以及基于所述候选代理数据所述第一bn层的第一方差和预先存储在所述第一bn层的第二方差,确定第二归一化距离,确定所述第一归一化距离和所述第二归一化距离之和,得到第三归一化距离;确定所述多个第一bn层对应的第三归一化距离的平均值,得到所述候选代理数据对应的归一化距离。5.根据权利要求1所述的方法,其特征在于,所述将所述伪造数据和所述代理数据进行混合,得到第一样本数据,包括:确定第一超参数,所述第一超参数用于约束所述伪造数据和所述代理数据的混合比例;基于所述第一超参数,对所述仿造数据和所述代理数据进行混合得到所述第一样本数据。6.根据权利要求1所述的方法,其特征在于,所述基于所述第一样本数据,对所述深度
学习模型进行量化,包括:对于任一轮迭代优化,基于所述第一样本数据和所述第一样本数据的标签,通过量化模型,确定第一损失函数,所述量化模型是对所述深度学习模型进行量化得到的模型;基于所述第一样本数据,通过所述量化模型和所述深度学习模型,确定第二损失函数;基于第二超参数,对所述第一损失函数和所述第二损失函数进行加权求和,得到第一总损失函数,所述第二超参数用于约束所述第二损失函数的权重;基于所述第一总损失函数,对所述量化模型进行优化。7.根据权利要求1所述的方法,其特征在于,所述将所述伪造数据和所述代理数据进行混合,得到第一样本数据之前,所述方法还包括:将所述代理数据输入所述深度学习模型中,输出所述代理数据的标签;在所述代理数据中标注所述代理数据的标签。8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:基于所述伪造数据和所述目标标签,通过深度学习模型,确定所述生成器的第三损失函数;基于所述仿造数据,通过所述深度学习模型中的多个第二bn层确定所述生成器的第四损失函数;基于第三超参数,对所述第三损失函数和所述第四损失函数进行加权求和,得到第二总损失函数,所述第三超参数用于约束所述第四损失函数的权重;基于所述第二总损失函数,对所述生成器进行更新。9.一种模型量化装置,其特征在于,所述装置包括:生成模块,用于基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,所述伪造数据的标签为所述目标标签;第一确定模块,用于基于所述深度学习模型中的多个第一批归一化bn层,从代理数据集合中确定代理数据,所述代理数据集合中包括多个代理数据,所述代理数据为开源的真实数据;混合模块,用于将所述伪造数据和所述代理数据进行混合,得到第一样本数据;量化模块,用于基于所述第一样本数据,对所述深度学习模型进行量化。10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至权利要求8任一项所述的模型量化方法。11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至权利要求8任一项所述的模型量化方法。12.一种计算机程序产品,其特征在于,所述计算机程序产品存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行,以实现如权利要求1至权利要求8任一项所述的模型量化方法。
技术总结
本申请提供了一种模型量化方法、装置、设备、存储介质及产品,属于深度学习技术领域。方法包括:基于深度学习模型对应的目标标签和高斯噪声,通过生成器生成伪造数据,所述伪造数据的标签为所述目标标签;基于所述深度学习模型中的多个第一批归一化BN层,从代理数据集合中确定代理数据,所述代理数据集合中包括多个代理数据,所述代理数据为开源的真实数据;将所述伪造数据和所述代理数据进行混合,得到第一样本数据;基于所述第一样本数据,对所述深度学习模型进行量化。本申请能够提高量化深度学习模型的精度。学习模型的精度。学习模型的精度。
技术研发人员:张光艳
受保护的技术使用者:深圳市欢太科技有限公司
技术研发日:2023.06.21
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/