没有合适的资源?快使用搜索试试~ 我知道了~
深度学习网络的无数据量化方法
1325无数据量化通过权重均衡和偏差校正Markus NagelMarkus Mart van BaalenTijmen Blankevoort Max WellingQualcomm AI Research†Qualcomm Technologies Netherlands B.V.{markusn,mart,tijmen,mwelling}@ qti.qualcomm.com摘要我们介绍了一种用于深度神经网络的无数据量化方法,该方法不需要微调或超参数选择。它在常见的计算机视觉架构和任务上实现了接近原始的模型性能。8-位定点量化对于现代深度学习硬件上的有效推理是必不可少的。怎么-706050403020100FP32Int16INT12INT10INT8 INT6 INT5量化模型以在8位中运行是一项重要的任务,经常导致显著的性能降低或花费在训练网络以使其服从量化上的工程时间。我们的方法依赖于通过利用激活函数的尺度等方差特性来使网络中的权重范围相等。在addition的方法纠正偏差的错误,引入量化过程中。这提高了量化精度性能,并且可以通过直接的API调用应用于许多常见的计算机视觉架构。对于常见的架构,如MobileNet家庭,我们实现了最先进的量化模型性能。我们进一步表明,该方法也扩展到其他计算机视觉架构和任务,如语义分割和对象检测。1. 介绍近年来,基于深度学习的计算机视觉模型已经从研究实验室转移到云端和边缘设备上。因此,深度学习推理的功耗和延迟已成为一个重要问题。由于这个原因,固定点量化被用来使推理更有效。通过将浮点值量化到规则间隔的网格上,原始浮点值可以近似为一组整数、比例因子和可选零点*同等贡献†Qualcomm AI Research是Qualcomm Technologies,Inc.的一项计划。图1.MobileNetV2在ImageNet上的固定点推理原始模型在12位量化时性能显著下降,而我们的模型即使在6位量化时也保持接近FP32的性能。偏移量[16]。这允许在矩阵乘法和卷积计算中使用更快和更节能的整数运算,代价是较低的代表性功率。我们建议读者参考[18],了解深度学习模型常用的硬件友好量化方法的详细信息。将 32 位 全 精 度 ( FP32 ) 模 型 量 化 为 8 位 定 点(INT8)会在权重和激活上引入量化噪声,这通常导致模型性能降低。这种性能下降的范围从非常轻微到灾难性。为了最大限度地减少量化噪声,文献中介绍了各种不同的方法(见第2节)。这些量化方法的一个主要缺点是它们依赖于数据和微调。例如,考虑管理量化模型硬件的现实世界参与者,例如基于云的深度学习推理提供商或手机制造商。为了提供通用的量化服务,他们必须从客户那里接收数据来微调模型,或者依赖客户来进行量化。在这两种情况下,这可能会增加一个困难的步骤的过程。对于这些利益相关者来说,如果FP32模型可以直接转换为INT8,而不需要运行传统量化方法所需的专有技术,数据或计算,那将是更可取的。即使是模型开发-DFQ(我们的)基线1326对于那些有能力对自己的模型进行建模的人来说,自动化将节省大量的时间。在本文中,我们介绍了一种量化的方法,不需要数据,微调或超参数调整,导致精度提高与一个简单的API调用。尽管有这些限制,我们在将FP32模型量化为INT8时仍能实现近乎原始的模型性能。这是通过调整预训练模型的权重张量以使其更易于量化,并通过校正量化模型时引入的误差偏差来实现的。我们显示出显着的改进,在量化性能的广泛的计算机视觉模型,以前被认为是难以预测没有微调。在文献中,很少讨论所提出的量化方法的实际应用。为了区分量化方法的适用性差异,我们介绍了四个层次的量化解决方案,在实际适用性的降序。我们希望这将使其他作者能够探索每个级别的解决方案,并使方法之间的比较更加公平。用于比较的轴是方法是否需要数据,方法是否需要量化模型上的误差反向传播,以及方法是否通常适用于任何架构或需要显著的模型重新工作。我们在整个论文中使用以下定义:级别1不需要数据和反向传播。方法适用于任何模型。就像API调用一样简单,只查看模型定义和权重。级别2需要数据,但不需要反向传播。适用于任何型号。数据被使用,例如重新校准批量归一化统计[27]或计算逐层损失函数以提高量化性能。然而,不需要微调流水线。Level 3需要数据和反向传播。适用于任何型号。模型可以量化,但需要微调,以达到可接受的性能。通常需要超参数调优以获得最佳性能。这些方法需要完整的训练管道(例如,[16、35])。Level 4需要数据和反向传播。仅适用于特定型号。在这种情况下,网络架构需要进行非平凡的重新工作,和/或架构需要从头开始训练,并考虑到量化(例如,[4、31、21])。需要大量额外的训练时间和超参数调整才能工作。2. 背景和相关工作有几项工作描述了量化和改进网络,以实现更低的比特推理和部署[9、10、16、35]。这些方法都依赖于微调,使它们成为3级方法,而无数据量化在没有这种要求的情况下同样可以提高性能。我们的方法是这些的补充,可以作为量化感知微调之前的预处理。在白皮书中,Krishnamoorthi [18]介绍了一种1级 这种方法的一个主要缺点是,并不是所有硬件都支持,并且由于每个通道单独需要比例和偏移值,它在计算中产生了不必要的开销。我们表明,我们的方法改进了每通道量化,同时为整个权重张量保留了一组尺度和偏移值。其他改进量化的方法需要架构更改或从一开始就考虑量化的训练这些方法甚至比量化和微调更复杂。 由于采样和噪声优化,它们还在训练期间产生相对较大的开销,并引入额外的hyperparameters来优化。这使它们成为4级方法。二进制化[5,15,27,28]或三进制化[19]网络的方法导致模型具有很高的推理效率,因为昂贵的乘法和加法被移位运算取代。然而,将模型量化为二进制通常会导致严重的性能下降。一般来说,它们需要从头开始训练,使它们成为4级方法。其他方法使用低位浮点运算而不是整数运算,或其他自定义量化实现[8,17,24,35]。我们不考虑这种方法,因为硬件实现效率较低在并行工作中,Meller et al.[22]还利用ReLU函数的尺度等方差来重新调整权重通道,并注意权重量化引入的偏差误差[7],从而产生了一种类似于我们的无数据量化方法的方法。Stock等人[32]也可以使用ReLU函数的尺度等方差属性,但将其用于网络优化。3. 动机虽然许多经过训练的FP32模型可以量化为INT 8而不会损失太多性能,但有些模型在量化后表现出显着的性能下降([18,31])。例如,当量化一个经过训练的Mo-bileNetV 2 [30]模型时,Krishnamoorthi [18]报告说,ImageNet [29]验证集的top-1准确率从70.9%下降到0.1%作者通过应用每通道量化、微调或两者结合来恢复接近原始模型。1327˜˜.JJNNJNJn1005075405025300202510501 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829303132输出通道索引06 5 4 3 2 1 0 1偏置输出误差图2.第一部门的每(输出)通道权重范围MobileNetV2中的可分离层。在箱形图中,绘制了每个通道的最小值和最大值、第2和第3四分位数以及中位数该层在通道权重范围之间表现出很大的差异。图3.在偏置校正之前(蓝色)和之后(橙色),由Mo-bileNetV 2中的第二深度可分离层的权重量化引入的每通道偏置输出误差。使用N个输入数据点经验地计算为:E[y−y]<$1<$(W<$x)−(Wx)(1)MobileNetV2上的性能低于每张量量化,这表明,在某些层中,输出通道之间的权重分布差异如此之大,以至于无法使用同一组量化参数进行量化张量的权重。例如,在一个通道具有范围[-128,128]中的权重并且另一个通道具有范围(-0. 5,0。5),当量化为8比特时,后一通道中的权重将全部量化为0图2显示,在(训练的)MobileNetV2模型中,输出通道权重范围确实存在很大差异。该图示出了模型的第一反转残差块中的深度可分离层的输出通道权重的权重分布由于该层表现出的通道权重范围之间的强烈差异,因此无法针对每个通道以合理的精度进行量化。网络中的几个层都存在这个问题,使得整个模型难以建模。我们推测,量化后的训练模型的性能可以通过调整每个输出通道的权重来提高,使得它们的范围更相似。我们在第4.1节中提供了一个1级方法来实现这一点,而不改变FP32模型的输出。3.2.偏置量化误差一个常见的假设在文献中(例如,[2])是量化误差是无偏的,因此在层的输出中抵消,确保层输出的均值不会因量化而改变。然而,正如我们将在本节中展示的那样,权重上的量化误差可能会在相应的输出上引入有偏误差。这改变了下一层的输入分布,其中yj和yj分别是原始输出和使用量化的权重矩阵生成的输出。图3显示了训练的Mo-bileNetV 2模型中深度可分离卷积层的每个通道的偏置误差。从该图中可以清楚地看出,对于层输出中的许多通道,权重量化引入的误差是有偏的,并影响输出统计数据。深度可分离的层特别容易受到这种偏置误差效应的影响,因为每个输出通道只有9个相应的权重。输出上的这种偏置误差可以在许多设置中引入,例如,当权重或激活被裁剪时[23],或者在非量化方法中,例如权重tensor因子分解或信道修剪[13,34]。在第4.2节中,我们介绍了一种方法来纠正这种偏差。此外,我们表明,模型4. 方法我们提出的无数据量化方法(DFQ)由三个步骤组成,在正常量化的顶部。算法的总体流程如图4所示。4.1. 跨层距离均衡我们观察到,对于ReLU[25]作用函数f(·),以下缩放等方差性质成立:f(sx)=sf(x)(2)对于任何非负实数s。这是ReLU的定义:这可能导致不可预测的影响。量化层的输出单元j中的偏置误差ReLU(x)=x,如果x >00,如果x≤0。(三)量化量化+偏倚校正范围3.1. 权重张量通道范围事实上,每通道量化产生更好的-1328(一)^(1)(1) (1)^^ ^您的位置:a1x+b1ifx≤c1S我 我n−1IJ^IJ图4.所提出的DFQ算法的流程图。这一点也适用于PreLU [11] activa。作用更一般地说,对于任何分段,正标度等效性可以放宽为f(sx)=sf(x)线性激活函数:图5.单个通道的重新缩放图示。如果缩放因子si缩放第1层中的ci,则我们可以将其分解出来并在第2层中乘以di。其中ri是W(1)中通道i的量化范围,R(1)是W(1)的总范围。我们希望找到S,使得每个通道的总精度最大化:最大值(1)p(2)(九)f(x)=中国a2x+b2如果c1.0,对于这些值,P=IR(1)(八)(几乎)所有的X。 按照前面的两层示例,1330反射误差λ=W-W,y,作为˜˜˜˜˜˜CCcCγcγc˜C这些Cl可以从层1吸收到层2中,如:y= W(2) h+ b(2)(12)= W(2)(r(W(1) x + b(1))+c-c)+b(2)(13)=W(2)(r(W(1)x+b∈(1))+c)+b(2)(14)=W(2)h+b(2)(15)其中b<$(2)=W(2)c+b(2),h<$=h−c,b<$(1)=b(1)−c。为了在不违反我们的无数据假设的情况下找到c,我们假设前偏置激活是分布的,也不是-主要以批归一化偏移和标度参数β和γ作为其平均值和标准差。我们设c=max(0,β−3γ)。如果c>0,则等式引入-以上所述,将适用于99。865%的x值(那些大于>c)在高斯假设下。正如我们将在第5.1.1节中展示的那样,这种近似不会造成损害。全精度性能显著,但有助于激活量化。注意,在数据可用的情况下,可以凭经验找到x的预偏置分布并用于设置c。4.2. 量化偏差校正如动机中的经验所示,量化可以在激活中引入有偏误差在本节中,我们将展示如何校正层输出误差中的偏差对于具有权重张量W、量化权重W和输入激活x的全连接层,我们有y=Wx,因此y=y+Wx,其中我们定义量化FP32模型,并且y是添加了量化误差的层如果输出i的误差期望E[x]i/= 0,则输出i的均值将改变。这一转变在...否则可能导致以下层中的有害行为。我们可以通过看到以下内容来纠正这种变化:E[y]=E[y]+E[x]−E[x](16)=E[y] − E[x]。(十七)因此,从偏置输出y中减去输出E[x]=E[x]上的预期误差确保了每个输出单元的平均值被保留。为了实现,可以从层的偏置参数中减去预期误差该方法很容易扩展到卷积层,如附录B中所述。4.2.1. 计算预期输入为了计算层的输出的期望误差,需要层E[x]的期望输入。如果一个模型不使用批量归一化,或者没有数据使用限制,E[x]可以通过比较量化之前和之后的活动来计算。附录D更详细地解释了这一程序。当网络在一个层之前包含批量归一化时,我们可以使用它来计算该层的E[x],而不使用数据。我们假设层的预激活输出是正态分布的,在激活函数之前应用批量归一化,并且激活函数是一类裁剪线性激活函数的某种形式(例如,ReLU,ReLU6),将其输入范围裁剪为范围[a,b],其中a
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 广东石油化工学院机械设计基础课程设计任务书(二).docx
- 数控车床操作工技师理论知识复习题.docx
- 广州数控gsk980td车床数控系统详细对刀方法[1].docx
- 基于SolidWorks的注塑模具CAD系统设计.docx
- 基于柴油机拆装的零件设计与数控编程说明书.docx
- 单凹机常见机械故障分析.docx
- 数控宏程序教程车床篇.docx
- 摩托车启动电机壳体冲压工艺及模具设计.docx
- 数控技能大赛数控铣加工中心软件应用竞赛模拟题.docx
- 基于柴油机拆装的零件设计和数控编程.docx
- 华中数控综合试验台实验指导书.docx
- 叉形支架机械工艺规程设计.docx
- springboot+vue“智慧食堂”设计与实现springboot002.docx
- DH1765-3-北京大华单路程控直流电源用户协议手册,USB驱动,开发手册
- 数控车床零件程序编制及模拟加工实训.docx
- 数控设备的安装调试.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)