CN111950716A - 一种优化int8的量化方法及系统 - Google Patents

一种优化int8的量化方法及系统 Download PDF

Info

Publication number
CN111950716A
CN111950716A CN202010863091.7A CN202010863091A CN111950716A CN 111950716 A CN111950716 A CN 111950716A CN 202010863091 A CN202010863091 A CN 202010863091A CN 111950716 A CN111950716 A CN 111950716A
Authority
CN
China
Prior art keywords
scaling factor
quantization scaling
layer
optimal
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010863091.7A
Other languages
English (en)
Inventor
谢远东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisound Intelligent Technology Co Ltd
Xiamen Yunzhixin Intelligent Technology Co Ltd
Original Assignee
Unisound Intelligent Technology Co Ltd
Xiamen Yunzhixin Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unisound Intelligent Technology Co Ltd, Xiamen Yunzhixin Intelligent Technology Co Ltd filed Critical Unisound Intelligent Technology Co Ltd
Priority to CN202010863091.7A priority Critical patent/CN111950716A/zh
Publication of CN111950716A publication Critical patent/CN111950716A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种优化int8的量化方法及系统,所述方法执行以下步骤:获取训练神经网络后保存的浮点模型;计算神经网络各层中各通道中的权重量化缩放因子;采用KL散度算法计算神经网络各层中的激活值量化缩放因子;根据余弦距离确定神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;基于最优权重量化缩放因子和最优激活值量化缩放因子,得到int8的整型结果。根据本发明的方法,根据最优权重量化缩放因子和最优激活值量化缩放因子,自动进行微调,得到int8的整型结果,可以避免极端值的影响;同时,采用KL散度计算激活值量化缩放因子,并利用余弦距离自动地进行微调,可以减小量化误差,避免极端值的影响。

Description

一种优化int8的量化方法及系统
技术领域
本发明涉及深度学习技术领域,特别涉及一种优化int8的量化方法及系统。
背景技术
深度学习理论及其相关技术日新月异的今天,其相关的应用也越来越多地出现在大众的视野当中。优秀的深度学习及人工智能技术不断地被应用在我们的日常生活当中,如图片、视频处理、自动驾驶、人脸识别等等,但同时大量的浮点运算、内存、电量开销,使得目前这些应用仍然存在着运行成本高昂、速度缓慢、并行处理效率较低等问题。比如在这些应用中最常用的深度卷积神经网络模型ResNet50(深度残差网络50),其浮点运算量达到了4.14GFlops(每秒千兆次浮点运算)。一款定制的自动驾驶软件动辄几万甚至几十万,专业图片与视频的处理仍然需要远端强大的服务器处理,商场大流量的人脸检测与监控需要专门的机房用来运行相关的设备及软件等等。使用成本与运行效率等成为了人工智能技术在相关移动及嵌入式设备上部署和应用小型化的瓶颈和障碍。
目前解决运算开销和使用成本的方案有深度卷积网络模型的深度压缩和量化,针对卷积运算优化的低秩分解、网络模型蒸馏以及小型化网络的设计。在这些解决方案当中,共同的目标是尽量要保持数据集的测试精度,又能有效地降低计算量,提高计算效率,降低相应的开销。网络模型的深度压缩和量化作为简单且高效的解决方案,一直被人们研究和使用,其他几种解决方案因实现的复杂性,不同的网络结构需要深度定制,不能够很好地达到相关深度卷积网络模型地精度等原因而不被大家广泛使用。深度卷积网络模型的量化可将计算设备上的浮点运算转化为整数甚至移位计算,它不仅是网络模型压缩的关键同时可大幅降低网络计算的时间和开销。
目前int8(8位整型)的量化方法是针对校准数据集获取激活值,对激活值进行2的次幂膨胀量化,并统计每一层的量化指数直方图;根据每一层的量化指数直方图计算得到层量化指数的均值并将均值设置为量化指数的上限,然后进行定点乘加,达到加速效果。然而,这种量化方法的弊端在于,当通道有极大值时,量化误差极大。
为了解决生成量化表非最优,影响量化精度的问题,亟需一种优化int8的量化方法及系统。
发明内容
本发明提供一种优化int8的量化方法及系统,用以解决生成量化表非最优,影响量化精度的问题。
本发明提供了一种优化int8的量化方法,所述方法执行以下步骤:
步骤1:获取训练神经网络后保存的浮点模型;
步骤2:计算所述神经网络各层中各通道中的权重量化缩放因子;
步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
进一步地,在所述步骤2中,根据以下公式计算所述神经网络各层中各通道中的权重量化缩放因子:
scale=127/xmax (1)
其中,scale表示权重量化缩放因子,xmax表示当前通道中的最大权重。
进一步地,所述步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S31:获取校准数据集;
步骤S32:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量;
步骤S33:对所述间隔样本的数量分布进行归一化,得到归一化数量分布,并基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子。
进一步地,所述步骤S32中:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量,执行以下步骤:
步骤S321:对所述校准数据集中的每一个激活值设置初始采样个数和初始采样间隔,以得到所述初始化激活值分布;
步骤S322:采用对称量化获取所述初始化激活值分布中每一个间隔样本的数量。
进一步地,基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S331:将所述归一化数量分布中大于预设阈值的分布相加,得到总阈值,并将所述总阈值赋值到所述归一化数量分布中的预设阈值点,并去除大于所述预设阈值点的分布,得到第一矩阵;
步骤S332:设置目标采样个数,并按照所述预设阈值与所述目标采样个数的比值设置重采样间隔,对所述第一矩阵进行重采样,得到第二矩阵;
步骤S333:采用KL散度算法计算最小KL散度所对应的阈值;
步骤S334:根据所述阈值和所述重采样间隔,计算所述神经网络各层中的激活值量化缩放因子。
进一步地,在所述步骤S333中,根据以下公式计算最小KL散度所对应的阈值:
Figure BDA0002648826070000031
其中,DKL(p||q)表示所述第一矩阵和所述第二矩阵的KL散度,p(i)表示第一矩阵中第i个采样点的值,q(i)表示第二矩阵中第i个采样点的值,M表示目标采样个数。
进一步地,在所述步骤S334中,采样以下公式计算所述神经网络各层中的激活值量化缩放因子:
scaleact=127/(threshold+0.5)*re-interval (3)
其中,scaleact表示激活值量化缩放因子,threshold表示阈值,re-interval表示重采样间隔。
进一步地,所述步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子,执行以下步骤:
步骤S41:对所述神经网络中每一层的权重量化缩放因子,在预设浮点权重范围内采样预设次数,并针对所述校准数据集,根据每一次采样的权重量化缩放因子获取该层的定点输出和原浮点输出,其中所述定点输出是定点输入的浮点输出,所述原浮点输出是浮点输入的浮点输出,根据余弦距离公式得到权重最小余弦距离和对应的最优浮点权重量化缩放因子;
步骤S42:在所述神经网络中,固定每一层的权重量化缩放因子,对所述神经网络中每一层的激活量化缩放因子,在预设浮点激活值范围内采样预设次数,并针对所述校准数据集,根据每一次采样的激活量化缩放因子获取该层的定点输出和原浮点输出,根据余弦距离公式得到激活值最小余弦距离和对应的最优浮点激活值量化缩放因子;
步骤S43:将所述最优浮点权重量化缩放因子和所述最优浮点激活值量化缩放因子写回到量化表中。
进一步地,所述步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果,执行以下步骤:
步骤S51:在推理中,对于所述神经网络中每一层,从所述量化表中读取所述最优浮点权重量化缩放因子,作为int8的定点权重;
步骤S52:从所述量化表中读取定点的所述最优浮点激活值量化缩放因子,将上一层的输出转换为当前层的输入,并且根据所述最优浮点激活值量化缩放因子和浮点输入,得到int8的定点输入;
步骤S53:根据通用性矩阵乘法将对应于各层的定点权重和定点输入进行点乘,将当前层的浮点输出作为下一层的浮点输入;
步骤S54:将最后一层的输出作为最终的int8的整型结果。
本发明实施例提供的一种优化int8的量化方法,具有以下有益效果:根据最优权重量化缩放因子和最优激活值量化缩放因子,自动进行微调,得到int8的整型结果,可以避免极端值的影响;同时,采用KL散度计算激活值量化缩放因子,并利用余弦距离自动地进行微调,可以减小量化误差,避免极端值的影响。
本发明还提供一种优化int8的量化系统,包括:
浮点模型获取模块,用于获取训练神经网络后保存的浮点模型;
权重量化缩放因子计算模块,用于计算所述神经网络各层中各通道中的权重量化缩放因子;
激活值量化缩放因子计算模块,用于采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
最优量化缩放因子确定模块,用于根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
整型结果确定模块,用于基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
本发明实施例提供的一种优化int8的量化系统,具有以下有益效果:整型结果确定模块根据最优权重量化缩放因子和最优激活值量化缩放因子,自动进行微调,得到int8的整型结果,可以避免极端值的影响;同时,激活值量化缩放因子计算模块采用KL散度计算激活值量化缩放因子,并且最优量化缩放因子确定模块利用余弦距离自动地进行微调,可以减小量化误差,避免极端值的影响。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种优化int8的量化方法的流程示意图;
图2为本发明实施例中一种优化int8的量化系统的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供了一种优化int8的量化方法,如图1所示,所述方法执行以下步骤:
步骤1:获取训练神经网络后保存的浮点模型;
步骤2:计算所述神经网络各层中各通道中的权重量化缩放因子;
步骤3:采用KL散度(Kullback-Leibler Divergence)算法计算所述神经网络各层中的激活值量化缩放因子;
步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
上述技术方案的工作原理为:在本发明中,首先,获取训练神经网络后保存的浮点模型;接着,计算神经网络各层中各通道中的权重量化缩放因子;然后,采用KL散度算法计算神经网络各层中的激活值量化缩放因子;接着,根据余弦距离确定神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;最后,基于最优权重量化缩放因子和最优激活值量化缩放因子,得到int8的整型结果。
其中,所述浮点模型是指以浮点作为数据类型的神经网络模型。步骤2-步骤5中的统计信息均来源于步骤1所获取的浮点模型。
上述技术方案的有益效果为:根据最优权重量化缩放因子和最优激活值量化缩放因子,自动进行微调,得到int8的整型结果,可以避免极端值的影响;同时,采用KL散度计算激活值量化缩放因子,并利用余弦距离自动地进行微调,可以减小量化误差,避免极端值的影响。
在一个实施例中,在所述步骤2中,根据以下公式计算所述神经网络各层中各通道中的权重量化缩放因子:
scale=127/xmax (1)
其中,scale表示权重量化缩放因子,xmax表示当前通道中的最大权重。
上述技术方案的工作原理为:例如,神经网络的每一层中均有32个通道,则针对神经网络的每一层,需要根据公式(1)计算32次,得到32个通道的权重量化缩放因子。并且,xmax可以从浮点模型中读取。
上述技术方案的有益效果为:提供了计算神经网络各层中各通道中的权重量化缩放因子的具体公式。
在一个实施例中,所述步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S31:获取校准数据集;
步骤S32:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量;
步骤S33:对所述间隔样本的数量分布进行归一化,得到归一化数量分布,并基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子。
上述技术方案的工作原理为:由于原始的浮点模型中只有权重而没有激活值,因此从浮点模型中无法获取激活值分布,需要经过步骤S31获取校准数据集,具体的获取方法例如可以为将浮点模型在真实数据上运行。
上述技术方案的有益效果为:提供了采用KL散度算法计算神经网络各层中的激活值量化缩放因子的具体步骤。
在一个实施例中,所述步骤S32中:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量,执行以下步骤:
步骤S321:对所述校准数据集中的每一个激活值设置初始采样个数和初始采样间隔,以得到所述初始化激活值分布;
步骤S322:采用对称量化获取所述初始化激活值分布中每一个间隔样本的数量。
上述技术方案的工作原理为:在步骤S321中,示例性地,对每一个激活值设置采样个数(bins)为2046,设置采样间隔(interval)为xmax/bins,例如当前通道中的最大权重xmax为7,bins为3,则采样间隔为3(7/3,并求整),得到的采样区间分别为(0,3)(3,6)(6,9)……(2043,2046)。
步骤S322中,采用对称量化方法得到每个间隔区间内样本的数量,例如,区间(0,3)内的样本数量为2,即该区间的间隔样本的数量为2,类似地,区间(3,6)内的间隔样本的数量为0,区间(6,9)内的间隔样本的数量为1。
上述技术方案的有益效果为:提供了根据校准数据集中的初始化激活值分布,得到每一个间隔样本的数量的具体步骤。
在一个实施例中,基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S331:将所述归一化数量分布中大于预设阈值的分布相加,得到总阈值,并将所述总阈值赋值到所述归一化数量分布中的预设阈值点,并去除大于所述预设阈值点的分布,得到第一矩阵;
步骤S332:设置目标采样个数,并按照所述预设阈值与所述目标采样个数的比值设置重采样间隔,对所述第一矩阵进行重采样,得到第二矩阵;
步骤S333:采用KL散度算法计算最小KL散度所对应的阈值;
步骤S334:根据所述阈值和所述重采样间隔,计算所述神经网络各层中的激活值量化缩放因子。
上述技术方案的工作原理为:在步骤S331中,预设阈值点例如可以为120,将(120,2046)区间内的归一化数量分布相加,得到总阈值,并将该总阈值赋值到归一化数量分布中的预设阈值点120,并去除大于预设阈值120的分布,仅保留(0,120)区间内的分布,得到第一矩阵。
在步骤S332中,设置的目标采样个数例如可以为128,重采样间隔则为120/128,对对应于(0,120)区间的第一矩阵进行重采样,得到对应于(0,128)区间的第二矩阵,并且由于设置了重采样间隔,因此第二矩阵的维度和第一矩阵的维度相同。
在所述步骤S333中,根据以下公式计算最小KL散度所对应的阈值:
Figure BDA0002648826070000091
其中,DKL(p||q)表示所述第一矩阵和所述第二矩阵的KL散度,p(i)表示第一矩阵中第i个采样点的值,q(i)表示第二矩阵中第i个采样点的值,M表示目标采样个数,例如为120。
在所述步骤S334中,采样以下公式计算所述神经网络各层中的激活值量化缩放因子:
scaleact=127/(threshold+0.5)*re-interval (3)
其中,scaleact表示激活值量化缩放因子,threshold表示阈值,re-interval表示重采样间隔。例如,阈值为120,重采样间隔是128/120。
上述技术方案的有益效果为:提供了的具体步骤。
在一个实施例中,所述步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子,执行以下步骤:
步骤S41:对所述神经网络中每一层的权重量化缩放因子,在预设浮点权重范围内采样预设次数,并针对所述校准数据集,根据每一次采样的权重量化缩放因子获取该层的定点输出和原浮点输出,其中所述定点输出是定点输入的浮点输出,所述原浮点输出是浮点输入的浮点输出,根据余弦距离公式得到权重最小余弦距离和对应的最优浮点权重量化缩放因子;
步骤S42:在所述神经网络中,固定每一层的权重量化缩放因子,对所述神经网络中每一层的激活量化缩放因子,在预设浮点激活值范围内采样预设次数,并针对所述校准数据集,根据每一次采样的激活量化缩放因子获取该层的定点输出和原浮点输出,根据余弦距离公式得到激活值最小余弦距离和对应的最优浮点激活值量化缩放因子;
步骤S43:将所述最优浮点权重量化缩放因子和所述最优浮点激活值量化缩放因子写回到量化表中。
上述技术方案的工作原理为:在步骤S41中,对每一层的权重量化缩放因子,在[αScaleweight_float,βScaleweight_float]范围内采样100次,其中,α和β为经验值,优选地,α取0.5,β取2,Scaleweight_float是浮点权重量化缩放因子,根据
Figure BDA0002648826070000101
计算余弦距离,并记录最小余弦距离和对应的权重量化缩放因子,即为最优浮点权重量化缩放因子,其中,N是输出维度,i为0-N中的一个值,Ol i为原浮点输出,
Figure BDA0002648826070000102
是定点输出,把浮点权重转换为定点权重。
在步骤S42中,固定每一层权重量化缩放因子后,对于激活值量化缩放因子,在[αScaleact_float,βScaleact_float]范围采样100次,Scaleact_float是浮点激活值量化缩放因子,根据
Figure BDA0002648826070000111
计算余弦距离,并记录最小余弦距离和对应的浮点激活值量化缩放因子,即为最优浮点激活值量化缩放因子,把浮点激活值转换为定点激活值。
在步骤S43中,将按照上面公式所得到的最优浮点权重量化缩放因子和所述最优浮点激活值量化写回到量化表中。
上述技术方案的有益效果为:提供了根据余弦距离确定神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子的具体步骤。
在一个实施例中,所述步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果,执行以下步骤:
步骤S51:在推理中,对于所述神经网络中每一层,从所述量化表中读取所述最优浮点权重量化缩放因子,作为int8的定点权重;
步骤S52:从所述量化表中读取定点的所述最优浮点激活值量化缩放因子,将上一层的输出转换为当前层的输入,并且根据所述最优浮点激活值量化缩放因子和浮点输入,得到int8的定点输入;
步骤S53:根据通用性矩阵乘法将对应于各层的定点权重和定点输入进行点乘,将当前层的浮点输出作为下一层的浮点输入;
步骤S54:将最后一层的输出作为最终的int8的整型结果。
上述技术方案的工作原理为:在步骤S51中,从量化表中读取最优浮点权重量化缩放因子,作为int8的定点权重,记为weightint8
在步骤S52中,将上一层的输出转换成定点,根据公式bottomint8=bottomfloat*scaleactivate得到int8的定点输入,其中bottomint8是浮点输入,bottomfloat是浮点输入,scaleactivate是最优浮点激活值量化缩放因子。
在步骤S53中,根据GEMMINT8算法(通用性矩阵乘法)进行点乘累计获取浮点输出(topfloat)作为下一层的浮点输入(bottomfloat)。
在步骤S54中,将最后一层的输出(topfinal)作为最终的int8的整型结果(outputfinal)。
上述技术方案的有益效果为:提供了基于最优权重量化缩放因子和最优激活值量化缩放因子,得到int8的整型结果的具体步骤。
如图2所示,本发明实施例提供了一种优化int8的量化系统,包括:
浮点模型获取模块201,用于获取训练神经网络后保存的浮点模型;
权重量化缩放因子计算模块202,用于计算所述神经网络各层中各通道中的权重量化缩放因子;
激活值量化缩放因子计算模块203,用于采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
最优量化缩放因子确定模块204,用于根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
整型结果确定模块205,用于基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
上述技术方案的工作原理为:在本发明中,浮点模型获取模块201获取训练神经网络后保存的浮点模型;权重量化缩放因子计算模块202计算所述神经网络各层中各通道中的权重量化缩放因子;激活值量化缩放因子计算模块203,用于采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;最优量化缩放因子确定模块204根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;整型结果确定模块205基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
其中,所述浮点模型是指以浮点作为数据类型的神经网络模型。权重量化缩放因子计算模块202、激活值量化缩放因子计算模块203、最优量化缩放因子确定模块204以及整型结果确定模块205中的统计信息均来源于步骤1所获取的浮点模型。
上述技术方案的有益效果为:整型结果确定模块根据最优权重量化缩放因子和最优激活值量化缩放因子,自动进行微调,得到int8的整型结果,可以避免极端值的影响;同时,激活值量化缩放因子计算模块采用KL散度计算激活值量化缩放因子,并且最优量化缩放因子确定模块利用余弦距离自动地进行微调,可以减小量化误差,避免极端值的影响。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种优化int8的量化方法,其特征在于,所述方法执行以下步骤:
步骤1:获取训练神经网络后保存的浮点模型;
步骤2:计算所述神经网络各层中各通道中的权重量化缩放因子;
步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
2.如权利要求1所述的方法,其特征在于,在所述步骤2中,根据以下公式计算所述神经网络各层中各通道中的权重量化缩放因子:
scale=127/xmax (1)
其中,scale表示权重量化缩放因子,xmax表示当前通道中的最大权重。
3.如权利要求1所述的方法,其特征在于,所述步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S31:获取校准数据集;
步骤S32:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量;
步骤S33:对所述间隔样本的数量分布进行归一化,得到归一化数量分布,并基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子。
4.如权利要求3所述的方法,其特征在于,所述步骤S32中:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量,执行以下步骤:
步骤S321:对所述校准数据集中的每一个激活值设置初始采样个数和初始采样间隔,以得到所述初始化激活值分布;
步骤S322:采用对称量化获取所述初始化激活值分布中每一个间隔样本的数量。
5.如权利要求4所述的方法,其特征在于,基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S331:将所述归一化数量分布中大于预设阈值的分布相加,得到总阈值,并将所述总阈值赋值到所述归一化数量分布中的预设阈值点,并去除大于所述预设阈值点的分布,得到第一矩阵;
步骤S332:设置目标采样个数,并按照所述预设阈值与所述目标采样个数的比值设置重采样间隔,对所述第一矩阵进行重采样,得到第二矩阵;
步骤S333:采用KL散度算法计算最小KL散度所对应的阈值;
步骤S334:根据所述阈值和所述重采样间隔,计算所述神经网络各层中的激活值量化缩放因子。
6.如权利要求5所述的方法,其特征在于,在所述步骤S333中,根据以下公式计算最小KL散度所对应的阈值:
Figure FDA0002648826060000021
其中,DKL(p||q)表示所述第一矩阵和所述第二矩阵的KL散度,p(i)表示第一矩阵中第i个采样点的值,q(i)表示第二矩阵中第i个采样点的值,M表示目标采样个数。
7.如权利要求5所述的方法,其特征在于,在所述步骤S334中,采样以下公式计算所述神经网络各层中的激活值量化缩放因子:
scaleact=127/(threshold+0.5)*re-interval (3)
其中,scaleact表示激活值量化缩放因子,threshold表示阈值,re-interval表示重采样间隔。
8.如权利要求6所述的方法,其特征在于,所述步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子,执行以下步骤:
步骤S41:对所述神经网络中每一层的权重量化缩放因子,在预设浮点权重范围内采样预设次数,并针对所述校准数据集,根据每一次采样的权重量化缩放因子获取该层的定点输出和原浮点输出,其中所述定点输出是定点输入的浮点输出,所述原浮点输出是浮点输入的浮点输出,根据余弦距离公式得到权重最小余弦距离和对应的最优浮点权重量化缩放因子;
步骤S42:在所述神经网络中,固定每一层的权重量化缩放因子,对所述神经网络中每一层的激活量化缩放因子,在预设浮点激活值范围内采样预设次数,并针对所述校准数据集,根据每一次采样的激活量化缩放因子获取该层的定点输出和原浮点输出,根据余弦距离公式得到激活值最小余弦距离和对应的最优浮点激活值量化缩放因子;
步骤S43:将所述最优浮点权重量化缩放因子和所述最优浮点激活值量化缩放因子写回到量化表中。
9.如权利要求8所述的方法,其特征在于,所述步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果,执行以下步骤:
步骤S51:在推理中,对于所述神经网络中每一层,从所述量化表中读取所述最优浮点权重量化缩放因子,作为int8的定点权重;
步骤S52:从所述量化表中读取定点的所述最优浮点激活值量化缩放因子,将上一层的输出转换为当前层的输入,并且根据所述最优浮点激活值量化缩放因子和浮点输入,得到int8的定点输入;
步骤S53:根据通用性矩阵乘法将对应于各层的定点权重和定点输入进行点乘,将当前层的浮点输出作为下一层的浮点输入;
步骤S54:将最后一层的输出作为最终的int8的整型结果。
10.一种优化int8的量化系统,其特征在于,包括:
浮点模型获取模块,用于获取训练神经网络后保存的浮点模型;
权重量化缩放因子计算模块,用于计算所述神经网络各层中各通道中的权重量化缩放因子;
激活值量化缩放因子计算模块,用于采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
最优量化缩放因子确定模块,用于根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
整型结果确定模块,用于基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
CN202010863091.7A 2020-08-25 2020-08-25 一种优化int8的量化方法及系统 Pending CN111950716A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010863091.7A CN111950716A (zh) 2020-08-25 2020-08-25 一种优化int8的量化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010863091.7A CN111950716A (zh) 2020-08-25 2020-08-25 一种优化int8的量化方法及系统

Publications (1)

Publication Number Publication Date
CN111950716A true CN111950716A (zh) 2020-11-17

Family

ID=73366453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010863091.7A Pending CN111950716A (zh) 2020-08-25 2020-08-25 一种优化int8的量化方法及系统

Country Status (1)

Country Link
CN (1) CN111950716A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113011571A (zh) * 2021-03-03 2021-06-22 华南理工大学 基于Transformer模型的INT8离线量化及整数推断方法
CN113255901A (zh) * 2021-07-06 2021-08-13 上海齐感电子信息科技有限公司 实时量化方法及实时量化系统
CN113408696A (zh) * 2021-05-17 2021-09-17 珠海亿智电子科技有限公司 深度学习模型的定点量化方法及装置
CN113747155A (zh) * 2021-09-06 2021-12-03 中国电信股份有限公司 特征量化方法和装置、编码器、通信系统
CN114821660A (zh) * 2022-05-12 2022-07-29 山东浪潮科学研究院有限公司 一种基于嵌入式设备的行人检测推理方法
WO2023060959A1 (zh) * 2021-10-13 2023-04-20 山东浪潮科学研究院有限公司 神经网络模型量化方法、系统、装置及计算机可读介质
CN116681110A (zh) * 2022-10-24 2023-09-01 荣耀终端有限公司 极值算法的配置方法、电子设备、程序产品及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104604224A (zh) * 2012-09-04 2015-05-06 高通股份有限公司 可缩放视频译码中的变换基底调整
US20180314940A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110096968A (zh) * 2019-04-10 2019-08-06 西安电子科技大学 一种基于深度模型优化的超高速静态手势识别方法
CN111260022A (zh) * 2019-11-22 2020-06-09 中国电子科技集团公司第五十二研究所 一种卷积神经网络全int8定点量化的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104604224A (zh) * 2012-09-04 2015-05-06 高通股份有限公司 可缩放视频译码中的变换基底调整
US20180314940A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110096968A (zh) * 2019-04-10 2019-08-06 西安电子科技大学 一种基于深度模型优化的超高速静态手势识别方法
CN111260022A (zh) * 2019-11-22 2020-06-09 中国电子科技集团公司第五十二研究所 一种卷积神经网络全int8定点量化的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113011571A (zh) * 2021-03-03 2021-06-22 华南理工大学 基于Transformer模型的INT8离线量化及整数推断方法
CN113408696A (zh) * 2021-05-17 2021-09-17 珠海亿智电子科技有限公司 深度学习模型的定点量化方法及装置
CN113255901A (zh) * 2021-07-06 2021-08-13 上海齐感电子信息科技有限公司 实时量化方法及实时量化系统
CN113747155A (zh) * 2021-09-06 2021-12-03 中国电信股份有限公司 特征量化方法和装置、编码器、通信系统
CN113747155B (zh) * 2021-09-06 2022-08-19 中国电信股份有限公司 特征量化方法和装置、编码器、通信系统
WO2023060959A1 (zh) * 2021-10-13 2023-04-20 山东浪潮科学研究院有限公司 神经网络模型量化方法、系统、装置及计算机可读介质
CN114821660A (zh) * 2022-05-12 2022-07-29 山东浪潮科学研究院有限公司 一种基于嵌入式设备的行人检测推理方法
CN116681110A (zh) * 2022-10-24 2023-09-01 荣耀终端有限公司 极值算法的配置方法、电子设备、程序产品及介质
CN116681110B (zh) * 2022-10-24 2024-05-14 荣耀终端有限公司 极值算法的配置方法、电子设备、程序产品及介质

Similar Documents

Publication Publication Date Title
CN111950716A (zh) 一种优化int8的量化方法及系统
US20210256348A1 (en) Automated methods for conversions to a lower precision data format
Chen et al. Short-term load forecasting with deep residual networks
KR20190050141A (ko) 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치
CN111638958B (zh) 云主机负载处理方法、装置、控制设备及存储介质
CN1538382A (zh) 用于子空间编码高斯模型的训练的方法
KR20210017342A (ko) 과거 데이터에 기초한 시계열 예측 방법 및 장치
CN115587454A (zh) 基于改进Transformer模型的交通流量长时预测方法及系统
CN112200296A (zh) 网络模型量化方法、装置、存储介质及电子设备
CN115908051A (zh) 一种电力系统储能容量确定方法
CN116014722A (zh) 基于季节分解和卷积网络的次日光伏发电预测方法及系统
CN116643949A (zh) 基于VaDE聚类的多模型边缘云负载预测方法及装置
CN110619392A (zh) 一种面向嵌入式移动设备的深度神经网络压缩方法
US20220309292A1 (en) Growing labels from semi-supervised learning
US20230386448A1 (en) Method of training speech recognition model, electronic device and storage medium
CN117576540A (zh) 一种基于卷积神经网络的低照度目标检测方法
CN116259310A (zh) 一种面向硬件的深度脉冲神经网络语音识别方法和系统
CN116404637A (zh) 电力系统短期负荷预测方法和电力系统短期负荷预测装置
CN116128168A (zh) 基于因果扩充卷积和Autoformer的气象预测法
CN115457638A (zh) 模型训练方法、数据检索方法、装置、设备及存储介质
KR20210141252A (ko) 전자 장치 및 그 제어 방법
CN116541766B (zh) 脑电数据修复模型的训练方法、脑电数据修复方法及装置
CN116959489B (zh) 语音模型的量化方法、装置、服务器及存储介质
CN116108896B (zh) 模型量化方法、装置、介质及电子设备
CN117292530B (zh) 一种载波通信数据采集效率优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination