APP下载

低比特量化在目标检测上的研究与应用

2022-02-15毛淑菲曾志高通信作者张晓丽袁鑫攀文志强

信息记录材料 2022年12期
关键词:数据流权重精度

毛淑菲,曾志高(通信作者),张晓丽,袁鑫攀,文志强

(1 湖南工业大学计算机学院 湖南 株洲 412008)

(2 湖南省智能信息感知及处理技术重点实验室 湖南 株洲 412008)

(3 湖南交通工程学院电气与信息工程学院 湖南 衡阳 421200)

0 引言

近年来,随着深度学习技术的发展,网络的精度以及速度相比传统目标检测网络有大大的提升,但是大部分网络是以不断增加网络结构深度和宽度、模型的复杂度来获得更佳的性能,但这势必带来网络模型参数庞大,参数空间存在一定的冗余以及内存占用过大等问题[1]。这些问题使得目标检测[2]的算法无法达到实时性检测,无法适合现实场景中的应用程序,也让模型直接部署在资源受限的低端设备成了一大阻碍。对此,部分学者采用剪枝降低网络的复杂性,但是剪枝过程未对跳跃连接层进行有效处理;龚圣斌等[3]通过使用轻量化Inception-V2更换Faster R-CNN网络的特征提取网络使得网络更轻量化;张丽莹等[4]通过深度可分离卷积替换了模型中的普通卷积从而减少参数量。像类似直接用已经轻量化的backbone直接去替换大网络中普通的主干网络治标不治本,甚至对于一些具有计算密集型设备的计算反而会有一定的抑制,模型性能有很大下降。本文在原有量化算法[5-8]基础上进行改进,摒弃原有量化计算流程中大量反复的加法与乘法的混合操作,简化模型中量化的计算流程,同时选取目标检测一阶段和两阶段的经典网络进行训练,同时模型数据流clip模型训练,分别分析其模型参数的分布情况,最后对模型低比特量化。

1 量化原理

目标检测网络模型FasterRCNN和YOLOv3-SPP做采用均匀量化[9],其量化方案严格的数学定义如下:

式(1)中的x表示的是网络浮点输入,Xq表示的是经过量化后的结果值。scale和zp是量化参数,其中scale体现了映射中的比例关系,zp则是零基准zero-point,也就是浮点中的零在量化tensor中的值。它们建立了浮点tensor到量化tensor的映射关系。当对称量化器将zp限制为0,对称量化公式如式(2)所示[10]:

2 量化的加速

本文中YOLOv3以及FasterRCNN网络中卷积算子Y=WX(这里暂时不考虑偏置),Y是模型输出,W表示模型权重,X表示数据流,如果采用传统的量化方法,对数据量化是每个操作计算出最优的一组scale,那么需要对输入数据X∈[xmin,xmax],W∈[wmin,wmax]做如下操作:

接着对x,w的量化如式(5)(6),xq,wq是对x与w做量化操作的结果:

Y=WX算子的反量化,由于式(5)(6)可得根据前面式(3)(4)和反量式(5)(6)得到的反量化,如式(7)所示:

传统方法主要的问题在于有很多额外的计算过程且会占用较多内存和计算时间。

基于此,本文提出了一种改进后的方法,基本过程如下:

(1)首先,结合模型训练时量化和后量化的优缺点,在模型训练时将数据流做了一个小trick,将数据范围有效裁剪(clip)到一个固定的范围:,这里n是小数位宽。假设x裁剪到[-4,4],w裁剪到[-1,1],则nx=2,nw=0。

(2)进行模型推理的时候,对经过步骤(1)的模型进行量化:

对于式(8)(9),如果此时需要做8 bit量化,要求:如果需要更低比特,比如4 bit量化,

(3)权重和数据流的反量化可由式(8)(9)反推得到,如式(10)所示:

3 量化实验步骤

步骤一:实验首先选取二阶段ResNet50+FPN+Faster RCNN模型的学习率设置为0.001,batch_size=4,epoch=15进行训练,并得到baseline的权重模型;

步骤二:一阶段网络DarkNet53-YOLOv3-SPP模型,学习率设置为0.001,batch_size=8,epoch=30,并得到baseline的权重模型;

步骤三:将MobileNetv2轻量化网络替换步骤一的ResNet50,接着MobileNetv2+FasterRCNN全精度训练后得到baseline模型;

步骤四:接着对步骤一和步骤二得到的模型数据流做clip实验操作并对FP32的模型已经训练好的baseline的权重共做了9组裁剪实验以及不做裁剪操作的实验对比;

步骤五:根据式(8)和式(9)对YOLOv3-SPP、MobileNetv2-FasterRCNN以及ResNet50+FPN+FasterRCNN模型量化和反量化处理,量化后的x,w的精度误差为本实验基于简单地说,即nx,nw值越小,说明实验中clip的范围越小,那么kw和kx就越大,模型量化后精度则会越高。最后再对9组量化模型进行模型推理。

4 实验结果与分析

4.1 实验环境与数据集

本实验基于Pytorch深度学习开源框架,其他相关配置如表1所示,Faster RCNN分别采用Resnet50+FPN和轻量化网络MobileNetv2的主干网络进行训练。选择基于coco数据集训练好的权重进行迁移学习迭代出属于本文的模型。试验环境具体配置如表1所示:

表1 实验环境配置

基于现有的配置,采用公开数据集PASCAL VOC2012,该数据集主要有20个类别,主要分为4大类:交通工具类别、家庭物品类、动物类别、针对Person的检测。目标训练集共有5717张图片,验证集5 823张图片。对该数据进行图像预处理:随机水平翻转,同时所标注的GT的坐标也进行反转。

4.2 实验结果

由于图1中数值范围最大在(-1,1)之前,所以本文clip实验对权重裁剪到(-1,1)与(-0.5,0.5)两组范围内,实验表明,权重范围不管clip到0.5还是1的范围,模型AP和AR都下降得很低,ResNet50,MobileNetv2和YOLOv3模型数据流clip到±8和权重clip到±1效果最好。

图1 选取YOLOv3模型list112做权重clip

为了验证本文提出方法的有效性,一阶段网络Resnet50+FPN+Faster RCNN、MobileNetv2+Faster RCNN和二阶段网络是输入图像512×512,backbone为Darknet53的YOLOv3-spp网络对数据流和模型权重做clip的实验,选取其中一个模型ResNet50+_FPN进行裁剪过后得到的模型检测的mAP和在训练过程的损失如图2所示。

图2 ResNet50+_FPN模型训练损失和mAP

图2是选取clip_x8_w1对数据流和权重分别裁剪到(-1,1)的损失和mAP,是对3.1节量化实验细节中步骤四更为具体的实验,从图2中可以看到clip实验虽然在前几个epoch的mAP会有少许变化,但随着模型的迭代更新,总体的mAP相较于baseline模型的mAP并未减少,对应的各类别mAP的平均值可以达到78%左右,其他两个模型的训练损失和mAP结果类似模型ResNet50+_FPN的实验结果,所以这里不列举图示。

表2是YOLOv3-SPP模型8bit量化的结果,其中Lr1是实验中参数LR设置为0.001同时将数据流clip到(-8,+8),w裁剪到(-0.5,+0.5)与clip到(-8,+8),w裁剪到(-1,+1)的结果;Lr2是LR=0.0001同时将数据流clip到(-8,+8),w裁剪到(-1,+1)的结果;Lr3是LR=0.00001同时将数据流clip到(-8,+8),w裁剪到(-0,+1)的结果;由于对w设置在(-0.5,+0.5)时,结果最佳,本文选取对w设置在(-0.5,+0.5)的实验进行微调结果展示,LR=0.001为最初始的学习率,进行8bit模型量化后发现模型精度降低得稍微有点明显,本文对量化后的模型做微调,将学习率分别调整到Lr2和Lr3,从实验结果可以看到,当Lr设为0.000 1后,模型量化的精度十分接近baseline浮点模型精度。

表2 模型8位量化推理以及微调结果

表3是对实验模型backbone为MobileNetv2、ResNet50+FPN、DarkNet53的模型进行量化后的模型与三个baseline模型就mAP和模型大小的一个比较。

表3 各个模型的结果对比

实验结果表明,量化后的模型和原有的模型相比,模型的mAP精度并无显著下降,与此同时YOLOv3-SPP模型从原来的323 MB下降到82.75 MB,模型压缩了74.38%;MobileNetv2-Faster RCNN模型大小亦压缩了75%;ResNet50+FPN+Faster RCNN模型大小将近4倍的压缩。

从数据集以及非数据集中随机选取的多目标和单目标图片进行测试,三个模型的检测结果分别如图3、图4、图5所示。

图3 ResNet50+FPN-FasterRCNN检测

图4 MobileNetv2+FasterRCNN检测

图5 DarkNet53-YOLOv3检测

5 结语

综上所述,本文对传统的模型量化方法进行优化,不管是后量化还是训练时量化,现有的算法都较为烦琐,频繁统计数据流和权重参数的范围,同时伴有精度降低的问题,通过改进后的量化方法不仅可以减少级联网络的计算量,相较于传统量化算法的优越性在于目标检测模型量化和反量化过程简洁。实验表明,使用该方法不仅压缩了模型的大小,在目标检测领域仍然具有较高的准确率。下一步考虑将改进后的量化算法结合知识蒸馏、矩阵分解算法进一步压缩网络模型。

猜你喜欢

数据流权重精度
热连轧机组粗轧机精度控制
汽车维修数据流基础(上)
权重常思“浮名轻”
汽车维修数据流基础(下)
超高精度计时器——原子钟
分析误差提精度
为党督政勤履职 代民行权重担当
基于DSPIC33F微处理器的采集精度的提高
基于数据流聚类的多目标跟踪算法
基于局部权重k-近质心近邻算法