(论文翻译)PRUNING FILTERS FOR EFFICIENT CONVNETS

Hao Li∗
University of Maryland
haoli@cs.umd.edu

Hanan Samet†
University of Maryland
hjs@cs.umd.edu

Asim Kadav
NEC Labs America
asim@nec-labs.com

Igor Durdanovic
NEC Labs America
igord@nec-labs.com

Hans Peter Graf
NEC Labs America
hpg@nec-labs.com

摘要

cnn在各种应用中的成功伴随着计算和参数存储成本的显著增加。最近为减少这些开销所做的努力包括在不损害原始准确性的情况下修剪和压缩各个层的权重。然而,基于幅度的权值剪枝会从全连通层中减少大量的参数,由于剪枝网络的不规则稀疏性,可能不能充分降低卷积层的计算成本。我们提出了一种针对cnn的加速方法,在这种方法中,我们从被识别为对输出精度有小影响的cnn中删除滤波器。通过去除网络中的整个滤波器及其连接特征映射,大大降低了计算量。与剪枝权值相比,这种方法不会产生稀疏连接模式。因此,它不需要稀疏卷积库的支持,可以与现有的高效BLAS库一起进行密集矩阵乘法。我们表明,即使是简单的滤波修剪技术,在CIFAR10上也能将VGG-16和ResNet-110的推理成本分别降低高达34%和38%,同时通过重新训练网络恢复接近原始准确性。

1 引言(INTRODUCTION)

ImageNet的挑战使cnn在探索各种架构选择方面取得了重大进展(Russakovsky等人(2015);Krizhevsky等人(2012年);Simonyan & Zisserman (2015);Szegedy等人(2015a);他等人(2016))。在过去的几年里,随着参数和卷积操作数量的增加,网络的总体趋势是越来越深。这些高容量网络具有显著的推理成本,特别是当与嵌入式传感器或移动设备一起使用时,计算和电力资源可能有限。对于这些应用,除了准确性,计算效率和较小的网络规模是关键的启用因素(Szegedy等人(2015b))。此外,对于提供图像搜索和图像分类api的web服务来说,它们的时间预算通常是每秒处理数十万张图像,因此可以从较低的推理时间中获得显著的好处。

通过模型压缩来降低存储和计算成本已经有了大量的工作(Le Cun等人(1989);Hassibi & Stork (1993);Srinivas & Babu (2015);Han等人(2015);Mariet & Sra(2016))。最近,Han等人(2015;2016b)在AlexNet (Krizhevsky et al.(2012))和VGGNet (Simonyan & Zisserman(2015))上报告了令人印象深刻的压缩率,方法是在不损害总体精度的情况下,用小幅度的权重进行修剪,然后再进行训练。然而,剪枝参数并不一定会减少计算时间,因为被删除的大部分参数都来自于计算成本较低的全连通层,例如:VGG-16的全连接层占总参数的90%,但只占整个浮点运算(FLOP)的不到1%。他们还证明了卷积层可以被压缩和加速(Iandola等人(2016)),但另外还需要稀疏BLAS库甚至专用硬件(Han等人(2016a))。在cnn上使用稀疏操作提供加速的现代库通常是有限的(Szegedy等人(2015a);Liu等人(2015))和维护稀疏的数据结构也会产生额外的存储开销,这对于低精度的权值来说是非常重要的。

最近关于cnn的工作已经产生了具有更高效设计的深层架构(Szegedy等人(2015a;b);他和孙(2015);He et al.(2016)),其中全连接层被平均池化层取代(Lin et al. (2013);He et al.(2016)),显著减少了参数的数量。通过在早期对图像进行下采样以减小feature map的大小,也降低了计算成本(He & Sun(2015))。然而,随着网络不断深入,卷积层的计算成本继续占据主导地位。

在大容量的cnn中,不同的滤波器和特征信道之间通常存在显著的冗余。在这项工作中,我们的重点是通过剪枝滤波器来降低训练良好的cnn的计算成本。与网络中的剪枝权值相比,滤波器剪枝是一种自然结构化的剪枝方式,无需引入稀疏性,因此不需要使用稀疏库或任何专门的硬件。通过减少矩阵乘法的数量,修剪滤波器的数量与加速度直接相关,这很容易对目标加速进行调整。此外,我们采用了一种一次性的剪枝和再训练策略,而不是分层的迭代微调(再训练),以节省跨多层剪枝滤波器的再训练时间,这对非常深的网络进行剪枝是至关重要的。最后,我们观察到,即使是ResNets,其参数和推理成本显著低于AlexNet或VGGNet,在不牺牲太多精度的情况下,仍然有大约30%的flops减少。我们对ResNets中的卷积层进行敏感性分析,以提高对ResNets的理解。

2 相关工作(RELATED WORK)

Le Cun等人(1989)的早期工作引入了最优脑损伤,用一个理论上合理的显著性度量来剔除权重。后来,Hassibi & Stork(1993)提出了Optimal Brain surgery,去除由二阶导数信息确定的不重要权重。Mariet和Sra(2016)通过识别不需要再训练的不同神经元子集来减少网络冗余。然而,该方法只在全连接层上运行,并引入稀疏连接。

为了降低卷积层的计算成本,过去的工作提出了近似卷积操作,方法是将权矩阵表示为两个较小矩阵的低秩乘积,而不改变原始滤波器的数量(Denil et al. (2013);Jaderberg等人(2014);Zhang等人(2015b;a);Tai等人(2016);Ioannou等人(2016))。其他减少卷积开销的方法包括使用基于FFT的卷积(Mathieu et al.(2013))和使用Winograd算法的快速卷积(Lavin & Gray(2016))。此外,量化(Han et al. (2016b))和二值化(Rastegari et al. (2016);Courbariaux & Bengio(2016))可以用来减小模型尺寸和降低计算开销。我们的方法可以用于这些技术之外,以减少计算费用而不招致额外的管理费用。

一些工作已经研究了从训练良好的网络中去除冗余特征映射(Anwar等人(2015);《Polyak &Wolf》(2015))。Anwar等人(2015)引入了权值的三层剪枝,并使用粒子滤波来定位剪枝候选,该方法从多个随机生成的掩码中选择最佳组合。Polyak和Wolf(2015)用样本输入数据检测较少被激活的特征图,用于人脸检测应用。我们选择使用一个简单的基于幅度的度量来分析滤波器权重和剪枝滤波器及其对应的特征映射,而不检查可能的组合。我们还介绍了网络范围内的整体方法,用于简单和复杂的卷积网络结构的剪枝滤波器。

与我们的工作同时,人们对训练稀疏约束的紧凑cnn越来越感兴趣(Lebedev & Lempitsky (2016);周等人(2016);温等(2016))。Lebedev和Lempitsky(2016)利用卷积滤波器上的群稀疏性来实现结构化脑损伤,即以群体方式修剪卷积核的条目。Zhou等人(2016)在训练过程中对神经元添加群稀疏正则化,以学习使用简化滤波器的紧凑cnn。Wen等人(2016)在每一层上添加结构化稀疏性正则化,以减少琐碎的滤波器、通道甚至层。在滤波器级的剪枝中,以上所有工作都使用了l2,1-norm作为正则化器。

与上面的工作类似,我们使用L1-norm来选择不重要的过滤器并进行物理修剪。我们的微调过程与传统的训练过程相同,没有引入额外的正则化。我们的方法没有为正则化器引入额外的分层元参数,除了要修剪的过滤器的百分比,这直接与期望的加速有关。采用分段剪枝的方法,可以在一个阶段内为所有层设置单一的剪枝速率。

3 剪枝滤波器和特征映射(PRUNING FILTERS AND FEATURE MAPS)

设ni表示第i个卷积层的输入通道数,hi/wi为输入特征图的高度/宽度。卷积层将输入特征映射xi∈Rni×hi×wi转换为输出特征映射xi+1∈Rni+1×hi+1×wi+1,作为下一卷积层的输入特征映射。这是通过在ni输入通道上应用ni+1 3D filters Fi,j∈Rni×k×k来实现的,其中一个filter生成一个feature map。每个滤波器由ni 2D核K∈Rk×k(例如,3 × 3)组成,所有的滤波器共同构成核矩阵Fi∈Rni×ni+1×k×k。卷积层的运算次数为ni+1nik2hi+1wi+1。如图1所示,在对一个filter Fi,j进行剪枝时,去掉其对应的feature map xi+1,j,减少了nik2hi+1wi+1的操作。应用在下一个卷积层的过滤器中被移除的特征映射上的核也被移除,这节省了额外的ni+2k2hi+2wi+2操作。修剪i层的m个滤波器将减少i层和i+1层的计算量m/ni+1。

上一段为此段原文的翻译,公式请与图中原文对应

上一段为此段原文的翻译,公式请与图中原文对应
图1:对过滤器进行剪枝,去除下一层对应的特征映射和相关的核。

图1:对过滤器进行剪枝,去除下一层对应的特征映射和相关的核。

3.1确定在单层内对哪些过滤器进行修剪( DETERMINING WHICH FILTERS TO PRUNE WITHIN A SINGLE LAYER)

我们的方法从训练良好的计算效率模型中去除不太有用的过滤器,同时最小化精度下降。我们通过计算滤波器的绝对权值Σ|Fi,j |,即其L1-norm||Fi,j||1,来衡量滤波器在每一层中的相对重要性。由于输入通道的数量ni在过滤器中是相同的,Σ|Fi,j |也表示其核权值的平均幅度。这个值给出了输出特征图大小的期望值。与该层中的其他过滤器相比,具有较小核权重的过滤器往往会产生具有弱激活的特征图。图2(a)说明了在CIFAR-10数据集上训练的vgg-16网络中,每个卷积层的过滤器的绝对权值和的分布,其中分布在各个层之间有显著差异。我们发现,与修剪相同数量的随机或最大的过滤器相比,修剪最小的过滤器效果更好(第4.4节)。与其他基于激活的特征地图修剪的标准(章节4.5)相比,我们发现L1-norm是一个很好的数据自由过滤器选择标准。

从第i个卷积层剪枝m个滤波器的过程如下:

  1. 对于每个过滤器Fi,j,计算其绝对核权值sj =ni l=1|Kl|的总和。
  2. 按sj对过滤器进行排序。
  3. 对m个和值最小的滤波器及其对应的特征映射进行剪枝。对应于剪枝特征映射的下一个卷积层的核也被删除。
  4. 为第i层和第i + 1层创建一个新的核矩阵,并将剩余的核权值复制到新模型中。
    在这里插入图片描述
上一段为此图原文的翻译,公式请与图中原文对应

在这里插入图片描述
(a)过滤器按sj排序
(b)对最小的滤波器进行剪枝
©修剪和再培训

图2:(a) CIFAR-10上VGG-16每一层的绝对权重和排序滤波器。x轴是过滤器指数除以过滤器总数。y轴是滤波器权值之和除以该层滤波器之间的最大和值。(b)在CIFAR-10上绝对权值和最小的剪枝滤波器及其相应的测试精度。©对CIFAR-10上的每一层VGG-16进行修剪和再培养。有些层是敏感的,在修剪它们之后很难恢复精度。

与修剪权值的关系 具有较低绝对权重和的剪枝滤波器与剪枝低量级权重类似(Han et al.(2015))。当一个滤波器的所有核权值小于给定的阈值时,基于幅度的权值剪枝可以将整个滤波器剪枝掉。然而,它需要仔细地调整阈值,并且很难预测最终将被删除的滤波器的确切数量。此外,它生成的稀疏卷积核在缺乏有效的稀疏库的情况下难以加速,特别是在低稀疏的情况下。

滤波器上群稀疏正则化的关系 近期工作(Zhou et al. (2016);Wen等人(2016))在卷积滤波器上应用群稀疏正则化(ni j=1Fi,j2或2,1-norm),这也有利于具有小l2-norm的归零滤波器,即Fi,j = 0。在实践中,对于过滤器的选择,我们没有观察到2-norm和1-norm之间的显著差异,因为重要的过滤器对于这两个度量往往有较大的值(附录6.1)。在训练过程中对多个滤波器的权值进行归零,其效果类似于3.4节所介绍的迭代剪枝再训练策略的剪枝滤波器。

在这里插入图片描述

上一段为此图原文的翻译,公式请与图中原文对应

3.2确定单层对修剪的敏感性

为了了解每一层的灵敏度,我们分别对每一层进行剪枝,并评估剪枝后的网络在验证集上的准确性。图2(b)显示,在删除过滤器时保持其准确性的层对应于图2(a)中坡度较大的层。相反,坡度相对平缓的土层对修剪更为敏感。我们根据每一层滤波器对剪枝的灵敏度经验地确定要剪枝的滤波器的数目。对于像VGG-16或ResNets这样的深度网络,我们观察到处于相同阶段(具有相同的特征地图大小)的层对修剪的敏感性相似。为了避免引入分层元参数,我们在同一阶段对所有层使用相同的剪枝率。对于对修剪敏感的层,我们修剪这些层的较小百分比或完全跳过修剪。

3.3跨多层剪枝滤波器

我们现在讨论如何修剪网络中的过滤器。之前的工作是在一层一层的基础上删除权重,然后迭代地重新训练和补偿任何准确性损失(Han et al.(2015))。然而,了解如何一次删除多个图层的过滤器是有用的:1)对于深层网络,逐层进行剪枝和再训练可能非常耗时。2)对网络进行剪枝可以从整体上看到网络的鲁棒性,从而使网络变得更小。3)对于复杂网络,可能需要采用整体方法。例如,对于ResNet,对每个残差块的身份特征映射或第二层进行剪枝会导致对其他层进行额外的剪枝。

为了对多层过滤器进行修剪,我们考虑了两种分层过滤器选择策略:

  • 独立剪枝决定了在每一层哪些过滤器应该被剪枝,而不受其他层的影响。
  • 贪婪剪枝解释了在前几层中被删除的过滤器。该策略在计算绝对权值和时不考虑之前修剪过的特征映射的核。

图3说明了计算绝对权重和的两种方法之间的区别。贪心方法虽然不是全局最优,但具有整时性,在修剪后的网络中具有较高的精度,特别是当许多滤波器被修剪时。
在这里插入图片描述
图3:跨连续层的剪枝过滤器。独立剪枝策略计算filter sum(绿色列),不考虑前一层移除的feature map(蓝色列),因此仍然包含黄色列标记的kernel权值。贪婪剪枝策略不计算已经剪枝的特征映射的核。这两种方法都得到(ni+1−1)× (ni+2−1)核矩阵。
在这里插入图片描述
图4:用投影快捷方式裁剪剩余块。残差块的第二层(标记为绿色)需要修剪的滤波器由快捷投影的修剪结果决定。残差块的第一层可以不受限制地进行修剪。

对于像VGGNet或AlexNet这样简单的cnn,我们可以很容易地删除任何卷积层中的任何过滤器。然而,对于复杂的网络结构,如残差网络(He et al.(2016)),剪枝滤波器可能不是简单的。ResNet的体系结构施加了限制,需要谨慎地删除过滤器。我们在图4中展示了利用投影映射对残差块进行的滤波剪枝。在这里,残差块中的第一层滤波器可以任意修剪,因为它不会改变块的输出feature map的数量。然而,卷积第二层的输出特征映射与身份特征映射之间的对应关系使其很难进行剪枝。因此,要对残差块的第二卷积层进行修剪,就必须对相应的投影特征图进行修剪。由于相同的特征映射比添加的残差映射更重要,所以需要修剪的特征映射应由快捷层的修剪结果决定。为了确定要修剪哪些身份特征映射,我们使用相同的选择准则,该准则基于快捷卷积层(具有1 × 1核)的滤波器。残差块的第二层与捷径层的剪接选择相同的滤波器索引进行剪接。

3.4重新训练修剪过的网络以恢复准确性

在对滤波器进行剪枝后,应通过对网络进行再训练来补偿性能下降。有两种策略可以在多个层中裁剪过滤器:

  1. 一次修剪再训练:一次对多层滤波器进行修剪再训练,直到恢复到原来的精度。
  2. 迭代地修剪和再训练:一层一层地修剪过滤器或一个过滤器一个过滤器,然后迭代地再训练。在进行下一层剪枝之前,对模型进行再训练,使权值适应剪枝过程中的变化。

我们发现,对于适应修剪的层,可以使用修剪和再训练一次策略来修剪网络的大部分,任何准确性的损失都可以通过短时间的再训练(少于最初的训练时间)来弥补。然而,当敏感层中的一些滤波器被删除或网络的大部分被删除时,可能无法恢复原始的精度。迭代剪枝和再训练可以获得更好的结果,但迭代过程需要更多的时间,特别是对于非常深的网络。

4 实验(EXPERIMENTS)

我们修剪了两种类型的网络:简单的cnn (CIFAR-10上的VGG-16)和残留网络(CIFAR-10上的ResNet-56/110和ImageNet上的ResNet-34)。不像AlexNet或VGG(在ImageNet上)经常被用来演示模型压缩,VGG(在cifa -10上)和残差网络在全连接层中都有较少的参数。因此,从这些网络中裁剪大量的参数是很有挑战性的。我们在Torch7中实现了我们的滤波器剪枝方法(Collobert等人(2011))。当对过滤器进行修剪时,将创建一个包含较少过滤器的新模型,并将修改后的层以及未受影响的层的其余参数复制到新模型中。此外,如果对卷积层进行剪枝,则后续的批处理归一层的权值也被去除。为了获得每个网络的基线精度,我们从头开始训练每个模型,并遵循ResNet一样的预处理和超参数(He et al.(2016))。对于再训练,我们使用不变的学习率0.001,对cifar10再训练40个epoch,对ImageNet再训练20个epoch,这表示原始训练epoch的四分之一。过去的工作已经报道了高达3倍的原始训练时间来再训练修剪网络(Han et al.(2015))。

在这里插入图片描述
表1:总体结果。报告了再培训过程中测试/验证的最佳准确性。从头训练一个修剪过的模型比重新训练一个修剪过的模型效果差,这可能表明训练一个小容量网络的困难。

4.1 VGG-16 ON CIFAR-10

VGG16是一种高容量网络,最初是为ImageNet数据集设计的(Simonyan & Zisserman(2015))。最近,Zagoruyko(2015)在CIFAR-10上应用了一个稍微修改过的模型,并获得了最先进的结果。如表2所示,CIFAR-10上的VGG-16由13个卷积层和2个全连通层组成,全连通层由于输入尺寸小,隐藏单元小,不占用参数的大部分。我们使用Zagoruyko(2015)中描述的模型,但添加了批处理标准化(Ioffe & Szegedy (2015))在每个卷积层和第一个线性层之后,不使用Dropout (Srivastava et al.(2014))。注意,当最后一个卷积层被修剪时,线性层的输入被改变,连接也被删除。
在这里插入图片描述
表2:VGG-16在CIFAR-10和修剪模型。最后两列显示特征图的数量和从修剪模型中减少的FLOP的百分比。

如图2(b)所示,在512个feature map的卷积层中,每一层都可以在不影响精度的情况下掉掉至少60%的滤波器。图2©显示,通过再训练,这些层中几乎90%的过滤器都可以安全地去除。一种可能的解释是,这些过滤器在4 × 4或2 × 2的特征图上运行,这些特征图在如此小的维度上可能没有有意义的空间连接。例如,cifa -10的ResNets对低于8 × 8维的特征图不执行任何卷积。与之前的工作不同(Zeiler & Fergus (2014);Han et al.(2015)),我们观察到第一层相对于接下来的几层来说,对剪枝具有鲁棒性。这对于像cifa10这样的简单数据集是可能的,在这个数据集上,模型学不到像ImageNet上那么多有用的过滤器(如图5所示)。即使第一层80%的过滤器被修剪,剩余的过滤器(12个)的数量仍然大于原始输入通道的数量。但是,当从第二层去除80%的过滤器时,该层对应的是64 - 12的映射,这可能会丢失前一层的重要信息,从而影响精度。在第1层和第8层到第13层中,50%的滤波器被修剪,我们在相同的精度下实现了34%的flops减少。
在这里插入图片描述
图5:在CIFAR-10上训练的VGG-16的第一卷积层滤波器的可视化。过滤器由L1-norm排名。

4.2 RESNET-56/110 ON CIFAR-10

用于cifar10的ResNets有三个阶段的特征图残差块,大小分别为32 × 32、16 × 16和8 × 8。每个阶段都有相同数量的剩余块。当特征映射的数量增加时,快捷层为增加的维度提供一个带有额外零填充的标识映射。由于没有投影映射来选择身份特征映射,我们只考虑对残差块的第一层进行剪枝。如图6所示,大多数层对修剪都是健壮的。对于ResNet-110,在没有重新训练的情况下修剪一些单层提高性能。此外,我们发现对剪枝敏感的层(ResNet-56为20、38和54层,ResNet-110为36、38和74层)位于特征映射数量发生变化的层附近的残差块,例如每个阶段的第一个残差块和最后一个残差块。我们认为这是因为精确的残差对于新添加的空特征图是必要的。
在这里插入图片描述
图6:ResNet-56/110的每个残差块的第一层对修剪的敏感性。

通过跳过这些敏感层,可以提高再训练性能。如表1所示,ResNet-56-pruned-A通过对10%的滤波器进行修剪,同时跳过敏感层16、20、38和54,从而提高了性能。此外,我们发现深层网络比早期网络更容易受到剪枝的影响。因此,我们对每个阶段使用不同的修剪速率。我们用pi表示第i阶段的层的剪枝速率。ResNet-56-pruned-B跳过更多的层(16,18,20,34,38,54)和prunes层p1=60%, p2=30%和p3=10%。对于ResNet-110,当p1=50%且跳过36层时,第一个剪枝模型的结果略好。ResNet-110-pruned-B跳过36、38、74层和p1=50%、p2=40%和p3=30%的prunes。当每个阶段有两个以上的残差块时,中间的残差块可能是冗余的,易于修剪。这也许可以解释为什么ResNet-110比ResNet-56更容易修剪。

4.3 RESNET-34 ON ILSVRC2012

4.4与剪枝随机滤波器和最大滤波器的比较

我们比较了我们的方法与剪枝随机滤波器和最大滤波器。如图8所示,对于大多数层,在不同的剪枝率下,最小的滤波器的剪枝性能优于随机滤波器。例如,对于所有层,最小的滤波器剪枝比随机滤波器剪枝具有更好的精度,剪枝率为90%。随着剪枝率的增加,L1-范数最大的剪枝滤波器的精度迅速下降,这表明L1-范数较大的滤波器的重要性。
在这里插入图片描述
图8:在CIFAR-10上对VGG-16进行三种剪枝方法的比较:剪枝最小的滤波器、剪枝随机滤波器和剪枝最大滤波器。在随机滤波器剪枝中,要剪枝的滤波器的顺序是随机排列的。

4.5与基于激活的特征地图剪枝的比较

基于激活的特征映射剪枝方法去除带有弱激活模式的特征映射及其对应的过滤器和核(Polyak & Wolf(2015)),这需要样本数据作为输入来确定要剪枝的特征映射。对上一层xi∈Rni×wi×hi的特征图应用filter Fi,j∈Rni×k×k生成一个特征图xi+1,j∈Rwi+1×hi+1,即,xi+1,j = Fi,j∗xi。给定N个随机从训练集中选取的图像{xn 1}N N =1,每个特征图的统计量可以通过N个采样数据的一个历元前传来估计。注意,在批量归一化或非线性激活之前,我们计算了卷积操作生成的特征图的统计数据。我们将基于1-norm的滤波剪接方法与特征图剪接方法进行比较:σmean-mean(xi,j) =1 NN N =1 N (xn i,j), σmean-std(xi,j) =1 NN N =1 N (xn i,j), σmean-1(xi,j) =1 NN N =1 Nxn i,j1,σmean-2(xi,j) =1 NN N,j2,σmean-2 (xi,j) =1 N N N,j 2σvar-2(xi,j) = var({xn i,j2}N N =1),其中mean, std和var是输入的标准统计量(平均值,标准差和方差)。在这里,σvar-2是Polyak &Wolf(2015)提出的信道准则的贡献方差,其动机是基于直觉,即一个不重要的特征图对于整个训练数据有几乎相似的输出,并且起到了附加偏差的作用。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
图9:在CIFAR-10上VGG-16基于激活的特征图修剪的比较

当使用更多的样本数据时,准则的估计变得更准确。在这里,我们使用整个训练集(对于CIFAR-10, N = 50000)来计算统计数据。采用上述准则对每一层进行特征图修剪的性能如图9所示。以σmean-mean、σmean-1、σmean-2和σvar-2为准则的最小滤波器剪枝优于特征映射剪枝。σmean-std准则具有与1-范数相近或更好的修剪性能,修剪率可达60%。然而,它的性能在那之后迅速下降,特别是对于conv 1, conv 2和conv 3层。我们发现1-norm是一个很好的启发式过滤器选择,考虑到它是无数据的。
在这里插入图片描述

5 结论(CONCLUSIONS)

现代cnn通常具有高容量和大量的训练和推理成本。本文提出了一种在不引入不规则稀疏性的情况下,用相对较低的权重值裁剪滤波器来生成计算成本较低的cnn的方法。它在VGGNet(在CIFAR-10上)和深层ResNets的flops中实现了约30%的降低,而在原始准确性方面没有显著损失。为了简化和易于实现,我们采用了一次性修剪和再训练策略,而不是使用特定的分层干草参数和耗时的迭代再训练。通过对非常深的cnn进行损伤研究,我们确定了对剪枝具有鲁棒性或敏感性的层次,这有助于进一步理解和改进结构。

6 附录

我们比较了过滤剪枝的1-norm和2-norm。如图10所示,对于层conv 2,1-norm比2-norm工作得稍好一些。对于其他层,这两个规范之间没有显著差异。

在这里插入图片描述
图10:在CIFAR-10上基于VGG-16的1-norm和2-norm的filter pruning比较

在这里插入图片描述
表3:推论用的FLOP和wall-clock时间的缩减。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云雨、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值