没有合适的资源?快使用搜索试试~ 我知道了~
12247×何时修剪?早期结构修剪政策沈梅英,帕夫洛·莫尔恰诺夫,尹洪旭,何塞·M.阿尔瓦雷斯NVIDIA{mshen,pmolchanov,dannyy,josea} @ nvidia.com摘要修剪可以显著减少网络的存储空间和时间复杂度。传统的训练后修剪技术倾向于有效的推理,而忽略了训练的繁重计算。最近的探索预训练修剪在初始化提示训练成本降低通过修剪,但遭受显着的性能下降。我们试图结合这两个方向的好处,并提出了一个政策,修剪尽可能早地在训练过程中,而不损害性能。我们的方法不是在初始化时进行修剪,而是利用几个时期的初始密集训练来快速指导架构,同时通过神经元重要性排名不断评估主导子网络这揭示了结构变得稳定的主导子网络,允许将传统的修剪更早地推进到训练中。为了尽早做到这一点,我们进一步引入了早期修剪指标(EPI),它依赖于子网络架构的相似性,并 在 子 网 络 架 构 稳 定 时 快 速 触 发 修 剪 。 通 过 在ImageNet上进行的大量实验,我们表明EPI能够快速跟踪适合修剪的早期训练时期,提供与扫描时期的“oracle”网格搜索相同的功效,并且需要多几个数量级的计算。我们的方法产生1。与最先进的修剪同行相比,前1精度提高了4%,将GPU上的训练成本降低了2。4,从而为训练过程中的网络剪枝提供了一个新的效率-精度边界。1. 介绍卷积神经网络(CNN)的成功推动了计算机视觉的最新进展,提高了分类,检测和分割任务的性能[16,35,37]。在享受CNN带来的准确性好处的同时,网络复杂性的同时增加会带来更高的内存占用和计算功耗,使得在资源受限的设备上部署CNN成为一项具有挑战性的任务[7,29,30]。代替图1.修剪范例概述。训练-修剪-微调修剪训练后,有效,但成本额外的训练时间; Prune-at-Training在训练之前进行修剪,以形成更小的网络,减少了训练时间,但性能明显下降;Pruning-aware-Training(我们的)在训练期间进行修剪,旨在从两个世界中获益。它控制修剪后的性能,同时旨在最大限度地减少训练时间,通过围绕早期修剪指标(EPI)的新策略,在训练期间发出早期最佳点的信号计算密集型网络,最近的工作转向压缩技术,用于利用prun- ing [3,15,25,29],量化[5,43,46],知识disc,tillation [19,31,45],神经架构搜索[38,41,44],和架构重新设计[21,28,39]。其中,prun- ing被证明是一种广泛采用的方法,在部署之前压缩预训练的模型修剪的主要目标是在不影响准确性的情况下删除不重要的网络参数。特别地,结构修剪移除整个滤波器(或神经元),因此所得到的结构稀疏性有益于传统的现成平台,CPU、DSP和GPU。一般来说,网络修剪涉及三个关键步骤:(i)高精度的密集模型的原始训练,(ii)修剪掉不重要的权重以去除冗余,最后(iii)微调修剪后的模型以恢复每一个节点[15,26,30]。尽管最后两步实现了显著的紧凑性,但过度参数化网络的原始训练仍然基本上未受这种方法需要两倍长的时间(资源)作为原始训练配方,给出了类似的精细计算所需的计算12248调谐,使整个管道缓慢,有时infasi- ble。例如,最近在语言建模方面的一项突破,即GPT-3模型[4],仅用于初始训练就需要数百万美元(超过300个NVIDIAV100 GPU年)。已经意识到训练后的冗余,一个有趣的问题出现了-我们是否可以在初始训练期间以某种方式修剪网络,因此产生的稀疏性可以(i)立即受益于训练,(ii)在训练结束时节省这个问题的一个直观和理想的解决方案是在初始化时甚至在训练开始之前就对网络进行调整。彩票假说[9]的有趣观察暗示了这项任务的潜力:它表明,(i)在一个大的密集模型中存在可通过修剪识别的小子模型,这些小子模型可以(ii)单独训练以达到与其密集模型相同的精度[9,25]。该领域已经迅速发展,最近的方法通过保留损失或梯度流[8,24,42]在初始化时增强了最优子网络的策略。尽管进展迅速,但初始化时的子网络识别方法仍然具有挑战性,并且仍然遭受明显的准确性损失[10,12]。在这项工作中,我们展示了在训练过程中早期修剪的好处和实用性,而不是零训练。这样做允许(i)通过在大多数时间只训练修剪的模型来节省计算,(ii)通过将过程与原始训练对齐来减轻任何额外(iii) 通过稍微晚一点进入用于修剪指导的训练机制来我们将这种方法命名为剪枝感知训练(PaT)。如图1,与初始化修剪不同,PaT充分利用了早期密集模型训练,有利于快速学习和最佳架构探索[1,11],同时旨在尽可能早地识别最佳子网络,而不是像传统修剪那样等到训练结束。要想从PaT的训练效率中获益并节省训练时间,关键在于在训练过程中找到一个较早而又清晰的在训练期间执行修剪的现有方法[3,10,27,33]已经通过减少周转时间显示了该方向的有效性。然而,在大多数情况下,修剪的固定初始间隔是按时间顺序设置的,或者需要训练后统计在这项工作中,我们专注于了解如何修剪的起点可以自动设置。我们首先深入分析修剪架构的演变,通过执行修剪跨越所有时代,并比较其适合修剪。虽然很费力,但这个预言估计提供了训练期间修剪的关键见解我们观察到一个重要的性质:不可知的幅度或梯度标准,(i)修剪在早期时期的结果在不同的最终架构,但(ii)domi- nant架构出现在短短几个时期和sta-此后bilizes,直到训练结束,允许传统的修剪被推到更早的训练。在这样的属性中,我们进一步提出了一种新的指标,称为早期修剪指标(EPI),估计网络之间的结构相似性,导致修剪在连续的时期相同的基础模型。给定在训练期间对模型权重和梯度的内在访问,EPI可以在初始训练的同时非常有效地计算,而无需花里胡哨,同时有助于避免开始时期的其他冗长网格搜索。一旦结果修剪结构将不会在不同时期之间变化,我们认为,并证明它是安全的修剪。作为先前的工作[25],我们观察到,结构修剪作为一种架构搜索,并试图找到每层神经元的最佳数量。因此,我们假设,修剪可以执行形成尽快主导子网络的架构变得稳定。我们证明了所提出的指标适用于不同的网络架构,修剪率,提供一致的减少训练时间。我们的主要贡献如下:• 我们提出了一种新的度量称为早期修剪Indi- cator(EPI),指示在训练过程中开始修剪的早期点。我们的指标使训练能够从稀疏性中受益,显著减少训练资源,精度略有下降。• 我们证明,对于结构修剪(输出通道修剪),初始密集训练燃料的准确性提高。在EPI的增强下,我们的修剪感知训练比初始化时修剪的替代方案表现更好。• 我们表明,EPI是不可知的修剪方法,通过显示基于幅度和基于梯度的修剪的功效,使一个新的国家的最先进的边界,通过原位修剪训练加速。2. 相关工作网络修剪。根据何时执行修剪,主流修剪方法可分为三类:1)训练-修剪-微调,2)在初始化时修剪,以及3)在训练时修剪。第一组,train-prune-finetune,在密集的预训练网络上执行修剪,然后微调结果结构以恢复修剪造成的性能损失。有许多方法旨在保持最终精度[17,29,30]并最小化每层的输出变化[18,26]。这些工作的一个重点在于确定冗余连接,其删除带来的干扰最小的整体性能。虽然在测试时能够实现合理的性能并提高效率,但上述方法还不能为训练带来任何效率益处。相反,大多数食谱的结果几乎是训练时间的两倍12249R F− P←RP←P∈|P| ≤ |F|l=1--i=1N{F}l=1l=1FPR PRO我∈--P {P} R {R}需要长时间的微调。在彩票假设[9]的支持下,在初始化方法上进行修剪,质疑密集训练对性能收敛的必要性[25]。SNIP [24]是这一领域的先驱,它是一种在初始化时识别可训练子网络的方法。随后,已经提出了其他方法,如FORCE [8],GraSP [42]或SynFlow [40]来提高性能。这些方法使训练更有效,因为它们只训练稀疏网络。然而,在初始化时修剪的可靠性仍然不令人满意,面临不可避免的性能差距[10]。通过在训练效率和最终准确度之间找到一个平衡点,在训练方法处于中间时进行修剪。文献分为两个流向这个任务:a)基于正则化的方法,在训练过程中鼓励稀疏性[3,13,27],以及b)通过显着性丢弃冗余的子票选择方法[2,14,17]。我们的工作属于后者,因为它的功效是迅速执行修剪率和训练过程中易于控制。在这个领域中,一条工作线在训练过程中学 习 子 网 络 [3 , 27 , 33] 。 其 他 人 , 如 Frankleetal.[10],研究在修剪之前需要很少的训练迭代以最大化性能。这些方法很难自动识别可以执行修剪的起点,同时严重依赖于手工制作或训练后的决策。网络相似性。我们的策略探讨了网络相似性的两个子网络所产生的修剪。[23]中对网络相似性度量进行了全面综述这些方法旨在比较具有不同初始化的两个完全训练模型之间的表示,因此不适用于训练中的修剪测量,其中权重和主导架构算法1一个时期1:对于修剪比α,通过指数调度器[8]调度每步修剪的神经元数量,形成mRS2:当α为3:通过(2)或(3)在多个小批次上计算的平均重要性4:是mi个排名最低的神经元5:W0删除修剪的神经元6:=剩余的神经元7:更新W;i i+ 18:结束时NLP模型中,还研究了网络相似度来指导剪枝。然而,它使用掩码汉明距离来度量子网络的相似性。这需要在子网络之间固定完整的修剪掩码,选择完全相同的神经元,从而削弱了灵活性。3. 方法接下来,我们详细阐述我们的早期剪枝算法3.1. 目标函数考虑一个有L层的神经网络,每一层由其权重WlRCl×Cl×Kl×Kl指定,K是内核大小,CI和CO分别是输入和输出通道/神经元的数量。总而言之,这些参数形成网络的参数集W=W1L。 给定由N个输入-输出对(xi,yi)N组成的训练集,在滤波器稀疏性约束下学习网络的参数可以表示为求解以下优化问题:argmin1π(y,f(x,W))+r(W),s.t.|P|≥ α都在改变为了获得Pruning的结构相似性,我们关注的是整个神经元中剩余的神经元数量。i=1|F|(一)网络中的一个层与另一个层进行比较。使用系数的这些骨架之间的差异可以通过Spearman[ 36 ]和Kendall的tau直接测量[22] rank correlation.然而,这些等级相关性符合-其中,f(·)表示将网络预测与地面实况进行比较的损失函数,f(·)对网络变换进行编码,r(·)是作用于网络参数的均衡器,α是目标修剪率。F=rics考虑到具体的排名,更重要的是,L ll=1 表示所有神经元的索引集,然而,它们将依赖于网络中的所有神经元因此,它们为所有修剪比率提供相同的值。与这项工作特别相关的是[10] Frankle等人。提出了一种方法来衡量网络结构的不稳定性,以了解修剪的可行性。这项工作的一个值得注意的发现表明,执行迭代幅度修剪往往是在一些初始训练之后。有趣的是,它识别了模型不稳定性和修剪网络的准确性之间的关系,尽管该方法提出的不稳定性度量只能在训练完成后测量,因此仍然不足以直接发出信号,何时开始在训练期间修剪。EarlyBERT [6],a work on网络该索引集可以分为两个不相交的集合=Ll和=.L,分别表示修剪的和剩余的神经元的索引集。 我们有=和= PaT 包括三个阶段:密集训练、网络修剪和稀疏训练。 在初始密集训练期间,使用网络f(x i,WF)中的所有滤波器来计算向前/向后传递。 而在稀疏训练期间,向前/向后传递仅使用剩余的神经元f(x i,WR)。类似于[29,30],我们遵循在一个时期内完成的迭代修剪更准确地说,如算法1所示,该过程包括以下两个步骤。首先,在每次训练迭代中,我们我我12250Ll我××nnnNNnnnn2个Pl,I..根据修剪准则计算每个神经元的重要性度量。与此同时,我们继续更新网络权重正常.然后,在每个修剪步骤中,我们得到所有神经元的平均重要性得分,然后删除重要性值最小的神经元。每个修剪步骤都是在看到多个训练批次后进行的,通常几百个批次就足够了[29]。请注意,虽然包含几个快速交互步骤,但整个修剪可以在一个训练时期内非常快速地完成。为了全面,我们考虑文献中的两个流行标准-基于幅度和基于梯度的神经元重要性排名方案:基于幅度的准则使用神经元的l2衡量神经元相关性的权重:I=||W||中文(简体)图2.不同子网的结构。彩色圆圈和实线是活跃的神经元和连接。子图(a)、(b)和(c)是左边原始网络的三个不同子网络。虽然这些子网络具有相同数量的神经元,但子网络(b)和(c)具有更高的相似性。在参数空间中具有大梯度幅度的运动。这为初始网络收敛和快速准确性提升生成了丰富的信息。 有了这样的事实,早期修剪的直观选择可以是分析网络在不同训练阶段逐渐为底层任务选择的重要神经元的出现,然后立即修剪不重要的神经元。n n考虑到其对权重和梯度的固有访问,训练-其中P1=C1K1K1表示层1处每个滤波器的参数的数量,并且n指定W1内的输出神经元索引。这种归一化确保了来自不同大小的不同层的神经元的可比性[3]。基于神经元的准则考虑了损失变化的泰勒展开来近似神经元的重要性。最初,Molchanov等人。[30]提出将重要性估计为梯度激活产物的大小,最近,SNIP [24]和FORCE [8]将该想法扩展到参数水平。具体地,使用泰勒展开的神经元的基于梯度的准则可以被定义为:ing允许人们以非常少的额外计算快速地对所有神经元进行全局这使得网络能够从经验上观察到的信息丰富的架构空间快速了解问题[16,20,37],同时我们可以非常有效地跟踪架构收敛。为此,我们在每个训练时期之后检查由前k个最重要的神经元根据所选择的修剪标准全局指定的子网络。与最终的中奖彩票接近但不同,中间体有助于识别主导神经元,但仍然不如其最终版本那么强大,同时在我...Σw∈Wl g w w. 、(3)ing训练。然而,正如我们稍后将展示的那样,这种子网络的架构在最初几个时期迅速变化,然后令人惊讶地显示出此后的最小变化其中gw是权重w的梯度。度量估计的损失函数的近似变化,一旦神经元被删除。正如[29]中所建议的,对于使用批量归一化的网络,应用修剪的最佳方式是在批量归一化层上,而不是直接使用卷积滤波器此外,去除信道的损失可以通过可学习的尺度和移位的累积效应来近似:l=gγlγl+gβlβl,其中γ和β是批量归一化层的权重和偏差,分别我们根据经验观察到,在训练期间使用L1进行修剪,而不是像[29]中那样使用原始的L2进行训练后修剪,效果略有改善。3.2. 关于Early Pruning回想一下,我们的目标是最大化网络的准确性,同时最小化训练所需的计算。这种计算通常由执行密集训练的时间量决定。我们越早修剪网络,完成训练所需的资源就越少。正如先前的工作[11]和我们的经验观察,神经网络训练的早期阶段会产生快速剩下的时代。知道利用这种快速收敛到稳定和缓慢变化的主导子网络之后,我们认为和证明修剪可以开始早在其Top-k子网络稳定。接下来,我们将探索网络相似性以表明这种稳定性。3.3. 早期修剪指标(EPI)我们研究了主导子网络之间的结构相似性,以量化训练过程中的架构变化在全局神经元修剪方案下,仅仅使用修剪比率作为指导对于这项任务来说是不够的:每个修剪比率可以很容易地由多个变体来满足,每个变体共享相同数量的神经元,而结构不同(参见图11中的示例)。2)。作为替代方案,我们检查每个修剪网络的所有层上剩余神经元数量的分布。考虑两个子网络1和2在相同的修剪比下包含相同数量的剩余神经元。设n(1,l)和n(2,l)分别为网络N1和N2中第l 然后设置{n(1,1),n(1,2),· · ·,n(1,L)}描述了12251FF←←R|F|PRl=1N N ≤≤n(N1,N2)=1−Ll=1dl(N1,N2),Rj=1不子网络N1,并且对于N2也类似。对于第l层,我们将N1和N2之间的归一化差定义为d(N,N)=|n(1,l)− n(2,l)|、(四)算法2修剪感知训练(PaT)输入:具有随机初始化权重W,0,稳定性阈值τ,修剪比率α,总时期T的网络,如原始配方输出:修剪结构R;训练权重WR,Tl12n(1,l)+n(2,l)1:强制执行epoch状态∈ {密集,修剪,稀疏}2:epoch状态←密集产生从0到1的范围。距离越低,层结构越接近。在此之上,我们现在可以构建一个修剪稳定性指标,它结合了网络中所有层的相似性:3:对于时期t = 0,1,. - 是的- 是的,T do4:如果时期状态是密集的,则5:通过梯度下降训练W,t6:获得在该时期7:Get(1−α)|F|排名靠前的神经元形成Nt第8章:你是谁? 等式(六)1ΣL(五)9:如果十:不EPI和EPIEPI然后其中,k的范围为0到1,较低值表示十一:时期状态修剪end if两个子网络之间的高变化,并且高值指示所得网络结构的稳定性。给定修剪稳定性指示符,用于确定何时修剪的算法在算法2中描述。我们首先在每个时期t结束时根据修剪标准计算神经元 让高层k个神经元的重要性得分排序,静态子网络结构Nt={n(t,1),n(t,2),···,n(t,L)}12:否则,如果时期状态是修剪,则13:使用算法1修剪第14章: 得到,更新15:时期状态稀疏16:其他17:通过梯度下降训练W,t18:如果结束19:结束20:返回R,WR,T其中,nLn(t,l)=k,nt,l是74第L层。 然后计算t和t-j之间的子网络结构相似性,其中r是我们希望具有结构相似性的过去时期的范围。我们使用平均结构相似性来反映结构稳定性,即:737271700102030405060708090修剪期EPI =1rN(N,N)的情况。(六)图3.准确度作为修剪时期的函数,用于绿色的修剪感知训练(PaT),以及用于灰色的彩票。ImageNet上的ResNet50。 密版达到77. 百分之三十二这种结构的稳定性得分不断增加,ing训练。当它达到某个阈值τ时,我们可以有把握地说,得到的子网络是可靠的,可以实现良好的性能,我们可以开始修剪。4. 实验接下来,我们用不同的架构和prun- ing方法进行实验在附录中,我们还展示了对象检测任务的适用性。实验设置。我们在ImageNet ILSVRC 2012数据集上修剪了ResNet34,ResNet50和MobileNetV1神经网络架构[34](1)。3M图像,1000个类)。除非另有说明,否则每个修剪使用一个具有8个NVIDIA Tesla V100 GPU的单个节点。所有实验共享原始训练管道,遵循NVIDIA配方[ 32 ]下的Py- Torch混合精度训练,总共90个学习率在线性上预热-在前8个时期的早期,然后遵循余弦衰减,整个训练。我们使用PyTorch分布式数据并行-在128处,针对具有单独的批大小的每个GPU进行lel训练。我们的未修剪模型达到77。ResNet50的32%前1准确率,74。ResNet34和72的36%。使用MobileNetV1时为93%50%-PaT50%彩票假说前1位访问(%)(t≥τ)(t≥t−j)1≤j≤5不t−j12252精度如果修剪在几个训练时期之后开始,则PaT会产生更好的性能。然而,如果修剪发生得太晚,则PaT的准确性显著下降。4.1. 了解早期修剪时期我们从深入理解最终精度的变化作为开始修剪时期的函数开始。为此,我们通过改变起始修剪时期来分析准确性变化,并继续训练到最终时期并检查相关的准确性。在不同时期修剪。图3以绿色显示了在90个epoch的训练周期中,通过使用基于梯度的标准在各个epoch修剪ResNet50上50%如图所示,后期修剪的准确性下降是显著的,因为没有足够的时间用于恢复。我们还观察到,与在初始化时(在时期0时)进行修剪相比,在几个时期之后进行修剪始终会产生更好的性能。然而,对于所有这些实验,与未修剪的上限相比,总是有一定的准确性下降(77。32%)。结构修剪的彩票假说。打赌-为了理解早期训练中使用密集模型而不是修剪模型的作用,我们评估了结构修剪的彩票假设的想法。 我们遵循[9],12253从头开始训练使用原始初始化通过修剪获得的子网络所有的修剪掩码都是从之前的实验中收集的(图1)。(3)第三章。结果以灰色线显示在同一图中。注意,由于修剪算法的迭代性质,对于在0处的修剪,我们在epoch完成时使用掩码。当它在初始化时作为彩票应用时,最终的精度略有不同。从这些结果,我们可以得出结论,在结构修剪的情况下,彩票假说可能不成立。在训练过程中修剪网络比从头开始孤立地训练中奖彩票表现得更好。不同的修剪比例和结构。我们现在仔细看看在训练的早期阶段(图1中的前30个时期)修剪时发生的准确率下降。(3)第三章。图图4示出了分别使用基于幅度和基于梯度的修剪的不同架构的这些结果正如我们所看到的,对于基于幅度的修剪,如果修剪发生得太早,准确性会显著下降,特别是对于大的例如,如果我们在epoch0时修剪ResNet50的50%神经元,这使得网络不可训练,则这种效果特别明显。 这因为修剪比率很大,权重根本没有更新。因此,不可能正确地估计每个神经元的重要性。对于基于梯度的修剪,准确度下降取决于架构。在这种情况下,与基于幅度的修剪相比,初始化时的修剪具有较小的影响。例如,修剪ResNet34或MobileNetV1会导致准确性的最小下降。然而,对于ResNet50,准确性下降随着修剪比率的增加而增加。因此,后期修剪将是优选的,以最大化性能。让4.2. EPI引导剪枝鉴于以前的结果,我们现在证明我们的方法来确定最佳修剪时期的能力因此,在这个实验中,我们将我们的策略与随机策略和随机策略进行比较。对于启发式策略,我们考虑将修剪时期设置为0,这相当于在初始化时进行修剪[8,24]。对于随机策略,我们在训练的早期阶段随机选择一个剪枝时期,即:范围[0,30]。We repeat the random policy experiment 100 timesand report the mean of the results.选择EPI阈值(τ)。我们的方法引入超参数τ,使得当EPI(Eq. 6)到达它,我们可以开始修剪。我们发现,一个普适的值可以用于所有的结构和所有的剪枝率,但它是敏感的剪枝算法。为此,我们对ResNet 50进行了10%-因此,我们发现τ=0。983基于星等修剪的起始时期随机Init. [8、24]预定义[11]EPI(我们的)0. 9403. 6040. 1150. 0910. 2670. 8380. 3530. 1696. wellbet 285比0 1350. 135总体2. 4972.2210.20101320. 992 22. 7380. 2670. 0920. 1530. 12202210. 1950. 1320. 1860. 1100 178整体0。4261. 0150. 1990. 155表1.相对于每个Oracle网格搜索的结果的绝对top-1精度变化,以获得最佳修剪起点。越低越好。Init. 是指在初始化时使用FORCE [8]的结构版本进行修剪,也等同于结构和迭代SNIP [24]。预定义指的是在理论上预定义校准开始时期30,我们凭经验发现最后时期不会导致显著的准确度下降。这与[10]建议在修剪之前等待几次训练迭代一致。剪枝和τ=0。944的梯度修剪效果最好。我们为ResNet50调整了这个值,但是,我们将通过在ResNet34,正文中的MobileNetV1和附录中的SSD上执行测试来展示其普适性。政策比较。选项卡. 1给出了在我们提出的EPI和通用EPI阈值τ的指导下,基于重要性和幅度的剪枝实验结果。我们比较了随机策略和启发式初始化剪枝策略的结果我们报告了与每个网络通过网格搜索实现的最佳准确度相比的平均准确度下降。ResNet 50基于梯度的修剪的值在修剪比率10%我们还报告了使用不同策略来指导行“整体”中的prun时,三个网络的总体平均准确度下降如图所示,我们的政策显然产生了显着更高的性能相比,随机prun-ing。在基于梯度的修剪的情况下,我们的方法与ResNet34和MobileNetV1上的算法相比表现相当。总的来说,我们的方法表现更好,前1精度变化更少。对于基于幅度的修剪,我们的方法产生了显着更好的结果相比,反演算法。最佳修剪时期对于不同的架构和不同的修剪比率是不同的,参见附录以获得对稳定性阈值的敏感性分析。4.3. 培训加速我们还计算了使用我们提出的EPI时的实际训练加速比6)ResNet50基于梯度的剪枝策略和启发式策略。图5显示了政策比较结果。与初始化时的修剪进行比较。与初始化时的修剪(启发式修剪在历元0)相比,我们实现了更大的速度,虽然我们开始修剪后。这是因为结构修剪,在不同时期的修剪可能会导致不同的结构:更快幅度梯度网络12254百分之十百分之二十百分之三十百分之四十百分之五十百分之六十百分之七十Init. [6、20]EPI(我们的)EPI延迟感知(我们的)FLOPS减少(%)↑MobileNetV174727068666462600 5 10 15 20 2530修剪期ResNet347472706866640 5 10 15 20 2530修剪期ResNet5077757371690 5 10 15 20 25 30修剪期(a) 基于幅度的剪枝MobileNetV174727068660 5 10 15 20 2530修剪期ResNet347472706866640 5 10 15 20 2530修剪期ResNet50787674720 5 10 15 20 2530修剪期ResNet50(更大的修剪率)757065605550450 5 10 15 20 25 30修剪期(b) 基于约束的剪枝图4.当修剪发生在训练的早期阶段的不同时期时,修剪后的网络的最终ImageNet Top-1精度。我们观察到,在初始化修剪往往会导致不可训练的网络与基于幅度的修剪方法。对于基于梯度的方法,我们观察到当更多的过滤器被修剪时会发生更高的退化,并且在ResNet50上显示修剪率高达90%。[Pruned Ratio]表示移除的神经元百分比。MobileNetV3上的结果见附录。0方法前1名acc. ↑FLOPs(G)↓起始时期↓列车总数-2-4-6-8-10-12电话:+86-10 - 8888888传真:+86-10 - 88888888列车提速表2.与最先进的训练中修剪方法的比较。为了公平比较,我们在这里报告ResNet34的10%过滤器修剪和ResNet50的40%过滤器修剪作为文献。图5. ResNet50上使用不同修剪策略的不同修剪比率的实际训练速度。实际速度测量的NVIDIA TITAN V GPU在批量大小为64。最好是右上角或者更慢事实证明,在epoch 0处修剪是非常低效的,因为大多数修剪的神经元来自较深层,从而导致慢模型;因此,训练加速并不巨大,并且训练这样的模型比在稍后时期修剪所导致的模型更昂贵。同时,在零处修剪导致更大的精度下降,特别是在大的修剪比率下。延迟感知修剪。我们进一步使用我们的策略应用延迟感知修剪,其目的是减少模型的延迟,而不仅仅是参数的数量。为此,我们通过修剪神经元组导致的延迟减少来惩罚神经元组的显着性。那些需要更大计算量的neurons将具有较低的重要性,因此更有可能被修剪。 如图5、使用EPI延迟感知修剪可以产生更GPU友好和更快的模型。培训成本比较。使用8个NVIDIA Tesla V100 GPU在ImageNet上训练密集的ResNet50需要大约9小时,在AWS上花费约220美元考虑到50%的剪枝率,我们的方法的训练成本是154美元,因为我们实现了高达30%的训练时间减少。相比之下,train-prune-finetune方法的总训练成本约为364美元,因为它们需要90个额外的再训练时期。因此,2. 4倍培训成本降低。4.4. 与最新技术水平的我们还将我们的方法与Ima-geNet数据集上的现有技术进行了比较,并在Tab中给出了结果。二、与GPWP[2]相比,我们的方法精度较低,但FLOPs减少得更多。与PruneTrain [27]相比,我们实现了更高的准确性和更大的训练FLOPs节省。LFPC [17]产生0。67%的精度损失。即使修剪模型中剩余的FLOP更少,LFPC也需要13%的总训练FLOP,因为它需要更多的时间来进行密集训练。总的来说,我们比其他技术更早地修剪此外,虽然其他技术使用算法来定义修剪时期,但我们提出了一种自动度量,该度量使用通用阈值来自动确定早期点。这有助于通过在相同设置下评估先前的方法来创建新的基准协议。前1位访问(%)前1位访问(%)前1位访问量变化(%)前1位访问(%)前1位访问(%)前1位访问(%)前1位访问(%)前1位访问(%)ResNet34GPWP [2]七十三。643 .第三章。08740十三岁8PaT(我们的)七十三。50二、91111二十五6[27]第二十七话74岁73二、303-三十0ResNet50LFPC [17]74岁181 .一、61235三十七212255±±(a) 基于幅度的EPI(b)基于梯度的EPI图6. ResNet架构的结构稳定性分析(a)基于幅度和(b)基于梯度的修剪。虚线示出了在修剪标准下为每个网络选择的EPI阈值MobilnetV1的结果可在补充材料中找到4.5. 消融研究稳定性分析这个实验的目的是为了恶魔-在训练的早期阶段,占主导地位的子网络架构变化很大,并随着训练的进行慢慢收敛到最终架构为此,我们训练不同的架构收敛,并在此过程中,我们计算其EPI分数的子网络在不同的修剪率。图图6示出了分别针对基于幅度和基于梯度的准则的该实验的结果如图所示,EPI分数随着修剪比率的增加而减小。我们还观察到,独立于所使用的修剪方法,稳定性在训练的早期阶段迅速增长,然后在后期阶段继续稳定地增加。这些结果与[11]中的结果一致,表明网络架构在训练开始时发生了显著变化,但在训练结束时没有发生变化。性能与结构相似。我们现在提供经验支持的假设,具有相似结构的子网络也就是说,性能依赖于结构,而不是在修剪期间选择的神经元。我们使用ResNet50并获得在epoch关闭50%神经元的修剪掩码10使用基于梯度的排名。接下来,我们通过在每层中选择不同的神经元,同时保持每层神经元的数量,来获得该掩码的10个变体。结果,我们得到了不同的神经元掩码,但得到了相同的子网络结构.我们训练最初修剪的网络收敛,并获得了73的top1精度。百分之九十八最后,我们评估了训练的性能,以完成使用10个掩码变体修剪的检查点,平均top1精度差异仅为0。百分之三十六。百分之十三我们还随机生成5种掩码变体,这些变体导致不同的子网络结构,这些子网络结构具有大约0的情况。8相似性得分的结构产生的原始掩模。我们得到的平均性能差异为0。百分之五十三百分之三十九请注意,为了进行公平的比较,我们使用相同的检查点进行修剪,以最小化随机性,不同的初始化。从这些结果中,我们可以得出结论,具有相同结构的网络表现相似。结构不同,性能差异较大。与修剪预训练模型相比 在许多实际场景中,人们训练模型(或使用预先训练好的表3. EPI训练期间修剪与修剪预训练模型之间的比较。解决手头的任务。然而,在部署时存在计算或延迟约束。人们可能想从头开始训练一个更小的模型,或者修剪和微调现有的模型。这两种情况都将受益于EPI,如下所示。我们在Tab中比较了训练期间的修剪与修剪3 .第三章。用于修剪预训练模型(从ResNet50加载Pytorch权重,训练90时代,与acc。 七十七。32%),我们做修剪在相同的设置,然后微调90个时期(标记为训练后修剪)。为了进行公平的比较,当我们在从头开始训练的模型上应用EPI时,我们增加了总数量。90+90= 180(EPI列,相等的时期)。我们明显优于修剪预训练的权重,同时节省了计算成本。我们更早地修剪模型,使训练更快。来自EPI的模型可以针对与训练后修剪相同的时钟时间量进行微调,如列EPI所示,等于训练时间。随着模型接受更多时期的训练,这会进一步改善结果。同样,在修剪完成后立即应用EPI可以加快训练速度,而在预训练的基础上进行修剪只会在训练完成后才有好处。5. 结论我们已经引入了一种方法来自动确定何时可以在训练期间执行修剪,而不会影响最终的准确性,并且具有尽早这样做的额外约束为此,我们提出了一种基于早期剪枝指标(EPI)的策略,EPI是衡量子网络结构稳定性我们对多种剪枝算法和剪枝率的实验表明,我们的方法可以减少剪枝网络时的准确率下降,并显著减少训练时间。局限性。 我们的实验主要集中在图像分类和目标检测(在补充材料)。我们将在未来的工作中检查我们的策略对其他学习任务的可推广性。修剪率后整枝EPI,相等时期EPI,相等的训练时间百分之十七十七。百分之十七七十七。69%七十七。74%百分之二十七十六。百分之七十八七十六。82%七十六。83%12256引用[1] Alessandro Ruple,Matteo Rovere,and Stefano Soatto.深度网络中的关键学习期。在2018年国际学习代表会议上。2[2] S. A. Aketi,S. Roy,A. Raghunathan和K.罗伊在使用卷积神经网络的特征相关性分数进行训练时进行渐进通道修剪IEEE Access,8:171924- 171932,2020。三、七[3] Jose M Alvarez和Mathieu Salzmann。学习深度网络中的神经元数量。神经信息处理系统的进展,第2270-2278页,2016年。一、二、三、四[4] Tom B Brown,Benjamin Mann,Nick Ryder,MelanieSub biah , Jared Kaplan , Prafulla Dhariwal , ArvindNeelakan tan ,Pranav Shyam ,Girish Sastry ,AmandaAskell,et al.语言模型是很少机会的学习者。arXiv预印本arXiv:2005.14165,2020。2[5] 蔡耀辉,姚哲伟,董震,阿米尔·戈拉米,迈克尔·W·马奥尼和库尔特·库茨。Zeroq:一种新颖的零拍量化框架。在IEEE/CVF计算机视觉和模式识别会议论文集,第13169-13178页,2020年。1[6] Xiaohan Chen,Yu Cheng,Shuohang Wang,Zhe Gan,Zhangyang Wang,and Jingjing Liu. Earlybert:通过早鸟彩 票 进 行 有 效 的 bert 训 练 。 arXiv 预 印 本 arXiv :2101.00063,2020。3[7] Xiaoliang Dai , Peizhao Zhang , Bichen Wu , HongxuYin , Fei Sun , Yanghan Wang , Marat Dukhan ,Yunqing Hu,Yingming Wu,Yangqing Jia,P Vajda,M Uyttendaele,and Niraj K Jha.ChamNet:通过平台感知模型适应实现高效网络设计。在CVPR,2019年。1[8] Pau de Jorge,Amartya Sanyal,Harkirat S Behl,PhilipHS Torr,Gregory Rogez,and Puneet K Dokania.渐进式去极化:在初始化时从网络中修剪更多的脂肪。arXiv预印本arXiv:2006.09081,2020。二三四六[9] 乔纳森·弗兰克尔和迈克尔·卡宾。彩票假说:寻找稀疏的、可训练的神经网络。2019年国际学习代表会议。二三五[10] Jonathan Frankle,Ginner Karolina Dziugaite,Daniel MRoy和Michael Carbin。线性
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功