[2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks

论文:Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks (SFP)
论文链接:https://www.ijcai.org/proceedings/2018/0309.pdf
代码链接:https://github.com/he-y/soft-filter-pruning

Title Venue Type Code
Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks IJCAI F github(pytorch)

文章目录

  • Abstract
  • 1 Introduction
  • 2 Related Works
  • 3 Algorithm
    • 相关图解
    • 算法流程
    • 4 Experiments

Abstract

所提出的SFP使得修剪后的过滤器在对模型进行训练时能够得到更新。
对修剪后的模型进行训练时更新。与以往的工作相比,SFP有两个优势:
(1)更大的模型容量。与将过滤器固定为零相比,更新以前修剪过的过滤器为我们的方法提供了更大的优化空间。因此,我们所训练的网络具有更大的模型学习能力。
(2)减少对预训练模型的依赖。大容量使SFP能够从零开始训练,并同时修剪模型

思路

  • 在模型训练的过程中,将 L 2 L_2 L2 范数小的按照预设的剪枝比例进行裁剪(被剪掉的卷积核的值全部设置为 0),然后按照对模型继续进行训练,一直重复,直到模型训练结束。

一些关键词

  • 卷积核剪枝

  • 迭代剪枝

  • 软剪枝

1 Introduction

目前问题

  1. 模型容量降低;
  2. 对预训练模型的依赖。

方法操作对象
卷积核

总述
在第一次训练之前,几乎所有层的卷积核都用小的 L 2 L_2 L2-norm 选择并设置为0。
然后利用训练数据对修剪后的模型进行更新。
在下一个训练时期之前,我们的SFP将修剪一组新的小 L 2 L_2 L2-norm 范数的卷积核。
这些训练过程一直持续到收敛为止。
最后,一些卷积核将被选择和修剪,没有进一步的更新。
SFP算法使压缩后的网络具有更大的模型容量,从而达到比其他算法更高的精度

贡献

  1. SFP允许在训练过程中对修剪后的过滤器进行更新。这种软方式可以极大地保持模型的容量,从而获得优异的性能。
  2. 我们的加速方法可以从零开始训练模型,与最先进的技术相比,可以获得更好的性能。这样就节省了调优过程和整体训练时间。此外,使用预训练的模型可以进一步提高我们的方法的性能,以提高最先进的模型加速。
  3. 在两个基准数据集上的广泛实验证明了我们的SFP的有效性和效率。与CIFAR-10相比,我们将ResNet-110的相对精度提高了约4%,提高了2倍,并且实现了最先进的解决方案

2 Related Works

  • 权重剪枝
  • 卷积核剪枝

3 Algorithm

硬卷积核修剪 VS 软卷积核修剪

  • 硬卷积核修剪
    我们称之为硬卷积核修剪。通常情况下,这些算法首先对预先训练好的模型的单层进行滤波,然后对修剪后的模型进行微调,以弥补性能的下降。然后他们修剪下一层并再次微调模型,直到最后一层模型被修剪。然而,一旦筛选器被修剪,这些方法将不会再次更新这些筛选器

  • 软卷积核修剪
    在训练阶段不断更新修剪后的卷积核
    好处。它既保持了深度压缩CNN模型的原始模型容量,又避免了逐层剪枝的贪心过程,几乎可以同时对所有层进行剪枝。我们的方法可以在从零开始的训练过程中,或者在一个预先训练的模型中裁剪一个模型。在每个训练epoch中,根据训练数据对整个模型进行优化训练。在每个epoch之后,每个卷积核计算所有过滤器的 L 2 L_2 L2 范数,作为我们选择卷积核策略的标准。然后,我们将通过设置相应的卷积核权值为0来修剪所选的卷积核,接下来是下一个训练epoch。最后,原来CNNs 被精简成一个紧凑而高效的模型。

相关图解

  • 图1.
    硬卷积核修剪 VS 软卷积核修剪
    [2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第1张图片

  • 图2.
    SFP的概述

[2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第2张图片

算法流程

1、求模型权重的 L2 范数
2、将 L2 范数结果小的置0
3、进入模型新的一轮训练,更新全部的权重(包含被置零的卷积核全部权重。即全零卷积核,与非零卷积核)
4、直到模型全部收敛
5、完全去掉被置 0 的卷积核

[2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第3张图片

4 Experiments

  • 表1:CIFAR-10上修剪ResNet的比较

[2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第4张图片

  • 表2:ImageNet上修剪ResNet的比较。

[2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第5张图片

  • 表3:理论加速和实际加速的比较。
    [2018IJCAI F] (模型压缩_剪枝_通道剪枝)Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks_第6张图片

  • 拓展阅读

Soft Filter Pruning(SFP)算法笔记
https://blog.csdn.net/u014380165/article/details/81107032

你可能感兴趣的:(L_论文,M_模型压缩)