零样本学习深度模型的量化方法技术

技术编号:38708159 阅读:7 留言:0更新日期:2023-09-08 14:48
本发明专利技术提供了一种零样本学习深度模型的量化方法,主要包括以下步骤:获取已经训练完毕的全精度预训练模型;利用知识匹配生成器从全精度预训练模型的批归一化层BN层中获取原始训练数据的分类和分布信息;使用所述校准数据集驱动所述全精度预训练模型的量化;生成新的伪数据驱动知识匹配生成器的优化;持续交替对抗地优化量化模型和知识匹配生成器,直到模型量化性能稳定收敛。相较于现有技术,本发明专利技术提出对权重和量化参数进行逐层联合迭代优化,能够使模型每层量化层输出与全精度层输出之间的误差最小化。间的误差最小化。间的误差最小化。

【技术实现步骤摘要】
零样本学习深度模型的量化方法


[0001]本专利技术涉及一种零样本学习深度模型的量化方法,属于深度学习


技术介绍

[0002]随着深度学习技术在计算机视觉(CV)、自然语言处理(NLP)、语音等多个领域的快速应用,出现了大量的基于深度学习的网络模型。所述模型共有一个特点,即大而复杂、适合在GPU卡上面进行推理,并不适用在手机等嵌入式设备中,而客户们通常需要将所述复杂的模型部署在一些低成本的嵌入式设备中,因而这就产生了一个矛盾。
[0003]为了很好的解决这个矛盾,模型量化应运而生,对于深度学习模型来说,全精度浮点数乘加计算量是非常大的,往往需要GPU等专用的计算平台才能实现实时运算,这对于嵌入式设备来说是不可接受的,而模型量化是一个有效降低计算量的方法,它可以在损失少量精度的前提下对对模型的浮点数进行整型化,使得将所述复杂的模型应用到手机、机器人等嵌入式终端中变成了可能,大大降低了网络的数值精度、复杂性和内存占用。模型量化本质上就是建立一种浮点数据和定点数据间的映射关系,使得以较小的精度损失代价获得了较大的收益。
[0004]有鉴于此,确有必要提出一种零样本学习深度模型的量化方法,以解决上述问题。

技术实现思路

[0005]本专利技术的目的在于提供一种零样本学习深度模型的量化方法,实现了在不访问真实训练数据集的情况下对权重和激活逐层联合迭代优化。
[0006]为实现上述目的,本专利技术还提供了一种零样本学习深度模型的量化方法,主要包括以下步骤:
[0007]步骤1、获取已经训练完毕的全精度预训练模型;
[0008]步骤2、利用知识匹配生成器从全精度预训练模型的批归一化层BN层中获取原始训练数据的分类和分布信息,并生成批量伪数据作为校准数据集;
[0009]步骤3、使用所述校准数据集驱动所述全精度预训练模型的量化,其中,对模型每层的量化参数分别设置优化器,并从校准数据集中随机抽取部分数据进行100次的迭代优化,得到优化后的量化模型;
[0010]步骤4、生成新的伪数据驱动知识匹配生成器的优化,其中,优化的目标函数与步骤3中量化模型优化的目标函数形成对抗关系,重复步骤3对知识匹配生成器进行k次的迭代优化;
[0011]步骤5、持续交替对抗地优化量化模型和知识匹配生成器,直到模型量化性能稳定收敛。
[0012]作为本专利技术的进一步改进,步骤1中,根据目标数据集对全精度神经网络进行预训练,获得全精度预训练模型。
[0013]作为本专利技术的进一步改进,步骤2中,所述知识匹配生成器通过输入一个随机噪
声,通过连续的线性变化、卷积、上采样以及激活函数的处理,最终输出一张1通道或者3通道的图片;所述的输入随机噪声的维度大小和输出图片的格式要根据需要进行设定,预训练模型包含着原始训练数据的分布信息,所述分布信息可以通过批归一化层BN层获取。
[0014]作为本专利技术的进一步改进,所述知识匹配生成器合成与所述全精度预训练模型的批归一化层BN层中编码的真实数据分布相匹配的数据样本,原理如下:
[0015][0016]其中,和分别表示第i个批归一化层BN层合成数据分布的均值和方差,μ
i
和σ
i
分别表示预训练的所述全精度预训练模型存储在第i个批归一化层BN层相应的均值和方差,L表示模型层数。
[0017]作为本专利技术的进一步改进,步骤3中,所述知识匹配生成器合成批量与训练集数据尺寸相匹配的伪数据作为校准数据集,再利用深度模型逐层量化算法在校准数据集上对权重和量化参数逐层联合优化,最大限度地最小化量化层输出和全精度层输出之间的均方误差,从而对权重和激活做到最优量化。
[0018]作为本专利技术的进一步改进,步骤31、吸收批归一化层BN层,将批归一化层BN层融合到前一层卷积层中,减少乘加计算量从而达到加速目的;
[0019]步骤32、量化模型过程中,涉及到两个量化函数QConv2d和QLinear,其中权重以每通道channal

wise方式量化,激活以每层l ayer

wise方式量化,以权重为量化,其中c
o
为输出通道数即卷积核个数,c
i
为输入通道数即每个卷积核的通道数,w
k
×
h
k
为卷积核尺寸,首先指示变量measure置为True,此时调用QuantMeasure()函数,计算所需的量化参数,其中,先将原始全精度张量沿维度1展开成其中c
k
=c
i
×
w
k
×
h
k
,针对每一个输出通道得到最大值和最小值调整最大值不小于0,最小值不大于0,计算得到范围和零点计算公式:
[0020]r=r_max

r_min,
[0021]z=r_min,
[0022]其中,和为原始全精度张量的最大值和最小值;
[0023]步骤33、计算完量化参数后,记录调用次数num,计算冲量mo,使用冲量来正则化每一次量化参数,以减少误差,正则过程:
[0024]mo=num/num+1,
[0025]z=z
×
mo+qp_z
×
(1

mo),
[0026]r=r
×
mo+qp_r
×
(1

mo),
[0027]其中,和表示前一次已正则化后的量化参数;
[0028]步骤34、指示变量measure置为False,此时调用QuantThUpdate()函数从QuantMeasure()函数中获取量化参数范围和零点进行具体的量化操作;
[0029]步骤35、不同于权重和激活参数,偏差参数对于输入的改变是不敏感的,不需要通过冲量正则化的方式来减少误差防止过拟合,因此可以直接进行均匀量化,具体量化操作为QuantThUpdate();
[0030]步骤36、在校准数据集上对量化模型进行逐层迭代优化,使用均方误差损失函数
对量化模型进行训练微调,使量化模型的性能尽可能逼近所述全精度预训练模型,对于模型每层量化层的权重和偏差以及量化范围和零点参数分别设置优化器,同时加入学习率自动调整模块,按照设定的间隔逐渐减小优化过程的学习率从而达到更好的训练效果,
[0031]对所述量化模型的参数进行更新时,采用自适应矩估计Adam算法对参数进行100次的迭代优化,每次优化时从校准数据集中随机抽取固定数量h的合成数据作为输入,使用均方误差函数将全精度预训练模型的输出和量化模型输出进行对齐,以微调量化模型,其中,优化量化模型时的损失函数为:
[0032][0033]其中,N表示模型需要量化的层数,表示模型的第i层输入,表示第i层全精度预训练模型的输出,Q
i
表示量化模型的第i层,表示量化模型第i本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种零样本学习深度模型的量化方法,其特征在于,主要包括以下步骤:步骤1、获取已经训练完毕的全精度预训练模型;步骤2、利用知识匹配生成器从全精度预训练模型的批归一化层BN层中获取原始训练数据的分类和分布信息,并生成批量伪数据作为校准数据集;步骤3、使用所述校准数据集驱动所述全精度预训练模型的量化,其中,对模型每层的量化参数分别设置优化器,并从校准数据集中随机抽取部分数据进行100次的迭代优化,得到优化后的量化模型;步骤4、生成新的伪数据驱动知识匹配生成器的优化,其中,优化的目标函数与步骤3中量化模型优化的目标函数形成对抗关系,重复步骤3对知识匹配生成器进行k次的迭代优化;步骤5、持续交替对抗地优化量化模型和知识匹配生成器,直到模型量化性能稳定收敛。2.根据权利要求1所述的零样本学习深度模型的量化方法,其特征在于:步骤1中,根据目标数据集对全精度神经网络进行预训练,获得全精度预训练模型。3.根据权利要求1所述的零样本学习深度模型的量化方法,其特征在于:步骤2中,所述知识匹配生成器通过输入一个随机噪声,通过连续的线性变化、卷积、上采样以及激活函数的处理,最终输出一张1通道或者3通道的图片;所述的输入随机噪声的维度大小和输出图片的格式要根据需要进行设定,预训练模型包含着原始训练数据的分布信息,所述分布信息可以通过批归一化层BN层获取。4.根据权利要求3所述的零样本学习深度模型的量化方法,其特征在于:所述知识匹配生成器合成与所述全精度预训练模型的批归一化层BN层中编码的真实数据分布相匹配的数据样本,原理如下:其中,和分别表示第i个批归一化层BN层合成数据分布的均值和方差,μ
i
和σ
i
分别表示预训练的所述全精度预训练模型存储在第i个批归一化层BN层相应的均值和方差,L表示模型层数。5.根据权利要求1所述的零样本学习深度模型的量化方法,其特征在于:步骤3中,所述知识匹配生成器合成批量与训练集数据尺寸相匹配的伪数据作为校准数据集,再利用深度模型逐层量化算法在校准数据集上对权重和量化参数逐层联合优化,最大限度地最小化量化层输出和全精度层输出之间的均方误差,从而对权重和激活做到最优量化。6.根据权利要求5所述的零样本学习深度模型的量化方法,其特征在于:步骤31、吸收批归一化层BN层,将批归一化层BN层融合到前一层卷积层中,减少乘加计算量从而达到加速目的;步骤32、量化模型过程中,涉及到两个量化函数QConv2d和QLinear,其中权重以每通道channal

wise方式量化,激活以每层layer

wise方式量化,以权重为量化,其中c
o
为输出通道数即卷积核个数,c
i
为输入通道数即每个卷积核的通道数,w
k
×
h
k
为卷积核尺寸,首先指示变量measure置为True,此时调用QuantMeasure()函数,计算所需的量化参
数,其中,先将原始全精度张量沿维度1展开成其中c
k
=c
i
×
w
k
×
h
k
,针对每一个输出通道得到最大值和最小值调整最大值不小于0,最小值不大于0,计算得到范围和零点计算公式:r=r_max

r_min,z=r_min,其中,和为原始全精度张量的最大值和最小值;步骤33、计算完量化参数后,记录调用次数num,计算冲量mo,使用冲量来正则化每一次量化参数,以减少误差,正则过程:mo=num/num+1,z=z
×
mo+qp_z
×
(1

mo),r=r
×
mo+qp_r
×
(1

mo),其中,和表示前一次已正则化后的量化参数;步骤34、指示变量measure置为False,此时调用QuantThUpdate()函数从QuantMeasure()函数中获取量化参数范围和零点进行具体的量化操作;步骤35...

【专利技术属性】
技术研发人员:胡海峰方成圆
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

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

1