没有合适的资源?快使用搜索试试~ 我知道了~
5148DSConv:高效卷积算子Marcelo Gennari doNascimento牛津大学主动视觉实验室marcelo@robots.ox.ac.uk罗杰·福塞特英特尔公司https://www.omnitek.tv/aboutroger. intel.comVictor AdrianPrisacariu牛津大学主动视觉实验室victor@robots.ox.ac.uk摘要量化是提高卷积神经网络(CNN)速度和降低内存使用的一种当标记的训练数据可用时,网络权重和激活已成功量化到1位。当标记的训练数据不可用时,e.G. 当量化预先训练的模型时,其中当前方法最多显示在8比特量化时没有损失精度。我们引入了DSConv,一个灵活的量化卷积算子,它用成本低得多的整数运算取代了单精度运算我们在最流行的神经网络架构ResNet,DenseNet,GoogLeNet,AlexNet和VGG-Net上测试了我们的模型作为标准卷积的即插即用替代品,并展示了最先进的结果,准确性损失不到1%,无需再训练,仅使用4位量化。我们还展示了如何蒸馏为基础的适应阶段与未标记的数据可以进一步提高结果。1. 介绍一个流行的方法,使神经网络更快,使用更少的内存是量化,它取代了32位浮点权重,并可能,激活与较低的位(即。较低精度)表示,同时旨在保持准确性。量化是神经网络压缩中常用的方法。这旨在尽可能多地减少网络权重占用的存储器,以例如降低存储网络所需的总体存储器占用。当应用于权重和激活时,它还可用于提高神经网络推理速度(快速推理),方法是用整数、按位运算或仅加法运营当标记的训练数据可用时,实现最佳量化结果,因为量化模型可以拟合到数据集,这为训练算法提供了激活图将看起来像什么以及预期输出将是什么的先验知识。当只有预训练的模型可用时,保持高准确性变得困难得多。在本文中,我们专注于后一种情况,并量化权重和激活以产生更小且具有更快推理的神经网络。我们的关键见解是,在没有训练数据的情况下,这可以通过强制低精度量化模型的权重和激活的概率分布来反映原始全精度模型的概率分布来实现。我们引入了一种新的卷积算子,我们称之为DSConv,它将卷积权重分解为(i)与原始内核大小相同的低精度分量和(ii)具有可变大小(例如,小到每个内核一个float 32受块浮点方法[35]的启发,使用类似的过程来验证激活。我们还表明,当使用蒸馏[19]启发的权重自适应方法时,可以提高准确性,该方法使用原始的预训练模型和未标记的输入数据。本文的主要贡献是引入了一种卷积运算符,该卷积运算符(i)用作我们的量化策略是能够实现国家的最先进的结果,我们的实验部分所证明的。本文其余部分的结构如下。§2介绍了以前关于量子化的论文。§3详细解释了该方法。§4示出了在各种架构和设置中执行的实验的结果。§5最后讨论了它的性能和可能的应用和局限性。51492. 相关工作低位宽网络的使用节省了大量的内存和计算,特别是当目标的定制硬件。例如,对于8位操作,[26]报告速度增加了10倍,[12]报告节能和芯片面积增加了30倍。我们将以前试图提高神经网络效率的研究分为两组:用标记数据进行量化。 神经网络量化的大多数研究都集中在涉及重新训练的问题上,要么从头开始,要么从现有的预训练网络进行调整。BinaryConnect,BWN和TWN [11,32,28]仅使用1位和三进制权重进行FP-MACS加法。XNOR-Net和BNN [32,11]将1位量化权重和激活应用于ImageNet以进行快速推理,但代价是准确性显著WRPN [30]通过使用相同架构的更广泛版本来提高这种准确性。在定制硬件中进行的低位网络加速的早期演示包括Ristretto [16],它也使用数据将网络扩展到8位模型。随后的许多其他论文也使用二进制基向量训练量化方案,例如LQ-Nets [38],Halfway Gaussian Quantization(HWGQ)[6]和ABC-Net [29]。DoReFa-Net [40]还量化了梯度,以及权重和激活。压缩问题也主要通过使用访问标记数据的再训练来处理。在DeepCompression [17]中,算法的三个步骤中有两个需要重新训练(修剪和量化),霍夫曼编码在不需要数据的情况下执行。HashedNet [7]在存储网络时使用最近的方法[31],使用蒸馏[3,19]获得压缩权重,而且还需要完整的标记训练集。几种方法引入了新颖的浮点数据格式。例如动态定点[10],它用定点和浮点的混合来代替正常的浮点数;以及Flexpoint [25],它旨在利用浮点数的范围和定点的计算复杂性,并承诺在有限的范围内执行向前和向后操作。在Tensorflow [2]中的bfloat16格式中也采用了替代单精度(FP32)值表示的想法,该格式采用了二进制浮点16格式,该格式使用7位作为尾数,而不是通常的23位。没有标记数据的量化。有标号数据的量化问题已得到广泛的研究,无标号数据的量化问题已得到广泛的研究,更少的关注。探索这种可能性的最新论文是[39,8,23,4],它们要么仅报告8位量化的结果,要么采用某种校准数据- 即用于权重自适应的验证数据集的未标记小部分行业方法已经在TensorRT [1]等系统中实现了仅使用少量未标记数据在这种情况下,他们可以成功地从1000个采样图像中将网络其他例子包括Google TPU和ProjectBrainwave([15,9]),所有这些都将神经网络量化为8位以进行快速推理。另一项表明8位量化不会显著影响效率的工作是[26],他们表明即使在量化激活和权重时也是如此。在本文中,我们表明,量化可以有效地完成4位的权重和激活,而不需要重新训练标记的数据,进一步的潜在改进时,使用自适应与未标记的数据。3. 方法对于给定的神经网络推理f(x),f(Mx)的预测应该是相同的(考虑到偏差相应地缩放),对于M∈R。DSConv是建立在直觉上的,这种性质适用于一些非线性变换,x的形式,只要权重和激活值的相对分布我们认为一种这样的变换是量化,即。只要权重和激活上的分布保持不变,我们可以以对低精度表示友好的方式缩放和对整个4D张量采用这种策略将产生非常高的裁剪误差,因为单个缩放因子M将无法单独捕获整个张量分布。在本文中,我们采用了更一般的策略,使用张量的比例因子,其大小进行调整,以捕捉范围内的值具有较高的fidelity。浮点值的每个张量被分成两个分量:一个张量具有与原始张量相同的大小,由低位整数值组成,另一个张量具有与原始张量相同的大小,由浮点缩放因子组成。每个缩放因子负责沿其张量深度维度缩放B个整数值的子组,其中B是块大小超参数。DSConv采取的步骤如下:(I)从预先训练的网络,将权重张量深度地划分为可变长度B的 块 ,并量化每个块;(II)使用块浮点(BFP)格式来量化激活,其中块与权重张量大小相同;(III)将动作的整数值与权重张量相乘以最大化推理速度;(IV)将最终值乘以它们各自的比例,以将各个块的分布移动到正确的范围。5150BQB−1Q3.1. 权重量化初始(4a)通道(Ci)128(B)座64位(b)4节省(p)百分之十四点一我们提出了一种量化权重的方法,初始(4a)128128413.3%每个大小为B的块都有一个浮点值,初始(4a)128323百分之十二点五每个权重张量滤波器的深度维度。 例初始(4c)2561283百分之十点二对于每个过滤器的结果大小,可以在图1中看到给定大小为(C o,C i,K h,K w)的权重张量和块大小超参数B,我们首先将张量分成两个分量:可变量化核(VQK),由低位值组成,大小与原始张量相同;核分布移位(KDS),由单精度数组成,大小为(Co,<$Ci<$,K h,K w),其中<$x<$是上限运算。B超参数可以无缝地修改为AC-commodate用于浮点运算和定点运算之间的权衡,对于纯浮点,B=1,对于最大定点,B≥Ci表1.仅通过量化节省内存给定已知的预训练模型,每个块的权重被拉伸和舍入以适合等式1中的区间接下来,我们探索了两种可能的方法来计算KDS值:(i)最小化KL-发散,其寻求找到原始权重的分布与核分布移位器之间的信息的最小损失,并且强调所得到的VQK在被移位之后应当具有与原始权重类似的分布的思想;或者(ii)最小化L2范数(欧几里德距离),这可以解释为参数应该最接近原始网络的最优值。为了最小化KL发散,我们首先取移位的VQK和原始分布的软最大值。按钮:ewje·wqjTj=0Iewi,Ij=我 e·wqi(三)然后,我们使用梯度下降来最小化每个切片的以下内容:Σξ= min.TJTj测井Σ,n(1,B,1,1)切片(4)图1.对于B= 64的情况,每个权重滤波器的VQK和KDS的大小。这将FP MAC的数量从1350减少到27。然后,VQK将整数值保存在2s补码ξˆjIj其中,KDS是该块的KDS值。另一种方法使每个切片的以下L2范数最小化:B−1使得对于所选择的特定比特数b,权重在以下区间中:ξ=minξˆi=0时(wqi第二章(五)w∈Z,b∈ N |−2b−1≤w≤2b−1- 第1、(1)段其具有封闭形式的解:B−1这允许使用2s执行所有操作∴ξ=i=0wiwqi,n(1,B,1,1)切片(6)w2互补运算,如§3.3所述。通过简单地将正常卷积更改为DSConv,每个张量权重节省的内存为:i=0qi实际上,这两种战略产生的价值大致相等。我们使用bCip=+B32Ci(二)L2范数方法,因为它有一个封闭形式的解决方案。算法1总结了在给定预训练的网络模型的情况下初始化VQK和KDS两者的过程。等式2表明,对于足够大的B和Ci值,节省的存储器大约是位数b除以32。出于说明目的,表1显示了GoogLeNet [34]架构某些层的Ci,B,b和p的实际值的数值结果。可以看出,仅通过量化就可以实现显著的存储器节省,而无需诸如Huffman编码[21]的附加方法。51513.2. 激活量化我们的方法旨在在没有任何训练数据的情况下实现良好的性能。这意味着我们没有关于激活图将具有什么值或分布的先验知识。因此,该量化不能是数据驱动的。相反,我们使用了受[35,33,14,9,15]的块浮点(BFP)方法启发的方法。5152B图2.量化激活示例这是尾数位被设置为3并且块超参数被设置为8的特定情况请注意,裁剪时执行½ LSB舍入。请注意,这是在ReLU层之后执行的,这意味着所有值都是无符号正数。算法1加权平均输入比特长度b,预训练权重W,块大小B1:程序QUANTIZE 2:m<$2b−1−13:对于所有B区,执行以下操作:2019- 05 - 22 01:01:02(|W|)5:s←m/wm6:对于B中的所有wi,7:wq←round(wi·s)互相影响,互相抵消对方然后,目标变为获得最低尾数比特数b和块大小B的最大值的最大准确度。3.3. 推理在推理过程中,硬件可以利用VQK和尾数张量是低位整数值的事实B−18:=ww/B−1w2操作而不是浮点操作。数据i=0时返回k,Wqiqii=0qi路径如图3所示。首先,对VQK和尾数张量的每个块进行点积,从而各自产生一个值。所有图2显示了我们的激活量化方法。对于给定的尾数宽度,激活张量被分成块,并且对于每个块,我们找到最大指数。移位块中所有其他激活的尾数值,使其匹配最大指数,然后裁剪(使用½ LSB舍入)以匹配指定位数。这导致两个十:尾数张量,其具有与原始张量相同的形状,但填充有b位;以及指数张量,其大小为(C o,<$Ci<$,H,W)。我们称之为BFP方法,因为我们基本“sharing” the exponent for each block of size 这允许控制量化的粗糙程度,以及我们愿意接受多少裁剪误差以获得尾数张量的最低位长。这种方法还有一个额外的好处,即允许在权重和激活之间进行低位整数运算,如我们在§3.3中所示。因此,效率和计算速度之间的权衡如下:B值越大,裁剪误差越大,但指数张量和KDS越浅。这是与比特数b不同的折衷,这增加了更多的计算复杂性和对尾数十的存储b和B的值则成反比这些操作中的一个可以在低位定点算术中进行,这节省了大量的处理时间。在块乘法结束时,结果是与指数张量和KDS大小相同的张量通过将指数张量的值添加到KDS张量值的指数,将指数张量与KDS张量合并。这将产生具有相同大小的浮点数的张量。最后,这个张量乘以VQK和KDS的乘积的结果,并产生一个浮点数作为输出激活。请注意,推理与标准卷积一样高度可并行化,但不是使用浮点运算执行大多数乘法,而是大多数乘法可以由整数乘法代替,从而节省能量、带宽和计算时间。这也意味着,对于每个权重和激活乘法,块的数量与总浮点MAC操作的数量成比例批量归一化折叠。与[23]类似,我们执行“folding”在拥有它们的模型中。由于批量归一化已被证明可以改善训练(参见[22]),因此我们在训练阶段保留它,并且仅将其折叠用于推理。5153BB图3.正在执行的卷积示例,VQK张量(蓝色)乘以尾数张量(红色)的一部分。VQK的每个块与尾数张量的每个块执行点积结果是深度等于块深度数量的张量指数张量执行KDS的指数值的相加,并且结果乘以VQK和尾数张量的点积的结果,并且这成为最终输出激活。对每个过滤器执行此操作当折叠BN参数时,我们使用KDS这样做,因为它们是每个通道唯一的并且使用FP32值。我们使用以下等式执行折叠:使 用ReLU STE, 因为 它在 [37]中 显示 ,它 比 使用Identity STE提供然后,梯度也在“阴影”FP32模型中累积折叠的ξγ=σ2+(七)我们使用ADAM优化器[24],初始学习率为10−5,在损失平台之后,该速率会改变−6到10. 所有其他超参数和数据增强b褶皱 =β−γµbσ2+σ(八)详情见各自的原始文件。我们使用960张图像(30批,共32张)进行验证其中,参数γ、σ、β、μ如[22]中所定义,β是KDS张量,bfold是DSConv的结果偏差。3.4. 非标记数据自适应蒸馏通常情况下,未标记的数据可能是可用的,如大量可用的无监督学习方法所示。对于这个特定的场景,我们采用类似于[19]的我们使用蒸馏损失没有标记的数据,试图回归FP32模型的量化,通过使用FP32logits作为目标,并最小化回归损失。我们创建了一个“影子”模型,它保存单精度数字。在每次推理之前,将该模型量化为VQK和KDS,执行推理并计算梯度。在更新阶段期间,将梯度累积为单精度数,并且执行该方法直到收敛。在每次推断之后量化激活图将导致梯度在任何地方都为零。为了避免这个问题,我们使用直通估计器(STE)[5,37]来计算向后梯度。特别是,我们数据集进行蒸馏,我们使用其余图像(总共49,040张图像)测试准确性。4. 实验和结果我们在各种神经网络架构上测试了我们的方法:ResNet [18]、AlexNet [27]、GoogleNet [34]和DenseNet[20]。我们在Ima-geNet数据集[13](更具体地说是ILSVRC 2012)上对我们的结果进行了基准测试,该数据集在训练集中有120万张图像,在验证集中有50 k张图像。报告的结果使用从验证集中提取的图像。我们测试了我们的算法在介绍中指出的所有任务。本节继续如下:§4.1找到了DSConv的理论计算节省; §4.2显示了没有训练或自适应的结果; §4.3显示了模型与未标记数据相适应时的准确度;和§4.4,为了与传统方法进行比较,显示了使用标记数据在DSConv中进行再训练的结果。4.1. 区组大小的理论计算负荷传统上,计算负载被报告为计算所需的MAC操作数量5154B完成算法。我们注意到两个警告:整数MAC远没有FPMAC复杂,并且当由硬件实现支持时,可以比FP操作更快地运行数量级[26];我们的方法还依赖于动态创建尾数张量和指数张量的能力(VQK和KDS是静态创建的,所以这里不考虑它们这需要MAX、SHIFT和MASK操作。这些可以在具有很少时钟周期的定制硬件中高效地实现因此,我们将重点比较INT与FP操作的数量,以评估使用该方法的优势。为了使我们的方法比正常卷积更快,执行INT操作所花费的时间必须小于FP32操作所花费的时间。该差是块大小和信道参数的函数等式9示出了INT操作的时间与FP操作的时间之间的关系:Ci−Ci比普通卷积更少的浮点运算。例如,对于128到256的块大小和大于256的通道大小,DSConv可以比正常卷积快两个量级。4.2. 再培训或调整前的准确度我们的方法旨在通过从预先训练的网络量化,即使在训练数据不可用时也能产生准确的结果准确度(%@Top1和Top5)Tint≤ TFPBCi(1 + η)(九)值Tint和TFP分别捕获执行INT和FP操作所需参数η是“理想性”参数,其表示与正常卷积算子相比执行DSConv的还要注意,如果Ci可被B整除(这是十分之一的情况),则等式9变得与信道大小无关并且简化为:1 −1T int≤ T FPB,如果B |C i(10)1+η表2显示了当η=0时,实验中最常见的块大小的比率1−1。可以看出,如果计算INT值的时间小于0。75的时间来计算浮点运算,则所有块大小大于4的卷积比普通卷积快。这种情况往往是可能的。例如,在现代CPU和一些GPU中,8位操作可以比FP32操作快10倍[26],并且较低位操作在定制硬件(如FPGA)中可能甚至更快。在定制软件中,小于8位的操作通常也更快。块48163264128比0.750 0.875 0.938 0.969 0.984 0.992表2.块大小和所需速度比的关系块大小B对DSConv可以比传统卷积算子快多少施加限制。自然地,DSConv可以比传统卷积快最多min(Ci,B)倍,因为它具有min(Ci,B)倍准确度(%@Top1和Top5)块位(W/A)GoogLeNetVGG19密集121-32 /3267.6 88.372.4 90.974.4 92.02568 /3267.6 88.372.3 90.974.4 92.01286 /3267.1 88.072.4 90.974.2 91.8164 /3263.3 85.472.1 90.772.9 91.242 /3227.6 51.169.4 89.062.7 84.4128八月八日67.6 88.372.3 90.974.4 92.01286 /667.1 88.072.4 90.874.2 91.864五分之五65.5 86.872.3 90.873.8 91.6164 /863.3 85.472.1 90.772.9 91.2表3.快速推断和压缩的准确性,没有数据作为位宽(权重和激活)和块大小的函数。表3的第二行和第五行表明,对于压缩和快速推理问题,即使使用非常高的块大小,8位网络也不会损失准确性,正如之前的论文和实际应用所证明的那样[26,16]。结果还表明,压缩到4位(在256通道大小输入的卷积中将产生5倍压缩率),根据架构的不同,精度仅下降1%至2%。还可以看出,非常低比特的量化变得明显不稳定,随架构变化很大。在极端情况下,使用2位,GoogLeNet的损失高达-40%,ResNet 50的损失仅为-11%。最后四行显示了快速推断问题的结果。如之前的研究论文[26,16]所述,8/8位模型仅损失约0.1%的准确度。对于5/5和4/4的模型,我们得到的准确度下降了1%到3%。据我们所知,这是最小的一点-块位(W/A)ResNet50ResNet34ResNet18-32 /3276.1 92.973.3 91.469.8 89.02568 /3276.1 92.973.3 91.469.7 89.01286 /3275.9 92.873.2 91.469.5 89.0164 /3275.1 92.372.6 91.067.7 87.842 /3265.1 86.266.8 87.659.1 81.7128八月八日76.1 92.973.3 91.469.7 89.1646 /675.9 92.873.2 91.469.6 89.064五分之五75.4 92.672.7 91.068.9 88.55155当模型既不重新训练也不适应时,已经报告了快速推理的宽度关于架构的变化表明,5位或更少位的量化是不稳定的。然而,即使对于8位精度的快速推理,它也可以在全精度模型的1%内获得稳定关于块大小的准确度表4显示了关于块大小的准确性该表显示了仅量化权重的结果,其中括号中的数字自然地,这表示存储器和计算负载与网络精度最大的块25612864321684ResNet50(4)73.073.573.874.775.175.475.6ResNet50(3)44.651.959.667.469.673.674.7中文(简体)70.870.871.571.972.672.872.9中文(简体)59.560.463.666.869.270.671.6GoogLeNet(4)52.557.059.161.763.365.666.5GoogLeNet(3)5.722.437.640.349.256.862.5VGG19(3)67.668.669.570.471.171.671.8VGG19(2)11.3 21.838.155.563.167.569.4表4.与压缩块大小有关的精度无可用数据的病例。在使用3或2位权重的模型中可以看到精度的差异例如,当块大小从256变为8时,3位的GoogLeNet模型将其Top1精度从5.7%提高到56.8%。当使用4位量化方案时,块大小的减小实现了在全精度网络的1%至2%内的精度水平例如,对于块大小为16至32的大多数网络,情况就是如此。4.3. 使用未标记数据调整的准确度表5中报告了用额外的未标记数据调整我们的网络时的结果。对于每个块位配置,报告两个结果:在顶部,我们示出了自适应之前的结果,而在底部(粗体)示出了使用未标记数据的自适应之后的结果。该策略将仅使用4位用于权重和激活的推理精度提高到网络的FP32精度的2%以内,即使对于使用128作为块大小的极端情况也是如此。对于3位,即使我们恢复高达30%的精度,仍然有一个相当大的差距之间的低位精度和全精度的。对于ResNet50,这一差距为6%,而对于GoogLeNet,这一差距可能达到10%。表6显示了使用校准的最新论文(在文献综述中介绍)的结果。这在精神上与我们的适应阶段相似,因为这两种方法都只使用未标记的数据。值得注意的例外是,我们使用蒸馏将全精度模型转换为低精度模型,而其他方法通常准确度(%@Top1和Top5)块位(W/A)ResNet50ResNet34ResNet18 GoogLeNet32四分之四74.1 91.8 71.371.890.290.666.468.387.188.161.266.181.987.274.8 92.164四分之四73.0 89.8 70.971.888.490.666.168.485.188.158.465.279.386.874.8 92.1128四分之四72.6 89.6 70.271.387.990.565.867.584.887.855.864.777.386.374.2 92.032三分之三63.3 85.0 63.269.685.089.455.366.878.487.534.560.060.583.372.6 91.164三分之三54.4 77.9 58.169.181.389.330.165.851.687.029.356.753.981.071.5 90.4表5.对于提供适配数据集的情况,各种架构的适配结果只校准最佳的削波策略。可以看出,即使使用64的大块大小,我们也实现了更好的性能。据我们所知,这是仅使用自适应数据进行快速推理所获得的最佳结果。VGG16 AlexNet ResNet18 ResNet50W A Top1 Top1 Top1天真[4]4 829.0%百分之一点八百分之零点八百分之零点四CW [4,26]4 8 百分之七十点二百分之五十二点九百分之五十九点三百分之七十二点四K+B [4]4 8 百分之七十百分之五十四点七67.0%百分之七十四点二OCS+MSE [39] 5 8---百分之七十三点四Ours NA(16)4 8 71.3%百分之五十五点九67.6%百分之七十五点一Ours NA(32)4 8 71.2%百分之五十五点四66.7%百分之七十四点七天真[4]8 4 百分之五十三点九41.6%53.2%百分之五十二点七KLD [4,1]8 467.0% 百分之四十九点六65.1%70.8%ACIQ [4]8 4 百分之七十点五55.2%68.9%74.8%Ours NA(16)8 4 71.5%百分之五十六点四69.6%百分之七十五点七Ours NA(32)8 4 71.5%百分之五十六点四69.6%百分之七十五点六5156天真[4]4 4 百分之二十三点七百分之一点八百分之零点六百分之零点四ACIQ [4]4 468.9%53.0%65.3%百分之七十二点六OMSE+O [8]4 4-百分之五十四点五67.4%百分之七十二点六我们的(64)4 4 71.1%55.8%百分之六十八点四74.8%表6.我们的方法与以前的论文的适应。Naive方法指的是简单的裁剪。CW是在[36,26]中采用的智能量化。K+B是[4]的K-Means + Bias方法。KLD是在[1]中首次提出的KL-发散方法。OMSE+O是[8]的OMSE +偏移方法。“Ours NA” refer toour method with No4.4. 标记数据重新训练后的准确度我们还将DSConv与以前使用标记数据(文献中的绝大多数)重新训练/微调的方法进行了比较。训练与适应类似,但现在我们使用标记数据,并在分类错误中使用交叉熵损失,而不是使用logits。表7显示了ImageNet在各种架构上的结果。由于许多以前的论文报告不同的初始FP精度相同的架构,我们也在-5157ResNet 18 ResNet 34W A Top1 Top5 W A Top1 Top5FP32 32 69.6 89.2FP32 32 73.3 91.3[38]第三十八话32 32 70.3 89.5[38]第三十八话32 32 73.8 91.4BWN [32]1 32 60.8 83.0我们的(32)3 3273.490.1TWN [28]2 32 61.8 84.2我们的(32)4 3273.690.1TWN [28]2 32 65.3 86.2 HWGQ [6] 12 64.3 85.7TTQ [41]2 32 66.6 87.2我们的(64)14 68.2 86.8LQ [38]2 32 68.0 88.0美国广播公司[29]33 66.7 87.4我们的(32)23268.7 86.7美国广播公司[29]55 68.4 88.2LQ [38]3 32 69.3 88.8我们的(16)44 73.0 89.7我们的(32)33269.7 87.5LQ[38]12 66.6 86.9LQ [38]4 32 70.0 89.1LQ [38]22 67.8 89.1我们的(32)43270.0 87.6LQ [38]33 71.9 90.2XNOR [32]1 1 51.2七十三点二 我们的(16)3372.7 89.6[40]第40话[40]第40话第40话第40话我们的(32)14 65.2 86.2W A Top1 Top5HWGQ [6]12 59.6 82.2FP32 32 76.0 93.0美国广播公司[29]33 61.0 83.2[38]第三十八话32 32 76.4 93.2美国广播公司[29]55 65.0 85.9LQ[38]2 32 75.1 92.3我们的(128)55 70.0 89.3我们的(32)2 3275.292.6LQ [38]12 62.6 84.3LQ[38]4 32 76.4 93.1LQ[38]22 64.9 68.2我们的(128)4 3276.493.0LQ [38]33 68.2 87.9 HWGQ [6] 12 64.6 85.9我们的(16)33 69.2 88.9美国广播公司[29]55 70.1 89.7LQ [38]44 69.3 88.8LQ[38]12 68.7 88.4我们的(64)44 69.8 89.2LQ[38]22 71.5 90.3我们的(32)22 72.5 91.2DenseNet121LQ[38]33 74.2 91.6W A Top1 Top5我们的(32)33 75.2 92.4FP32 32 75.0 92.3LQ[38]44 75.1 92.4[40]第四十话 2 67.7八十八点四 我们的(64)4476.2 92.9[38]第三十八话 32 32 75.3 92.5我国(128) 4 476.1 92.8LQ [38] 2 2 69.6八十九点一FPOurs32 32 74.4 92.2 GoogLeNet我们的(32)2 3274.0 91.8W A Top1 Top5我们的(16)2 2 72.1 90.6FPHWGQ[6] 32 32 71.4 90.5HWGQ [6] 1 2 63.0 84.9AlexNet[38]第三十八话32 32 72.9 91.3W A Top1 Top5LQ [38]1 2 65.6八十六点四FP32 32 57.1 80.2LQ [38]2 2 68.2八十八点一TWN [28]2 32 54.5 76.8FP我们的32 32 67.6 86.3[38]第三十八话32 32 61.8 83.5我们的(32)4466.3八十五点五LQ[38]2 32 60.5 82.7我们的(64)4465.7八十五点一FP我们的32 3256.6 79.1我们的(32)2 3255.0 78.1表7.各种架构的再培训结果。数据来源于[38]包括单精度结果的初始FP,以进行考虑架构本身“上限”的评估从结果可以看出,我们的方法可以在各种情况下击败最先进的方法,只要适当调整块大小,更加强调准确性而不是速度。5158DSConv在使用4或5位大小时可以击败最先进在这些情况下(例如ResNet 18使用5/5,ResNet 50使用4/4和GoogLeNet使用4/4),我们也使用较大的块大小,当使用B=128和位大小为5/5时,比ResNet 18中的FP效率略好,当使用B=64时,位大小为4/4。为了获得3位或更少的最新结果,需要更低的块大小。这是针对DenseNet121结果显示的,它使用位宽2和块大小16来获得72.1%的准确度。极低的位权重和激活不能很好地工作,因为量化中较低的信息损失对应于较高的准确性的假设开始被打破。这得到了以下事实的支持,即用于1位和2位权重的最先进方法是从头开始训练的,这表明对于这些情况,从预先训练的网络进行量化并不理想。我们也表现出良好的结果压缩的情况下。具有4位和B=128的ResNet50示出了没有观察到精度损失,并且即使仅使用2位,使用B=32时精度保持在1%以内。5. 结论我们介绍了DSConv,它提出了一种替代卷积运算符,可以实现最先进的结果,同时将模型量化到最多4位的权重和激活,而无需重新训练或自适应。我们表明,我们的方法可以实现最先进的结果,而无需在小于8位的设置重新训练,这使得它可以快速推理和更低的功耗,快速部署在自定义硬件。通过具有可由块大小超参数调整的优点,并且不需要任何训练数据来运行,我们提出该方法非常适合于任何类型的卷积神经网络的加速。当使用未标记的数据和从FP32模型中提取时,我们可以使用4位的权重和激活来实现不到1%的损失。此外,如在先前的方法中,我们证明了在权重量化中较低的信息损失对应于较高的推理准确度的假设在这些情况下,重新训练似乎是不可避免的,因为它们与更高精度的模型有本质的6. 确认这项研究得到了英特尔(Omnitek)的部分支持,我们感谢可编程解决方案部门的同事Victor AdrianPrisacariu要感谢欧洲委员会项目多行为者虚拟Em-pathetic CARegiver for the Elder(MoveCare)。5159引用[1] NVIDIA TensorRT.http://on-demand.gputechconf.com/gtc/2017/presentation/s7310-8-bit-inference-with-tensorrt.pdf。2019-09-06.[2] Mart´ın Abadi,Ashish Agarwal,Paul Barham,EugeneBrevdo,Zhifeng Chen,Craig Citro,Greg S. Corrado,Andy Davis , Jeffrey Dean , Matthieu Devin , SanjayGhemawat , Ian Goodfellow , Andrew Harp , GeoffreyIrving , MichaelIsard , YangqingJia , RafalJozefowicz,Lukasz Kaiser,Manjunath Kudlu r,JoshLev enbe r g , DanjayMa ne' , RajatMon g a , SherryMoore ,Derek Murray ,Chris Olah , Mike Schuster ,Jonathe Shlens,Benoit Steiner,Ilya Sutskever,KunalTal war , Paul Tucker , Vincent Vanhoucke , VijayVasudevan,费南达,奥里奥尔,沃登,马丁,魏克,余元,郑小强. 张量-流量:异构系统上的大规模机器学习,2015年。软件可从tensorflow.org获得。[3] 吉米·巴和里奇·卡鲁阿纳深网真的需要深吗?在Z.Ghahramani,M.威灵角Cortes,N. D. Lawrence和K. Q.Weinberger,编辑,神经信息处理系统进展,第2654-2662页。Curran Associates,Inc. 2014年[4] Ron Banner,Yury Nahshan,Elad Hoffer,and DanielSoudry.用于快速部署的卷积网络的训练后4位量化,2018年。[5] YoshuaBengio , NicholasL e'onard 和 AaronCourville 。Estimating or propagating gradients through stochasticneurons for conditional computation,2013。[6] 蔡兆伟,何晓东,孙健,努诺. 通过半波高斯量化进行低精度深度学习2017年IEEE计算机视觉和模式识别会议(CVPR),2017年7月。[7] 陈文林、詹姆斯·威尔逊、斯蒂芬·泰里、基利安·温伯格和陈益新。用散列技巧压缩神经网络。国际机器学习会议,第2285-2294页,2015年[8] Yoni Choukroun,Eli Kravchik,and Pavel Kisilev.神经网络的低位量化以实现有效的推理,2019。[9] E. 郑 俊 华 , J. Ovtcharov , M. Papamichael , A.Caulfield,T.马森吉尔湾Liu,L.罗,S。阿尔卡莱湾Haselman,M.阿贝代拉湖亚当斯,H。安热帕特角博恩,D. Chiou,O. Firestein,A. Forin,K. S.加特林,M. 甘地,S.万岁K Holohan,A. El Husseini,T.尤哈斯湾卡吉河Kovvuri,S.Lanka,F.van Megen,D.Mukhortov,P.帕特尔湾Perez,A. Rapsang,S.莱因哈特湾Ro
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功