CN112508125A - 一种图像检测模型的高效全整数量化方法 - Google Patents

一种图像检测模型的高效全整数量化方法 Download PDF

Info

Publication number
CN112508125A
CN112508125A CN202011529800.4A CN202011529800A CN112508125A CN 112508125 A CN112508125 A CN 112508125A CN 202011529800 A CN202011529800 A CN 202011529800A CN 112508125 A CN112508125 A CN 112508125A
Authority
CN
China
Prior art keywords
layer
quantization
convolution
input
model
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.)
Withdrawn
Application number
CN202011529800.4A
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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN202011529800.4A priority Critical patent/CN112508125A/zh
Publication of CN112508125A publication Critical patent/CN112508125A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Quality & Reliability (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种目标检测模型的高效全整数量化方法,所述图像检测模型中各层卷积的权值、偏置、输入特征图和输出特征图均采用整数表示,量化推理过程均采用整数计算,具体包括以下步骤:对实数版本的图像检测模型进行正常训练、量化感知训练、量化参数生成、应用生成的各层参数,在计算设备上进行基于全整数运算的推理。本发明可以大大减少图像检测模型的推理时间,减少模型在磁盘存储和内存占用方面的空间,同时保持图像检测模型的高检测精度,有助于在FPGA等计算设备上实现更加高效的图像目标检测***。

Description

一种图像检测模型的高效全整数量化方法
技术领域
本发明涉及一种图像检测模型的高效全整数量化方法,属于神经网络技术领域。
背景技术
近年来,卷积神经网络在图像目标识别、目标检测、像素分割等许多视觉任务上取得了跨越性的进展,在许多任务上达到了超越人类的表现性能,并涌现出很多的知名网络结构,如AlexNet、VGGNet、GoogleNet、ResNet、DenseNet、SENet等。这些卷积网络的发展特点是网络层数越来越多,容量越来越大,导致网络参数和计算量也不断增加,不利于在资源受限的小型移动设备上进行部署和应用。例如,智能手机、无人机等硬件平台希望在满足性能要求的情况下模型尽量小,且功耗和延迟尽量低。
针对移动端的模型应用需求,目前有两大类解决方法。第一种是模型轻量化方法,即为移动端设计轻量化的网络模型。知名的轻量化网络模型包括MobileNet系列(v1到v3共三个版本)、SqueezeNet、ShuffleNet等,这类模型的特点是设计了计算和存储较为高效的操作,使得模型在保持精度的情况下比常规卷积网络模型的参数和计算少很多。第二种是模型压缩方法,主要包括模型量化、模型剪枝和模型蒸馏等技术。由于现有模型的网络参数存在很大的冗余,模型剪枝技术将模型中不重要的网络层或者网络通道进行剪除,使得模型占用的计算和存储都大大减少。剪枝方法重点在于确定网络层和通道的重要性,可以通过训练学***台。
量化的含义是将取值范围连续有界的浮点数变量,变换到取值范围离散有界的整数变量。量化需要指定量化后整数的bit位数,典型取值包括16bit、32bit和4bit等,bit数通常在量化模型的性能满足要求的情况下选取较小值,使得模型存储和计算更加高效。根据量化后的整数是否含有负数,可分为对称量化和非对称量化,如果含有负数,则属于对称量化,如果全部为正数,则为非对称量化。例如,某个32bit浮点数变量,其取值范围为[-1280,1280]的任意实数值,如果对其进行8bit非对称量化,则量化后的取值范围为0到255之间的整数值,如果对其进行8bit对称量化,则量化后的取值范围为[-128,127]。
现有的模型量化方法根据量化对象来看,分为仅权值量化、权值和激活值均量化、全整数量化三类。仅权值量化方法只将模型中的权值进行量化,比如从32bit的浮点数权重量化为8bit的整数权重,模型在设备存储上所占的空间减少到以前的1/4。但是,这类方法不对网络模型计算过程中每层输入输出的激活值进行量化,计算过程仍然会使用浮点数的激活值和整数量化的权值进行卷积计算,计算效率较低。权值和激活值均量化方法不仅对权值进行量化,还对每层的激活值进行整数量化,这类方法的特点是卷积计算过程高效,因为参与卷积计算的权值和激活值均为整数。现在主流的量化方法主要是权值和激活值均量化方法,这类方法虽然卷积计算高效,但并不是所有过程均为整数计算,主要原因在于卷积的偏置项仍然使用32bit浮点数进行表示,使得量化计算过程含有部分浮点运算。全整数量化方法将权值、激活值和偏置都量化为整数,模型量化后的所有计算过程均采用整数运算,适合在FPGA等设备中进行基于全整数运算的应用。
现有技术中主要侧重于非全整数计算的量化方法,对于仅权值量化、权值和激活值均量化两类方法,在模型量化过程中存在部分浮点运算,不能实现全整数计算,因此不能很好地适配到只支持整数运算的硬件设备,也不利于网络模型在FPGA等计算设备中进行高效地推理。
现有的全整数量化方法较少,2018年,谷歌在CVPR会议上发表了一篇全整数量化的论文“Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”。该论文提出一种只使用整数运算实现模型推理的量化模式,可用于只含整数运算指令的计算设备,并可以通过使用量化训练保持模型的精度,使得量化模型在精度和计算延迟上达到很好的折中。然而,其在采用对称量化的情况下没有充分利用对称性,使得计算过程繁琐。
发明内容
本发明的目的是提供一种图像检测模型的高效全整数量化方法,该方法可以大大减少图像检测模型的推理时间,减少模型在磁盘存储和内存占用方面的空间,同时保持图像检测模型的高检测精度,有助于在FPGA等计算设备上实现更加高效的图像目标检测***。
为达到上述目的,本发明采用的技术方案是:提供一种图像检测模型的高效全整数量化方法,所述图像检测模型中各层卷积的权值、偏置、输入特征图和输出特征图均采用整数表示,量化推理过程均采用整数计算,具体包括以下步骤:
图像检测模型各层卷积的权值、偏置、输入特征图和输出特征图均采用整数表示,量化推理过程均采用整数计算,具体包括以下步骤:
步骤1:正常训练,采用基于MobileNetv2的轻量化卷积网络作为检测主干网,使用YoLov2方法的损失函数对实数版本的图像检测模型进行正常训练,其中,模型的权值、输入特征图和输出特征图均用实数表示,训练和推理均使用浮点数进行计算,模型的输入为待检测的图片数据,输出为图片中目标的检测结果,包括目标的坐标、高度和宽度信息;
步骤2:量化感知训练,针对图像检测模型的每个卷积层,在正常训练的前向计算中加入假量化过程,使得模型能够更好地模拟量化推理过程,在反向传播中使用浮点数更新模型参数,具体包括以下步骤:
步骤2.1:使用图像检测模型每个卷积层的权值和输入特征图进行常规卷积,得到输出特征图;
步骤2.2:计算每层输出特征图的均值μb和标准差σb,即该层图像特征表示的均值和标准差,并按照以下公式(37)计算输出特征图的BN参数,包括移动平均值
Figure BDA0002851741130000041
Figure BDA0002851741130000042
Figure BDA0002851741130000043
其中,t为当前训练样本的批次值,
Figure BDA0002851741130000044
Figure BDA0002851741130000045
为前一批训练样本计算的移动平均值,τ为当前训练样本批次在计算移动平均值时的权重,τ的典型取值为0.01,1-τ为前一批次数据所计算移动平均值的权重;
按照公式
Figure BDA0002851741130000046
Figure BDA0002851741130000047
计算BN融合卷积的权值w′和偏置b′,其中,μr和σr为图像样本均值和标准差的移动平均值,在训练过程中取值为当前批次更新后的移动平均值,
Figure BDA0002851741130000048
Figure BDA0002851741130000049
γ为BN层训练确定的斜率参数、β为BN层训练确定的偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵;
步骤2.3:根据假量化公式
Figure BDA00028517411300000410
对BN融合卷积的权值w′和输入特征图进行假量化,其中,S为量化的尺度因子参数,Rd为原实数集合,
Figure BDA00028517411300000411
为经过假量化操作后的实数集合,int()为取整函数,clamp()为夹断函数,将输入夹断到固定的量化整数范围,即[-127,127];
在假量化过程中,范围***R1和R2,分别记录并更新BN融合卷积权值和输入特征图的最小值和最大值;
设置两个量化器Q1和Q2,分别按照公式
Figure BDA0002851741130000051
Figure BDA0002851741130000052
更新权值和输入特征图的量化尺度因子Sw和Sx,从而将实数形式的权值和输入经过量化过程转变为整数,然后通过反量化过程转回修正版的实数,其中,B为用于确定量化整数范围的量化bit数,采用对称量化,量化整数空间为[-2(B-1)+1,2(B -1)-1],B=8时范围为[-127,127],
Figure BDA0002851741130000053
代表权值矩阵Rw中的元素,记该卷积层的权值矩阵含有N行T列数据,权值矩阵写为
Figure BDA0002851741130000054
Figure BDA0002851741130000055
是权值矩阵每个元素值除以量化尺度因子后的值,同理,
Figure BDA0002851741130000056
代表输入特征图Rx中的元素,记该卷积层的输入特征图矩阵含有T行P列数据,输入特征图矩阵可以写为
Figure BDA0002851741130000057
Figure BDA0002851741130000058
是输入特征图每个元素值除以其量化尺度因子后的值;
步骤2.4:使用假量化后的权值和输入特征图进行卷积,得到卷积结果;
步骤2.5:卷积结果加上BN融合卷积的偏置项b′,得到最终的输出特征图;
步骤2.6:如果卷积层后面存在非线性激活函数ReLU6,则按照如下公式对上面步骤的输出特征图(记为qx)进行截断处理,
Figure BDA0002851741130000059
其中,q6=f(6,S)=clamp(int(6/S))(45),该公式中S取值为下层卷积输入特征图的量化尺度因子,qy为ReLU6激活函数处理后的输出特征图;
步骤2.7:将上面计算的输出特征图送往下层卷积,作为其输入特征图,逐层进行后续处理,得到模型所有卷积层的输出,计算损失函数;
步骤2.8:根据损失函数,按照BP计算模型训练参数的梯度并更新参数;
步骤2.9:迭代步骤2.1至2.8多次,直到网络模型收敛,完成量化感知训练;
步骤3:量化参数生成,在量化感知训练完成后,通过一次前向计算,生成网络各层的量化参数,针对每层卷积,执行步骤如下:
步骤3.1:根据公式
Figure BDA0002851741130000061
Figure BDA0002851741130000062
计算BN融合卷积的权值和偏置,其中,μr和σr为量化感知训练结束时最终确定的样本均值和标准差的移动平均值,γ和β为最后一次训练所得的斜率参数及偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵,w′为BN融合卷积层的权值矩阵,b′为BN融合卷积层的偏置项;
步骤3.2:获取该层量化器Q1和Q2中保存的量化尺度因子Sw和Sx,以及下层卷积中量化器Q2保存的量化尺度因子(记为Sy),根据公式
Figure BDA0002851741130000063
计算M0,,其中,Sw、Sx和Sy分别是本层BN融合卷积权值、本层输入特征图、本层BN融合卷积输出特征图,即下层卷积的输入特征图的量化尺度因子,M为[0,1]区间的小数,n为使得小数M变换为整数M0所移动的二进制比特位数,取n=20;
步骤3.3:根据量化公式Qd=clamp(int(Rd/S))(11),在已知量化尺度因子分别为Sw和Sx的情况下,对BN融合卷积的权值和输入特征图进行量化,得到对应的量化版本Qw和Qx,其中,权值
Figure BDA0002851741130000064
输入
Figure BDA0002851741130000065
Figure BDA0002851741130000066
代表BN融合卷积的权值矩阵Rw中的元素,
Figure BDA0002851741130000067
代表输入特征图Rx中的元素,矩阵中单个元素的量化公式为f(ri,S)=clamp(int(ri/S));
步骤3.4:根据公式
Figure BDA0002851741130000071
对BN融合卷积的偏置进行量化,得到对应的量化版本Qb,其中,令Sb=SwSx
Figure BDA0002851741130000072
代表BN融合卷积的偏置Rb中的元素,
Figure BDA0002851741130000073
步骤3.5:在上述步骤已求得M0、Qw、Qx和Qb的情况下,根据全整数量化推理公式Qy=clamp(int([M0(Qw×Qx+Qb)]>>n))(35),计算该层BN融合卷积量化版本的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;
步骤3.6:保存本层中计算出的量化参数,包括M0、n、Qw和Qb,以供量化推理阶段使用;
步骤3.7:将本层的输出特征图Qy输入到下层卷积,作为其输入特征图,逐层进行后续处理,直至最后一个BN融合卷积层;
步骤3.8:对于最后一层卷积,设置一个范围***和量化器,用于跟踪该层输出特征图的最小值和最大值,并计算量化尺度参数Slast,从而得到图像检测模型所有BN融合卷积层的量化参数;
步骤4:量化推理,应用生成的各层参数,在计算设备上进行基于全整数运算的推理,具体为:
步骤4.1:第一层按照公式
Figure BDA0002851741130000074
进行处理,其中,x为输入的检测图像数据,取值范围为[0,255],h(x)为对首层输入进行处理,使其满足量化输入要求,取值范围为[0,127],h(x)输入到量化版检测模型的第一层,作为该层的输入特征图;
步骤4.2:对于中间的所有BN融合卷积层,从步骤3.8中生成的模型参数中加载每个卷积层的量化参数,包括M0、n、Qw和Qb,从该层的输入中得到前面层传入的输入特征图Qx,根据Qy=clamp(int([M0(Qw×Qx+Qb)]>>n))(35)进行前向推理,计算得到该层的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;将计算的输出特征图传入下一层作为输入特征图,直到得到最后一个BN融合卷积层的输出特征图;
步骤4.3:对于最后一层卷积,在计算输出特征图后,利用反量化公式
Figure BDA0002851741130000081
将量化整数矩阵转换为实数矩阵输出,其中S的取值为步骤3.8计算的Slast,Qd的取值为最后一层的量化输出特征图,
Figure BDA0002851741130000082
为最后一层的实数输出特征图,代表输入图像数据在最后一个BN融合层的实数特征表示;
步骤4.4:将最后一层的实数特征表示送入nms进行非最大抑制后处理,过滤不合理的检测框,输出预测目标框。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明一种图像检测模型的高效全整数量化方法,其提出一种基于量化感知训练和全整数量化推理的网络模型量化方法,计算过程只涉及整数运算,并进一步利用对称量化的特点对量化计算公式进行简化,得到计算高效且模型性能良好的模型量化方法,可以大大减少图像检测模型的推理时间,减少模型在磁盘存储和内存占用方面的空间,同时保持图像检测模型的高检测精度,有助于在FPGA等计算设备上实现更加高效的图像目标检测***。
附图说明
附图1为量化方法全流程的示意图;
附图2为检测模型结构的示意图;
附图3为CBA卷积模块的三层表示示意图。
具体实施方式
实施例:本发明提供一种图像检测模型的高效全整数量化方法,根据输入张量和卷积核权重进行卷积计算的过程,推导出全整数量化的计算公式,将尺度因子通过向左移位运算变为大整数,在完成大整数的乘法运算后再往右移回,网络权值、激活值和卷积偏置都采用整数表示,计算过程只涉及整数运算,并进一步利用对称量化的特点,对量化计算公式进行简化,得到计算高效且模型性能良好的模型量化方法,能够更好的应用到FPGA等计算设备;
所述图像检测模型中各层卷积的权值、偏置、输入特征图和输出特征图均采用整数表示,量化推理过程均采用整数计算,具体包括以下步骤:
步骤1:正常训练,采用基于MobileNetv2的轻量化卷积网络作为检测主干网,使用YoLov2方法的损失函数对实数版本的图像检测模型进行正常训练,其中,模型的权值、输入特征图和输出特征图均用实数表示,训练和推理均使用浮点数进行计算,模型的输入为待检测的图片数据,输出为图片中目标的检测结果,包括目标的坐标、高度和宽度信息;
步骤2:量化感知训练,针对图像检测模型的每个卷积层,在正常训练的前向计算中加入假量化过程,使得模型能够更好地模拟量化推理过程,在反向传播中使用浮点数更新模型参数,具体包括以下步骤:
步骤2.1:使用图像检测模型每个卷积层的权值和输入特征图进行常规卷积,得到输出特征图;
步骤2.2:计算每层输出特征图的均值μb和标准差σb,即该层图像特征表示的均值和标准差,并按照以下公式(37)计算输出特征图的BN参数,包括移动平均值
Figure BDA0002851741130000091
Figure BDA0002851741130000092
Figure BDA0002851741130000093
其中,t为当前训练样本的批次值,
Figure BDA0002851741130000094
Figure BDA0002851741130000095
为前一批训练样本计算的移动平均值,τ为当前训练样本批次在计算移动平均值时的权重,τ的典型取值为0.01,1-τ为前一批次数据所计算移动平均值的权重;
按照公式
Figure BDA0002851741130000101
Figure BDA0002851741130000102
计算BN融合卷积的权值w′和偏置b′,其中,μr和σr为图像样本均值和标准差的移动平均值,在训练过程中取值为当前批次更新后的移动平均值,
Figure BDA0002851741130000103
Figure BDA0002851741130000104
γ为BN层训练确定的斜率参数、β为BN层训练确定的偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵;
步骤2.3:根据假量化公式
Figure BDA0002851741130000105
对BN融合卷积的权值w′和输入特征图进行假量化,其中,S为量化的尺度因子参数,Rd为原实数集合,
Figure BDA0002851741130000106
为经过假量化操作后的实数集合,int()为取整函数,clamp()为夹断函数,将输入夹断到固定的量化整数范围,即[-127,127];
在假量化过程中,范围***R1和R2,分别记录并更新BN融合卷积权值和输入特征图的最小值和最大值;
设置两个量化器Q1和Q2,分别按照公式
Figure BDA0002851741130000107
Figure BDA0002851741130000108
更新权值和输入特征图的量化尺度因子Sw和Sx,从而将实数形式的权值和输入经过量化过程转变为整数,然后通过反量化过程转回修正版的实数,其中,B为用于确定量化整数范围的量化bit数,采用对称量化,量化整数空间为[-2(B-1)+1,2(B -1)-1],B=8时范围为[-127,127],
Figure BDA0002851741130000109
代表权值矩阵Rw中的元素,记该卷积层的权值矩阵含有N行T列数据,权值矩阵写为
Figure BDA00028517411300001010
Figure BDA00028517411300001011
是权值矩阵每个元素值除以量化尺度因子后的值,同理,
Figure BDA00028517411300001012
代表输入特征图Rx中的元素,记该卷积层的输入特征图矩阵含有T行P列数据,输入特征图矩阵可以写为
Figure BDA0002851741130000111
Figure BDA0002851741130000112
是输入特征图每个元素值除以其量化尺度因子后的值;
步骤2.4:使用假量化后的权值和输入特征图进行卷积,得到卷积结果;
步骤2.5:卷积结果加上BN融合卷积的偏置项b′,得到最终的输出特征图;
步骤2.6:如果卷积层后面存在非线性激活函数ReLU6,则按照如下公式对上面步骤的输出特征图(记为qx)进行截断处理,
Figure BDA0002851741130000113
其中,q6=f(6,S)=clamp(int(6/S))(45),该公式中S取值为下层卷积输入特征图的量化尺度因子,qy为ReLU6激活函数处理后的输出特征图;
步骤2.7:将上面计算的输出特征图送往下层卷积,作为其输入特征图,逐层进行后续处理,得到模型所有卷积层的输出,计算损失函数;
步骤2.8:根据损失函数,按照BP计算模型训练参数的梯度并更新参数;
步骤2.9:迭代步骤2.1至2.8多次,直到网络模型收敛,完成量化感知训练;
步骤3:量化参数生成,在量化感知训练完成后,通过一次前向计算,生成网络各层的量化参数,针对每层卷积,执行步骤如下:
步骤3.1:根据公式
Figure BDA0002851741130000114
Figure BDA0002851741130000115
计算BN融合卷积的权值和偏置,其中,μr和σr为量化感知训练结束时最终确定的样本均值和标准差的移动平均值,γ和β为最后一次训练所得的斜率参数及偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵,w′为BN融合卷积层的权值矩阵,b′为BN融合卷积层的偏置项;
步骤3.2:获取该层量化器Q1和Q2中保存的量化尺度因子Sw和Sx,以及下层卷积中量化器Q2保存的量化尺度因子(记为Sy),根据公式
Figure BDA0002851741130000121
计算M0,,其中,Sw、Sx和Sy分别是本层BN融合卷积权值、本层输入特征图、本层BN融合卷积输出特征图,即下层卷积的输入特征图的量化尺度因子,M为[0,1]区间的小数,n为使得小数M变换为整数M0所移动的二进制比特位数,取n=20;
步骤3.3:根据量化公式Qd=clamp(int(Rd/S))(11),在已知量化尺度因子分别为Sw和Sx的情况下,对BN融合卷积的权值和输入特征图进行量化,得到对应的量化版本Qw和Qx,其中,权值
Figure BDA0002851741130000122
输入
Figure BDA0002851741130000123
Figure BDA0002851741130000124
代表BN融合卷积的权值矩阵Rw中的元素,
Figure BDA0002851741130000125
代表输入特征图Rx中的元素,矩阵中单个元素的量化公式为f(ri,S)=clamp(int(ri/S));
步骤3.4:根据公式
Figure BDA0002851741130000126
对BN融合卷积的偏置进行量化,得到对应的量化版本Qb,其中,令Sb=SwSx
Figure BDA0002851741130000127
代表BN融合卷积的偏置Rb中的元素,
Figure BDA0002851741130000128
步骤3.5:在上述步骤已求得M0、Qw、Qx和Qb的情况下,根据全整数量化推理公式Qy=clamp(int([M0(Qw×Qx+Qb)]>>n))(35),计算该层BN融合卷积量化版本的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;
步骤3.6:保存本层中计算出的量化参数,包括M0、n、Qw和Qb,以供量化推理阶段使用;
步骤3.7:将本层的输出特征图Qy输入到下层卷积,作为其输入特征图,逐层进行后续处理,直至最后一个BN融合卷积层;
步骤3.8:对于最后一层卷积,设置一个范围***和量化器,用于跟踪该层输出特征图的最小值和最大值,并计算量化尺度参数Slast,从而得到图像检测模型所有BN融合卷积层的量化参数;
步骤4:量化推理,应用生成的各层参数,在计算设备上进行基于全整数运算的推理,具体为:
步骤4.1:第一层按照公式
Figure BDA0002851741130000131
进行处理,其中,x为输入的检测图像数据,取值范围为[0,255],h(x)为对首层输入进行处理,使其满足量化输入要求,取值范围为[0,127],h(x)输入到量化版检测模型的第一层,作为该层的输入特征图;
步骤4.2:对于中间的所有BN融合卷积层,从步骤3.8中生成的模型参数中加载每个卷积层的量化参数,包括M0、n、Qw和Qb,从该层的输入中得到前面层传入的输入特征图Qx,根据Qy=clamp(int([M0(Qw×Qx+Qb)]>>n))(35)进行前向推理,计算得到该层的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;将计算的输出特征图传入下一层作为输入特征图,直到得到最后一个BN融合卷积层的输出特征图;
步骤4.3:对于最后一层卷积,在计算输出特征图后,利用反量化公式
Figure BDA0002851741130000132
将量化整数矩阵转换为实数矩阵输出,其中S的取值为步骤3.8计算的Slast,Qd的取值为最后一层的量化输出特征图,
Figure BDA0002851741130000133
为最后一层的实数输出特征图,代表输入图像数据在最后一个BN融合层的实数特征表示;
步骤4.4:将最后一层的实数特征表示送入nms进行非最大抑制后处理,过滤不合理的检测框,输出预测目标框。
对上述实施例的进一步解释如下:
本发明针对特定应用,在实验中主要采用8bit对称量化模式。
模型量化方法根据量化阶段来看,分为训练后量化和量化感知训练两类。
训练后量化方法是在模型训练完成后,对模型的权重或激活值进行整数量化,其特点是量化后模型的性能可能出现不同程度的降低,如果降低太多可能达不到应用需求。
量化感知训练方法将模型量化通过伪量化的方式融入到模型的正常训练当中,模型在量化感知训练完成后,再进行量化后的模型能够保持很高的性能;该类方法在正常的模型训练前向传播中,将权重或者激活值进行伪量化,即将原本的浮点数量化为整数,然后将量化后的整数复原回浮点数,此时的浮点数相比原本的浮点数主体值不变,只是丢弃了部分不重要的末端尾数;模型训练的后向传播保持不变,每次前向传播进行伪量化,训练完成后的模型能够很好地适配量化过程,即复原的浮点数很容易按照量化公式变换到整数,从而减少量化过程损失,保持模型精度。
本发明属于全整数量化方法,目标是在FPGA等设备上使用全整数计算实现网络模型的前向推理,其在谷歌全整数量化方法的基础上,利用对称性特点进一步简化量化公式,得到更为高效的全整数量化方法。
首先介绍量化方法,包括量化模式、矩阵乘法的量化推理、BN融合卷积的量化和激活函数的量化;
然后介绍检测模型量化全流程,包括量化感知训练、量化参数生成和全整数量化推理等。
一、量化方法
1.量化模式
量化模式是模型中的数值从实数表示变换为整数表示的变化方式;
对于一个实数
Figure BDA0002851741130000151
可以用整数
Figure BDA0002851741130000152
表达如下:
r=S(q-Z) (1)
其中,
Figure BDA0002851741130000153
为量化参数,S为量化的尺度因子参数(Scale),Z为量化后的整数零点(Zero-Point),q称为量化值;
在非对称量化方式中,所有实数变换为大于等于0的整数,Z为实数的零值在量化整数空间中的整数表示;
在对称量化方式中,量化值采用有符号整数表示,零点参数Z=0,即实数的零值映射为整数中的0,负实数映射为负整数,正实数映射为正整数;
本发明采用对称量化方式,因此量化模式可简化为:
r=Sq (2)
量化需要指定表示量化范围的bit数,记为B,其常见的取值为4-bit、8-bit或16-bit,本发明主要采用B=8;
采用对称量化模式且量化比特数为B时,量化范围可表示如下:
Figure BDA0002851741130000156
对于8bit对称量化,量化后的整数取值范围为[-127,127],因此,公式(2)中的量化值q有进一步的如下约束:
Figure BDA0002851741130000154
对于超出量化范围的整数,可定义如下的截断函数,保证量化取值处于合理范围:
Figure BDA0002851741130000155
量化模式公式(2)中存在一个尺度因子参数S,该参数需要根据某个实数集进行估算,然后才能用于对该实数集的每个实数进行量化操作;
设某含有m个元素的实数集合为
Figure BDA0002851741130000161
首先计算该集合元素绝对值的最大值,然后计算尺度因子参数如下:
Figure BDA0002851741130000162
Figure BDA0002851741130000163
取得固定的尺度因子参数后,公式(2)中的量化值并不能保证全部恰好为整数,即
Figure BDA0002851741130000164
可定义如下量化函数f,通过取整和截断近似转化为合理范围的量化整数,其中int(x)表示取x的整数部分:
Figure BDA0002851741130000165
公式(7)称为量化公式,量化后的整数可以通过量化函数的近似逆过程转换回实数,该过程称为反量化(de-quantization),反量化公式表示如下:
Figure BDA0002851741130000166
此外,定义伪量化(Fake Quantization,又称假量化)过程为先将实数量化为整数,然后将该整数反量化为实数,得到原实数的近似实数;
伪量化过程主要用于模型的量化感知训练,伪量化公式可表达如下:
Figure BDA0002851741130000167
伪量化操作后,输入的实数和输出的近似实数之间存在误差如下:
Figure BDA0002851741130000168
从上面误差公式可知,伪量化的误差主要来源于取整和截断;对于处于合理范围(即没有超过集合元素最大绝对值)的实数,误差只来源于取整操作,且量化值q越大,取整去除小数点造成的相对误差也越微弱;对于超过量化表示范围的数,截断函数造成的误差较大,但这类情况在实际应用中出现的概率较低;
将上面三个过程用集合进行表达,其中原实数集合为
Figure BDA0002851741130000171
量化整数集合表达为
Figure BDA0002851741130000172
反量化和伪量化后的近似实数集合表达为
Figure BDA0002851741130000173
则量化过程、反量化过程和伪量化过程的公式分别表达如下:
Qd=clamp(int(Rd/S)) (11)
Figure BDA0002851741130000174
Figure BDA0002851741130000175
2.矩阵乘法的量化推理
卷积神经网络的主要操作是卷积过程,卷积的核心计算是矩阵乘法。
本发明要对基于卷积网络的目标检测模型进行量化,则需要设计矩阵乘法的量化推理,下面在前述量化模式基础上进行设计推导。
对网络中的某个卷积层,其卷积核参数(Kernel Weight)、输入特征图(FeatureMap,又称激活值Activation)、卷积偏置参数(Bias)和输出特征图经过适当抽象处理后,可分别表示为实数矩阵
Figure BDA0002851741130000176
Figure BDA0002851741130000177
矩阵关系为Ry=Rw×Rx+Rb
各实数矩阵对应的量化整数矩阵分别表示为
Figure BDA0002851741130000178
Figure BDA0002851741130000179
在模型训练中,实数矩阵Rw、Rx和Ry可按照公式(6)计算其量化的尺度因子参数Sw、Sx和Sy,为了后续计算上处理方便,直接令Sb=SwSx
在模型训练完成后,每层卷积的量化矩阵Qw和偏置Qb可按照量化公式(11)进行计算,计算后保存为后续用于量化推理的参数;
在量化推理阶段,网络首层卷积的输入特征图为整数矩阵,其输出特征图是经过卷积和量化后的整数矩阵,并作为下层卷积的输入特征图,按此逐层完成网络各卷积层的前向推理计算;
在模型前向推理中,为了对每层进行全整数运算推理,需要在已知整数权值Qw、输入Qx、偏置Qb和实数尺度因子参数Sw、Sx、Sb、Sy的情况下,设计全整数矩阵乘法运算模式,从而推算出Qy
为了更清楚地表示每个矩阵,下面分别进行形式化表达。
首先,权值矩阵的实数形式、尺度参数和量化整数形式分别表示如下:
Figure BDA0002851741130000181
Figure BDA0002851741130000182
Figure BDA0002851741130000183
输入特征图的实数形式、尺度参数和量化整数形式分别表示如下:
Figure BDA0002851741130000184
Figure BDA0002851741130000185
Figure BDA0002851741130000186
偏置参数的实数形式、尺度参数和量化整数形式分别表示如下:
Figure BDA0002851741130000187
Sb=SwSx (21)
Figure BDA0002851741130000191
输出特征图的实数形式、尺度参数和量化整数形式分别表示如下:
Figure BDA0002851741130000192
Figure BDA0002851741130000193
Figure BDA0002851741130000194
为了得到矩阵乘法的全整数推理结果,公式(25)中输出特征图的量化过程不能再采用公式(11)中基于实数运算的量化函数f。
下面通过推导元素
Figure BDA0002851741130000195
的计算过程来求解Qy的前向计算公式:
由Ry=Rw×Rx+Rb可得
Figure BDA0002851741130000196
将每个元素的展开形式带入,可得
Figure BDA0002851741130000197
Figure BDA0002851741130000198
为方便说明,令:
Figure BDA0002851741130000199
Figure BDA00028517411300001910
Figure BDA00028517411300001911
在实际应用中发现,通常M的取值范围为
Figure BDA00028517411300001912
可以通过向右移动n个比特的方式将其转为近似整数表示,本发明中n=20可取得较好的应用效果。
在软件实现中,比特移位后的数字通常是一个带有较大整数和若干小数位数的浮点数,
Figure BDA0002851741130000201
Figure BDA0002851741130000202
Figure BDA0002851741130000203
在FPGA等硬件实现中,对整数进行比特移位后,通过硬件截断操作可直接取得整数M0
公式(28)可改写为:
Figure BDA0002851741130000204
将公式中(32)中的元素替换为对应的近似值,可得如下表示
Figure BDA0002851741130000205
综上,可令矩阵乘法量化后的元素为
Figure BDA0002851741130000206
使用矩阵表达
Figure BDA0002851741130000207
可写为如下公式
Qy=clamp(int([M0(Qw×Qx+Qb)]>>n)) (35)
至此,通过公式(14)到公式(34)的推导,得到了软件版本的全整数量化推理公式(35);
在FPGA等硬件实现中,Qw和Qx首先进行整数乘法,然后加上整数偏置Qb,再乘以整数M0,最后通过比特移位和截断操作得到整数输出Qw
3.BN层融合卷积的量化
本发明所用卷积神经网络的基本构建单元为典型的CBA模块,C代表卷积层,B代表BN层(Batch Normalization,批归一化),A代表激活函数(Activation);
本发明所用网络的激活函数为ReLU6。
在量化训练和推理中,BN层可以融入到卷积层一起进行操作。
在模型训练中,BN层先对输入的当前批次数据计算均值μb和标准差σb,然后进行归一化,再通过斜率γ和偏置β两个可学习的参数进行如下的线性变换:
Figure BDA0002851741130000211
此外,模型训练中还维护样本均值和标准差的移动平均值μr和σr
假设当前批次为第t批,前一批次样本计算的移动平均值为
Figure BDA0002851741130000218
Figure BDA0002851741130000219
新批次数据的权重为τ(τ的典型取值为0.01),则当前批次更新如下:
Figure BDA0002851741130000212
模型训练完成后,最终的移动平均值μr和σr,以及训练更新后的参数γ和β将用于模型推理如下:
Figure BDA0002851741130000213
在CBA基本模块中,BN位于卷积层之后,即可以表达为如下流程:
Figure BDA0002851741130000214
其中,x1为输入数据,w*x1代表卷积结果,b为卷积偏置项,xout为输出数据;
将两个过程融合时,可进行如下推导:
Figure BDA0002851741130000215
将融合卷积的权值和偏置记为:
Figure BDA0002851741130000216
Figure BDA0002851741130000217
则BN融合卷积可表达为单个卷积过程:
Figure BDA0002851741130000221
常规卷积的量化使用w和b计算权值和偏置的量化矩阵,BN融合卷积的量化则使用w′和b′计算权值和偏置的量化矩阵,其他过程同上一小节。
4.ReLU6激活函数的量化
本发明所用卷积网络的激活函数为ReLU6,在量化推理中需要进行如下处理:
ReLU6的函数可写为:
Figure BDA0002851741130000222
在将其转换为量化版本的激活函数时,需要确定0和6在量化空间的取值,然后进行截断操作。
采用对称量化时,实数0对应量化空间的整数0,实数6则按照量化公式计算如下:
q6=f(6,S)=clamp(int(6/S)) (45)
量化版本的激活函数可表达为:
Figure BDA0002851741130000223
二、模型量化全流程
本发明中模型量化的全流程如图1所示,包括正常训练、量化感知训练、量化参数生成和全整数量化推理。
其中,模型正常训练用于训练实数模型,模型的权值、输入特征和输出特征均用实数表示,训练和推理均使用浮点数进行计算;
量化感知训练在正常训练的前向计算中加入假量化过程,使得模型能够更好地模拟量化推理过程,反向传播则使用浮点数更新模型参数;
量化参数生成在量化感知训练阶段完成后,通过一次前向计算,按照本发明设计的量化方法生成网络各层的量化参数;
量化推理阶段应用生成的各层参数,在FPGA等计算设备上进行基于全整数运算的推理。
下面分别简要介绍:
1.正常训练
本发明采用基于MobileNetv2的轻量化卷积网络作为检测主干网,使用YoLov2方法的损失函数;MobileNetv2主要采用CBA卷积模块进行堆叠,基于卷积神经网络的检测网络结构如图2所示,CBA卷积模块展开如图3所示,网络少数CBA模块不包含激活层的,在后面模型量化中不包含ReLU6的量化即可。
以SAR图像目标检测为例,检测图片为800*800分辨率的SAR遥感图片,模型需要检测出图片中的舰船目标。
在输入预处理阶段,将图片像素除以255,归一化为[0,1]区间;模型的训练使用SGD优化器,学习率设置为1e-4,训练100轮后得到收敛的模型。
2.量化感知训练QAT
量化感知训练阶段以正常训练后得到的模型参数为初始值,进行50轮的量化感知训练,以保证模型在适配量化推理时能够保持较高的精度;
量化感知训练阶段需要将常规的卷积层进行改造,以完成BN融合和假量化操作,主要更改的地方如下:
每层设计两个范围***R1和R2,其中R1用于跟踪该层权值参数的最小值和最大值,R2用于跟踪该层输入特征图的最小值和最大值;
每层设计两个量化器Q1和Q2,分别支持对权值参数和输入特征图进行量化、反量化、假量化和更新量化尺度参数等操作。
在训练阶段,每层卷积需要BN融合和假量化操作按照如下过程进行:
(1)使用权值和输入特征图进行常规卷积,得到输出特征图;
(2)根据输出特征图,按照公式(37)计算其BN参数(均值μb、标准差σb、移动平均值
Figure BDA0002851741130000241
Figure BDA0002851741130000242
),按照公式(41)和(42)计算BN融合卷积的权值w′和偏置b′;
(3)根据假量化公式(13),对BN融合卷积的权值w′和输入特征图进行假量化;在假量化过程中,范围***R1和R2更新权值和输入特征图的最小值和最大值;量化器Q1和Q2按照公式(15)和(18)更新权值和输入特征图的量化尺度因子Sw和Sx;实数形式的权值和输入经过量化过程转变为整数,然后通过反量化过程转回修正版的实数;
(4)使用假量化后的权值和输入进行卷积,得到卷积结果;
(5)卷积结果加上BN融合卷积的偏置项b′,得到最终的输出特征图;
(6)将本层输出特征图送往下层卷积,作为其输入特征图,逐层进行后续处理。
3.量化参数生成
经过量化感知训练后,模型的精度相对于不训练直接进行量化推理的方式要高;
为了拿到量化参数,需要对量化感知训练后的模型进行一次前向推理,生成各层的量化参数;
针对每层卷积,执行步骤如下:
(1)根据公式(41)和(42),计算BN融合卷积的权值和偏置;
(2)获取该层量化器Q1和Q2中保存的量化尺度因子Sw和Sx,以及下层卷积中量化器Q2保存的量化尺度因子(记为Sy),根据公式(31)计算M0
(3)根据量化公式(11),在已知Sw和Sx的情况下,对BN融合卷积的权值和输入特征图进行量化,得到对应的量化版本Qw和Qx
(4)根据公式(22),对BN融合卷积的偏置进行量化,得到对应的量化版本Qb
(5)在上述步骤已求得M0、Qw、Qx和Qb的情况下,根据全整数量化推理公式(35),计算该层卷积量化版本的输出特征图Qy
(6)保存本层中计算出的量化参数,包括M0、Qw、和Qb,以供量化推理阶段使用;
(7)将本层的输出特征图输入到下层卷积,作为其输入特征图,逐层进行后续处理。
4.量化推理
在获取每个卷积层的量化参数后,前向推理主要根据全整数量化推理公式(35)进行逐层计算,需要注意的是第一层和最后一层的特殊处理;
对于首层卷积,网络训练时将图像像素从[0,255]归一化为[0,1];
在全整数量化推理阶段,为了给网络提供整数输入,需要进行如下处理:
Figure BDA0002851741130000251
该函数将[0,255]的像素值映射为[0,127],正好位于8bit对称量化的取值范围内;
对于网络的最后一个卷积层,其量化参数生成的第2步中需要获取下层的量化尺度参数,在量化感知训练改造的卷积层中,量化器Q2计算的是本层输入特征图的量化尺度参数;因此,在网络中为最后一层卷积单独设一个范围***和量化器,用于跟踪该输出特征图的最小值和最大值,并计算量化尺度参数。
此外,网络最终的输出为量化整数张量,需要通过最后一个输出特征图的尺度因子,利用反量化公式(12)将量化整数张量转换为实数张量,用于检测模型后续的nms后处理操作,直至输出预测检测框。
本发明采用上述一种图像检测模型的高效全整数量化方法时,其提出一种基于量化感知训练和全整数量化推理的网络模型量化方法,根据输入张量和卷积核权重进行卷积计算的过程,推导出全整数量化的计算公式,采用全整数量化方案,网络权值、激活值和卷积偏置都采用整数表示,计算过程只涉及整数运算,并进一步利用对称量化的特点,对量化计算公式进行简化,得到计算高效且模型性能良好的模型量化方法,可以大大减少图像检测模型的推理时间,减少模型在磁盘存储和内存占用方面的空间,同时保持图像检测模型的高检测精度,有助于在FPGA等计算设备上实现更加高效的图像目标检测***。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种图像检测模型的高效全整数量化方法,其特征在于,所述图像检测模型中各层卷积的权值、偏置、输入特征图和输出特征图均采用整数表示,量化推理过程均采用整数计算,具体包括以下步骤:
步骤1:正常训练,采用基于MobileNetv2的轻量化卷积网络作为检测主干网,使用YoLov2方法的损失函数对实数版本的图像检测模型进行正常训练,其中,模型的权值、输入特征图和输出特征图均用实数表示,训练和推理均使用浮点数进行计算,模型的输入为待检测的图片数据,输出为图片中目标的检测结果,包括目标的坐标、高度和宽度信息;
步骤2:量化感知训练,针对图像检测模型的每个卷积层,在正常训练的前向计算中加入假量化过程,使得模型能够更好地模拟量化推理过程,在反向传播中使用浮点数更新模型参数,具体包括以下步骤:
步骤2.1:使用图像检测模型每个卷积层的权值和输入特征图进行常规卷积,得到输出特征图;
步骤2.2:计算每层输出特征图的均值μb和标准差σb,即该层图像特征表示的均值和标准差,并按照以下公式(37)计算输出特征图的BN参数,包括移动平均值
Figure FDA0002851741120000011
Figure FDA0002851741120000012
Figure FDA0002851741120000013
其中,t为当前训练样本的批次值,
Figure FDA0002851741120000014
Figure FDA0002851741120000015
为前一批训练样本计算的移动平均值,τ为当前训练样本批次在计算移动平均值时的权重,τ的典型取值为0.01,1-τ为前一批次数据所计算移动平均值的权重;
按照公式
Figure FDA0002851741120000016
Figure FDA0002851741120000017
计算BN融合卷积的权值w′和偏置b′,其中,μr和σr为图像样本均值和标准差的移动平均值,在训练过程中取值为当前批次更新后的移动平均值,
Figure FDA0002851741120000018
Figure FDA0002851741120000019
γ为BN层训练确定的斜率参数,β为BN层训练确定的偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵;
步骤2.3:根据假量化公式
Figure FDA0002851741120000021
对BN融合卷积的权值w′和输入特征图进行假量化,其中,S为量化的尺度因子参数,Rd为原实数集合,
Figure FDA0002851741120000022
为经过假量化操作后的实数集合,int()为取整函数,clamp()为夹断函数,将输入夹断到固定的量化整数范围,即[-127,127];
在假量化过程中,范围***R1和R2,分别记录并更新BN融合卷积权值和输入特征图的最小值和最大值;
设置两个量化器Q1和Q2,分别按照公式
Figure FDA0002851741120000023
Figure FDA0002851741120000024
更新权值和输入特征图的量化尺度因子Sw和Sx,从而将实数形式的权值和输入经过量化过程转变为整数,然后通过反量化过程转回修正版的实数,其中,B为用于确定量化整数范围的量化bit数,采用对称量化,量化整数空间为[-2(B-1)+1,2(B -1)-1],B=8时范围为[-127,127],
Figure FDA0002851741120000025
代表权值矩阵Rw中的元素,记该卷积层的权值矩阵含有N行T列数据,权值矩阵写为
Figure FDA0002851741120000026
Figure FDA0002851741120000027
是权值矩阵每个元素值除以量化尺度因子后的值,同理,
Figure FDA0002851741120000028
代表输入特征图Rx中的元素,记该卷积层的输入特征图矩阵含有T行P列数据,输入特征图矩阵可以写为
Figure FDA0002851741120000029
Figure FDA00028517411200000210
是输入特征图每个元素值除以其量化尺度因子后的值;
步骤2.4:使用假量化后的权值和输入特征图进行卷积,得到卷积结果;
步骤2.5:卷积结果加上BN融合卷积的偏置项b′,得到输出特征图;
步骤2.6:如果卷积层后面存在非线性激活函数ReLU6,则按照如下公式对上面步骤的输出特征图(记为qx)进行截断处理,
Figure FDA0002851741120000031
其中,q6=f(6,S)=clamp(int(6/S)) (45),该公式中S取值为下层卷积输入特征图的量化尺度因子,qy为ReLU6激活函数处理后的输出特征图;
步骤2.7:将上面计算的输出特征图送往下层卷积,作为其输入特征图,逐层进行后续处理,得到模型所有卷积层的输出,计算损失函数;
步骤2.8:根据损失函数,按照BP计算模型训练参数的梯度并更新参数;
步骤2.9:迭代步骤2.1至2.8多次,直到网络模型收敛,完成量化感知训练;
步骤3:量化参数生成,在量化感知训练完成后,通过一次前向计算,生成网络各层的量化参数,针对每层卷积,执行步骤如下:
步骤3.1:根据公式
Figure FDA0002851741120000032
Figure FDA0002851741120000033
计算BN融合卷积的权值和偏置,其中,μr和σr为量化感知训练结束时最终确定的样本均值和标准差的移动平均值,γ和β为最后一次训练所得的斜率参数及偏置参数,b为常规卷积层的偏置项,w为常规卷积层的权值矩阵,w′为BN融合卷积层的权值矩阵,b′为BN融合卷积层的偏置项;
步骤3.2:获取该层量化器Q1和Q2中保存的量化尺度因子Sw和Sx,以及下层卷积中量化器Q2保存的量化尺度因子(记为Sy),根据公式
Figure FDA0002851741120000034
计算M0,其中,Sw、Sx和Sy分别是本层BN融合卷积权值、本层输入特征图、本层BN融合卷积输出特征图,即下层卷积的输入特征图的量化尺度因子,M为[0,1]区间的小数,n为使得小数M变换为整数M0所移动的二进制比特位数,取n=20;
步骤3.3:根据量化公式Qd=clamp(int(Rd/S))(11),在已知量化尺度因子分别为Sw和Sx的情况下,对BN融合卷积的权值和输入特征图进行量化,得到对应的量化版本Qw和Qx,其中,权值
Figure FDA0002851741120000041
输入
Figure FDA0002851741120000042
Figure FDA0002851741120000043
代表BN融合卷积的权值矩阵Rw中的元素,
Figure FDA0002851741120000044
代表输入特征图Rx中的元素,矩阵中单个元素的量化公式为f(ri,S)=clamp(int(ri/S));
步骤3.4:根据公式
Figure FDA0002851741120000045
对BN融合卷积的偏置进行量化,得到对应的量化版本Qb,其中,令Sb=SwSx
Figure FDA0002851741120000046
代表BN融合卷积的偏置Rb中的元素,
Figure FDA0002851741120000047
步骤3.5:在上述步骤已求得M0、Qw、Qx和Qb的情况下,根据全整数量化推理公式Qy=clamp(int([M0(Qw×Qx+Qb)]>>n)) (35),计算该层BN融合卷积量化版本的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;
步骤3.6:保存本层中计算出的量化参数,包括M0、n、Qw和Qb,以供量化推理阶段使用;
步骤3.7:将本层的输出特征图Qy输入到下层卷积,作为其输入特征图,逐层进行后续处理,直至最后一个BN融合卷积层;
步骤3.8:对于最后一层卷积,设置一个范围***和量化器,用于跟踪该层输出特征图的最小值和最大值,并计算量化尺度参数Slast,从而得到图像检测模型所有BN融合卷积层的量化参数;
步骤4:量化推理,应用生成的各层参数,在计算设备上进行基于全整数运算的推理,具体为:
步骤4.1:第一层按照公式
Figure FDA0002851741120000051
进行处理,其中,x为输入的检测图像数据,取值范围为[0,255],h(x)为对首层输入进行处理,使其满足量化输入要求,取值范围为[0,127],h(x)输入到量化版检测模型的第一层,作为该层的输入特征图;
步骤4.2:对于中间的所有BN融合卷积层,从步骤3.8中生成的模型参数中加载每个卷积层的量化参数,包括M0、n、Qw和Qb,从该层的输入中得到前面层传入的输入特征图Qx,根据Qy=clamp(int([M0(Qw×Qx+Qb)]>>n)) (35)进行前向推理,计算得到该层的输出特征图Qy,如果该层后面有ReLU6激活函数,则按照步骤2.6中qy=qrelu6(qx)函数进行截断处理,输出截断后的输出特征图;将计算的输出特征图传入下一层作为输入特征图,直到得到最后一个BN融合卷积层的输出特征图;
步骤4.3:对于最后一层卷积,在计算输出特征图后,利用反量化公式
Figure FDA0002851741120000052
将量化整数矩阵转换为实数矩阵输出,其中S的取值为步骤3.8计算的Slast,Qd的取值为最后一层的量化输出特征图,
Figure FDA0002851741120000053
为最后一层的实数输出特征图,代表输入图像数据在最后一个BN融合层的实数特征表示;
步骤4.4:将最后一层的实数特征表示送入nms(Non-Maximum Suppression)进行非最大抑制后处理,过滤不合理的检测框,输出预测目标框。
CN202011529800.4A 2020-12-22 2020-12-22 一种图像检测模型的高效全整数量化方法 Withdrawn CN112508125A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011529800.4A CN112508125A (zh) 2020-12-22 2020-12-22 一种图像检测模型的高效全整数量化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011529800.4A CN112508125A (zh) 2020-12-22 2020-12-22 一种图像检测模型的高效全整数量化方法

Publications (1)

Publication Number Publication Date
CN112508125A true CN112508125A (zh) 2021-03-16

Family

ID=74922960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011529800.4A Withdrawn CN112508125A (zh) 2020-12-22 2020-12-22 一种图像检测模型的高效全整数量化方法

Country Status (1)

Country Link
CN (1) CN112508125A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113705317A (zh) * 2021-04-14 2021-11-26 腾讯科技(深圳)有限公司 图像处理模型训练方法、图像处理方法及相关设备
CN113706647A (zh) * 2021-07-30 2021-11-26 浪潮电子信息产业股份有限公司 一种图像上色方法及相关装置
CN113762503A (zh) * 2021-05-27 2021-12-07 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN114191267A (zh) * 2021-12-06 2022-03-18 南通大学 一种轻量级的复杂环境下智能辅助盲人出行方法及其***
CN114764756A (zh) * 2022-06-15 2022-07-19 杭州雄迈集成电路技术股份有限公司 去雾模型的量化剪枝方法及***
CN114898108A (zh) * 2022-03-30 2022-08-12 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及***
CN115272706A (zh) * 2022-07-28 2022-11-01 腾讯科技(深圳)有限公司 一种图像处理方法、装置、计算机设备及存储介质
WO2023028908A1 (en) * 2021-09-01 2023-03-09 Intel Corporation Dynamic temporal normalization for deep learning in video understanding applications
WO2023078051A1 (zh) * 2021-11-05 2023-05-11 杭州研极微电子有限公司 量化感知训练方法、装置、设备、介质及卷积神经网络
CN116432715A (zh) * 2023-06-14 2023-07-14 深圳比特微电子科技有限公司 一种模型压缩方法、装置和可读存储介质
WO2024055694A1 (en) * 2022-09-15 2024-03-21 Huawei Technologies Co., Ltd. Method and device for compressing generative pre-trained language models via quantization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012559A1 (en) * 2017-07-06 2019-01-10 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110135580A (zh) * 2019-04-26 2019-08-16 华中科技大学 一种卷积网络全整型量化方法及其应用方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012559A1 (en) * 2017-07-06 2019-01-10 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110135580A (zh) * 2019-04-26 2019-08-16 华中科技大学 一种卷积网络全整型量化方法及其应用方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113705317A (zh) * 2021-04-14 2021-11-26 腾讯科技(深圳)有限公司 图像处理模型训练方法、图像处理方法及相关设备
CN113705317B (zh) * 2021-04-14 2024-04-26 腾讯科技(深圳)有限公司 图像处理模型训练方法、图像处理方法及相关设备
CN113762503A (zh) * 2021-05-27 2021-12-07 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN113706647A (zh) * 2021-07-30 2021-11-26 浪潮电子信息产业股份有限公司 一种图像上色方法及相关装置
CN113706647B (zh) * 2021-07-30 2024-02-13 浪潮电子信息产业股份有限公司 一种图像上色方法及相关装置
WO2023028908A1 (en) * 2021-09-01 2023-03-09 Intel Corporation Dynamic temporal normalization for deep learning in video understanding applications
WO2023078051A1 (zh) * 2021-11-05 2023-05-11 杭州研极微电子有限公司 量化感知训练方法、装置、设备、介质及卷积神经网络
CN114191267A (zh) * 2021-12-06 2022-03-18 南通大学 一种轻量级的复杂环境下智能辅助盲人出行方法及其***
CN114898108A (zh) * 2022-03-30 2022-08-12 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及***
CN114898108B (zh) * 2022-03-30 2023-01-06 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及***
CN114764756A (zh) * 2022-06-15 2022-07-19 杭州雄迈集成电路技术股份有限公司 去雾模型的量化剪枝方法及***
CN114764756B (zh) * 2022-06-15 2022-09-20 杭州雄迈集成电路技术股份有限公司 去雾模型的量化剪枝方法及***
CN115272706A (zh) * 2022-07-28 2022-11-01 腾讯科技(深圳)有限公司 一种图像处理方法、装置、计算机设备及存储介质
WO2024055694A1 (en) * 2022-09-15 2024-03-21 Huawei Technologies Co., Ltd. Method and device for compressing generative pre-trained language models via quantization
CN116432715A (zh) * 2023-06-14 2023-07-14 深圳比特微电子科技有限公司 一种模型压缩方法、装置和可读存储介质
CN116432715B (zh) * 2023-06-14 2023-11-10 深圳比特微电子科技有限公司 一种模型压缩方法、装置和可读存储介质

Similar Documents

Publication Publication Date Title
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
US11270187B2 (en) Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization
US11580719B2 (en) Dynamic quantization for deep neural network inference system and method
CN110135580B (zh) 一种卷积网络全整型量化方法及其应用方法
WO2019238029A1 (zh) 卷积神经网络***和卷积神经网络量化的方法
CN110610237A (zh) 模型的量化训练方法、装置及存储介质
CN109800865B (zh) 神经网络生成及图像处理方法和装置、平台、电子设备
CN113326930B (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
CN111105017B (zh) 神经网络量化方法、装置及电子设备
CN111696149A (zh) 针对基于cnn的立体匹配算法的量化方法
CN110751265A (zh) 一种轻量型神经网络构建方法、***及电子设备
CN112990438A (zh) 基于移位量化操作的全定点卷积计算方法、***及设备
CN114978189A (zh) 一种数据编码方法以及相关设备
CN116402679A (zh) 一种轻量级红外超分辨率自适应重建方法
CN115022637A (zh) 一种图像编码方法、图像解压方法以及装置
CN112561050B (zh) 一种神经网络模型训练方法及装置
WO2021081854A1 (zh) 一种卷积运算电路和卷积运算方法
CN115147283A (zh) 一种图像重建方法、装置、设备及介质
CN113283591B (zh) 基于Winograd算法和近似乘法器的高效卷积实现方法及装置
US11699077B2 (en) Multi-layer neural network system and method
CN113919479B (zh) 一种提取数据特征的方法和相关装置
CN114595802A (zh) 一种基于数据压缩的脉冲神经网络加速方法和装置
CN111382854B (zh) 一种卷积神经网络处理方法、装置、设备及存储介质
CN110276448B (zh) 一种模型压缩方法及装置
CN112446461A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210316