浙江大学学报(工学版), 2019, 53(10): 1994-2002 doi: 10.3785/j.issn.1008-973X.2019.10.017

自动化技术、计算机技术

基于滤波器裁剪的卷积神经网络加速算法

李浩,, 赵文杰,, 韩波

Convolutional neural network acceleration algorithm based on filters pruning

LI Hao,, ZHAO Wen-jie,, HAN Bo

通讯作者: 赵文杰,男,副研究员. orcid.org/0000-0003-0760-2867. E-mail: zhaowenjie8@zju.edu.cn

收稿日期: 2018-12-5  

Received: 2018-12-5  

作者简介 About authors

李浩(1993—),男,硕士生,从事计算机视觉研究.orcid.org/0000-0001-6731-1856.E-mail:lhmzl2012@163.com , E-mail:lhmzl2012@163.com

摘要

针对卷积神经网络(CNN)模型的压缩和加速问题,提出基于滤波器裁剪的新型卷积神经网络模型加速算法. 通过计算卷积层中滤波器的标准差值衡量该滤波器的重要程度,裁剪对神经网络准确率影响较小的滤波器及对应的特征图,可以有效地降低计算成本. 与裁剪权重不同,该算法不会导致网络稀疏连接,不需要应用特殊的稀疏矩阵计算库. 基于CIFAR-10数据集的实验结果表明,该滤波器裁剪算法能够对VGG-16和ResNet-110模型加速30%以上,通过微调继承的预训练参数可以使结果接近或达到原始模型的精度.

关键词: 深度学习 ; 卷积神经网络(CNN) ; 模型压缩 ; 滤波器 ; 特征图

Abstract

A new model acceleration algorithm of convolutional neural network (CNN) was proposed based on filters pruning in order to promote the compression and acceleration of the CNN model. The computational cost could be effectively reduced by calculating the standard deviation of filters in the convolutional layer to measure its importance and pruning filters with less influence on the accuracy of the neural network and its corresponding feature map. The algorithm did not cause the network to be sparsely connected unlike the method of pruning weight value, so there was no need of the support of special sparse convolution libraries. The experimental results based on the CIFAR-10 dataset show that the filters pruning algorithm can accelerate the VGG-16 and ResNet-110 models by more than 30%. Results can be close to or reach the accuracy of the original model by fine-tuning the inherited pre-training parameters.

Keywords: deep learning ; convolutional neural network (CNN) ; model compress ; filter ; feature map

PDF (2004KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

李浩, 赵文杰, 韩波. 基于滤波器裁剪的卷积神经网络加速算法. 浙江大学学报(工学版)[J], 2019, 53(10): 1994-2002 doi:10.3785/j.issn.1008-973X.2019.10.017

LI Hao, ZHAO Wen-jie, HAN Bo. Convolutional neural network acceleration algorithm based on filters pruning. Journal of Zhejiang University(Engineering Science)[J], 2019, 53(10): 1994-2002 doi:10.3785/j.issn.1008-973X.2019.10.017

卷积神经网络(convolutional neural network,CNN)已成为一种重要的非线性自适应信息处理方法,在多个领域得到了广泛应用,并且在多种任务中取得了突出的成果[1-2].随着网络层数的增加,神经网络对计算平台的运算速度和存储资源提出了越来越高的要求,其在计算资源有限的嵌入式平台上难以发挥优异的性能. 对于在嵌入式和移动端的应用,准确率和运行速度同等重要[3].

多种深度学习模型已经证明存在着大量的参数冗余[4],带有冗余参数的模型不仅浪费存储空间和计算资源,而且容易导致过拟合问题.近年来,研究者在网络模型压缩方面作了大量的工作[5-7],Han等[8]基于AlexNet[1]和VGGNet[9]实现了基于权重裁剪的算法,通过重新训练弥补准确率损失,该算法主要裁减全连接层的参数,而神经网络的计算消耗主要来自卷积层,所以该算法不能明显提升模型的计算效率. 为了降低卷积层的计算消耗,Iandola等[10]实现了利用稀疏矩阵计算库和特殊硬件[11]压缩卷积层的算法. Denil等[4]实现了将权重矩阵分解为2个较小矩阵低秩乘积的算法,用来近似卷积计算,提升网络性能. 此外,基于卷积的快速傅里叶变换[12]、参数量化[8]、参数二值化[13]等方法相继被提出. 基于核的稀疏化方法也引起了很多研究者的兴趣,Wen等[14]提出结构稀疏化算法,能够学习模型的稀疏结构实现模型加速,稀疏的结构性可以有效地在硬件上部署加速. 最近,基于通道裁剪的方法表现出了较好的性能.Li等[15]实现了基于L1范数的冗余滤波器裁剪算法,通过微调(fine-tune)恢复模型精度. Mittal等[16]验证了随机通道裁剪可以与各种更复杂的裁剪标准相媲美,展示了网络模型的可塑性. Zhu等[17]通过实验表明,训练小密度模型不能达到与具有相同内存占用的大稀疏裁剪模型相同的精度,说明模型裁剪算法的研究具有一定的实用意义.

基于滤波器裁剪的模型压缩算法通常裁剪权重绝对值和最小的滤波器,而网络模型中有很多权重值较大但无特征提取作用的冗余滤波器. 本文提出基于滤波器裁剪的新型网络模型加速算法,使用标准差值作为滤波器重要程度的衡量标准,裁剪标准差值较小的滤波器实现对模型加速. 本文通过分析网络各层滤波器的裁剪对模型精度的影响程度,即分析滤波器的敏感度,根据敏感度调整各网络层的裁剪占比,分别通过微调和随机初值训练恢复裁剪后模型的精度. 本文算法通过直接裁剪卷积滤波器的方式,在实现上更容易,并且不需要特殊的稀疏矩阵计算库和硬件支持,在不增加额外开销的情况下降低计算成本.

1. 模型裁剪

通过VGG和ResNet[18]模型描述滤波器裁剪算法,这2种网络最具代表性,在很多任务中都有广泛应用,不限于目标分类和目标检测,尤其是ResNet的提出,对网络层数的加深具有重要的意义.

1.1. 裁剪滤波器和特征图

图1给出裁剪滤波器的细节, ${{{X}}_i}$为输入特征图, ${h_i}$${w_i}$分别为高和宽, ${n_i}$为第 $i$个卷积层输入通道的数量. 输入特征图 ${{{X}}_i}$${n_{i + 1}}$个通道数为 ${n_i}$的3D滤波器 ${{{P}}_{i,j}} \in {{\bf R}^{{n_i} \times k \times k}}$作卷积运算生成输出特征图 ${{{X}}_{i + 1}}$,其中一个滤波器产生对应的一个特征图,特征图 ${{{X}}_{i + 1}}$同时作为下一个卷积层的输入特征图. 每个滤波器由 ${n_i}$个2D卷积核构成,记每个卷积核为 ${{K}} \in {{\bf R}^{k \times k}}$,每个卷积层的所有卷积核构成核矩阵为 ${{{P}}_i} \in {{\bf R}^{{n_{i + 1}} \times {n_i} \times k \times k}}$.

图 1

图 1   裁剪滤波器致使其对应特征图和下一层滤波器的移除

Fig.1   Pruning filters results in removal of their corresponding feature maps and related kernels in next layer


根据卷积运算流程可得,单个卷积层的浮点操作运算量为

$ {\rm{FLOPs}} = {n_{i + 1}} \times {n_i} \times {k^2} \times {h_{i + 1}} \times {w_{i + 1}}. $

图1所示,在核矩阵A中裁剪掉一个 ${{{P}}_{i,j}}$滤波器,同时 ${{{X}}_{i + 1}}$中对应的特征图以及核矩阵B中对应的滤波器会被裁减掉,该次裁剪一共减少了 $\left( {{n_i}{h_{i + 1}}{w_{i + 1}}{\rm{ + }}{n_{i + 2}}{h_{i + 2}}{w_{i + 2}}} \right){k^2}$的浮点操作计算量[15]. 所以裁减掉第 $i$层的 $m$个滤波器最终可以减少第 $i$$i{\rm{ + }}1$两个卷积层计算量的 $m/{n_{i + 1}}$.

1.2. 裁剪ResNet网络

对于简单的卷积神经网络,如VGG或者AlexNet,可以较容易地裁减任意滤波器,但对于复杂网络,如ResNet,因为网络结构的特殊性,滤波器的裁剪受限于具体的网络层连接. 如图2所示,通过投影映射(projection mapping)实现对残差块(residual block)的滤波器裁剪[15]. 其中裁剪的关键是每个残差块第2个卷积层的输出特征图与恒等特征图之间通道一致性的保持. 在裁剪残差块第2个卷积层的过程中,要同时裁减掉相应的投影特征图. 因为恒等映射比残差块更重要,残差块的裁剪由快捷层(shortcut layer)决定,残差块第2个卷积层特征图的裁剪需要与快捷层的裁剪所选择的滤波器索引一致.

图 2

图 2   ResNet模型的裁剪

Fig.2   Pruning of ResNet model


1.3. 裁剪后的模型重新获得精度

在模型裁剪后,需要通过训练将模型的准确率提升到接近甚至达到原模型的准确率. 策略1是逐层裁剪和重训练的迭代方式,在裁剪下一层之前微调当前模型,调整参数弥补准确率损失. 该策略的最终结果较好,但迭代过程需要花费较长时间. 策略2是整个网络作一次裁剪,再对模型微调使之恢复精度,该方式所需的时间较少,可能需要重复多次才能获得较优的结果. 策略3是对整个网络作一次裁剪,采用随机初值训练的方式恢复模型精度.

2. 裁剪标准与算法

2.1. 裁剪标准

在传统的图像处理方法中,通过人工设定的卷积核对图像作卷积运算,获得图像信息的特征表示,例如利用Canny算子和Laplace算子可以获得图像的边缘及纹理特征,如图3(b)(c)所示. 图中,r为灰度,pr为各灰度像素个数与像素总数的比值. 如图4(b)所示,CNN学习到的卷积核有canny算子或Laplace算子相似的特征提取作用.

图 3

图 3   利用传统方法提取图像特征

Fig.3   Extraction of image features using traditional methods


图 4

图 4   ImageNet数据集上预训练模型VGG-16的卷积层可视化特征图

Fig.4   Visualization feature maps of convolutional layer of pre-training model VGG-16 on ImageNet dataset


若对原图进行均值卷积操作,则对图像添加了噪声,使其模糊化,其直方图等间距灰度缺失表明图像缺失了相应细节的像素值(见图3(d)).

均值卷积核为

$ {{K}} = \frac{1}{9}\left[ {\begin{array}{*{20}{c}} 1&1&1 \\ 1&1&1 \\ 1&1&1 \end{array}} \right]. $

CNN中存在很多权重值相近的近似均值卷积核的滤波器,对ImageNet数据集上预训练模型VGG-16的第1个卷积层的滤波器基于标准差值进行排序,最小和最大的5个滤波器所映射的特征图及其直方图分别如图4(a)(b)所示. 从特征图及直方图可以看出,标准差值较大的滤波器可以提取更底层的纹理边缘信息;标准差值较小的滤波器更多的是对上一层输入特征图的简单滤波,甚至添加了很多噪声,没有起到特征提取的作用. 此外,图5(b)表明,裁剪少量标准差值较小的滤波器对模型的性能影响不大. 图中,p为滤波器裁剪百分比,y为模型准确率. 本文认为卷积网络中标准差值较小的滤波器为冗余滤波器,对整个模型的作用可以忽略.

图 5

图 5   CIFAR-10数据集上的预训练模型VGG-16的裁剪

Fig.5   Pruning of pre-training model VGG-16 on CIFAR-10 dataset


2.2. 裁剪算法

本文的方法是裁剪预训练模型中重要程度较小的滤波器,使准确率损失最小化. 通过计算卷积层中滤波器的标准差值 $\sum\nolimits_{h = 1}^{{n_i}} {{\rm{std}}\;({{{K}}_h})} $衡量其重要程度,标准差值较小的滤波器仅是对输入特征图的简单滤波,提取特征的作用较小,从预训练模型中裁减冗余滤波器实现对整个模型的压缩和加速.

裁剪第 $i$个卷积层的 $m$个滤波器的算法如下.

1)对于卷积层的每一个滤波器 ${{{P}}_{i,j}}$,计算标准差值 ${s_j} = \sum\nolimits_{h = 1}^{{n_i}} {{\rm{std}}\;({{{K}}_h})} $,其中 ${\rm{std}}\;({{{K}}_h})$表示对矩阵 ${{{K}}_h}$求标准差值.

2)对 ${s_j}$进行排序.

3)裁剪标准差值较小的 $m$个滤波器,同时裁减对应特征图及相应的下一个卷积层的滤波器.

4)第 $i$层和第 $i + 1$层重新生成新的核矩阵,将未被裁剪的权重参数对应拷贝到新的模型中.

独立地裁剪每一层滤波器,依次评估裁剪后的模型在验证集上的准确率,滤波器的敏感度与准确率损失呈正相关. 若准确率下降较多,则说明该层对裁剪的敏感度较大. 本文没有采用根据阈值大小裁剪网络的方式对模型进行裁剪,因为若某一层滤波器的标准差值均小于阈值,则该层所有滤波器均会被裁减而对模型产生结构性的破坏,并且该方法很难确定最终的阈值选取. 本文根据卷积层中滤波器的敏感程度,经验性地设置该层的裁剪占比,分层裁剪而不会裁减掉一个完整的卷积层. 根据 ${s_j}$排序得到的滤波器标准差值归一化数值分布图如图5(a)所示. 图中,f为滤波器索引占滤波器总数的百分比,s为归一化的滤波器权重标准差值. 对CIFAR-10数据集上的预训练模型VGG-16单层逐次裁剪,模型准确率的变化规律如图5(b)所示.图5(b)中裁剪鲁棒性较好的卷积层对应图5(a)中标准差值分布较低的区域.

Han等[6]的工作是基于逐层权重裁剪和重训练的方式,通过逐层迭代弥补精度损失. 对于深层网络,逐层裁剪和重训练的迭代方式非常消耗时间. 本文算法通过单层裁剪分析网络的整体稳健性作为网络裁剪的基础,通过单次的裁剪和重训练恢复模型精度,提高了模型压缩流程的效率. 本文根据网络层的裁剪敏感度设置该层的裁剪占比,对于VGG-16等深层网络,根据网络中特征图的尺寸大小将网络分为若干阶段,同阶段特征图尺寸相同. 实验结果表明,同阶段卷积层的敏感度几乎一样,为了避免引入其他超参数,对于同阶段的所有卷积层采用相同的裁剪占比,简化裁剪流程.

3. 实验结果

采用pytorch实现模型压缩算法,为了获得用于分析和微调的网络权重,使用python和pytorch接口拷贝裁剪后模型的权重. 采用VGG和ResNet 2种网络模型测试算法. 用CIFAR-10数据集测试VGG-16和ResNet-56/110,用ImageNet数据集测试ResNet-34. 模型裁剪时,将卷积层及对应的Batch Normalization层同时移除,再将原模型中保留的网络层参数拷贝到新模型中. 通过随机初始化参数训练每个模型,得到各个网络的基准准确率. 在微调模型时,对于CIFAR-10数据集,用常数学习率0.001迭代50次,对于ImageNet数据集用同样的学习率迭代25次.

3.1. 裁剪CIFAR-10数据集上的预训练模型VGG-16

VGG-16在CIFAR-10数据集上表现了出色的性能[19],这里的VGG-16包含了13个卷积层和2个全连接层,由于CIFAR-10数据集的输入图片尺寸较小,2个全连接层的权重不占用太多空间. Batch Normalization比丢弃法在解决训练和过拟合的问题上效果更好,故在VGG-16模型中的每个卷积层后增加了Batch Normalization层[20].

图5(b)表明,带有512个特征图的卷积层在没有影响模型整体性能时至少可以裁减掉其中40%的滤波器,滤波器较多的卷积层的冗余滤波器一般较多. 此外,CIFAR-10数据集的输入图片尺寸较小,模型的最后几个卷积层所学习到的特征信息较少,故模型最后几层的裁剪对整个模型的性能影响不大. 从图5(b)可以看出,网络浅层部分只有第一层的裁剪鲁棒性较好,而深层部分除了最后一层外,其他层对裁剪都表现出了较好的鲁棒性. 对于较敏感的层无需进行裁剪,对鲁棒性较好的层可以增大裁剪占比. 根据图5(b)的卷积层敏感度折线裁剪预训练模型VGG-16,结果如表1所示,浮点操作计算量可以减少43%. 表中,Fb为裁剪前FLOPs,Fa为裁剪后FLOPs,ΔF为裁剪量FLOPs. 从表2可见,裁减之后的模型通过重训练,几乎都可以接近原模型的精度. 表中,Fw为总的FLOPs,M为参数量,ΔM为参数裁剪量.

表 1   裁剪CIFAR-10数据集上的预训练模型VGG-16

Tab.1  Pruning of pre-training model VGG-16 on CIFAR-10 dataset

卷积层 Fb/106 Fa/106 ΔF/%
conv 1_1 1.8 0.9 50
conv 1_2 38 19 50
conv 2_1 19 14.25 25
conv 2_2 38 28.5 25
conv 3_1 19 14.25 25
conv 3_2 38 28.5 25
conv 3_3 38 38 0
conv 4_1 19 9.5 50
conv 4_2 38 9.5 75
conv 4_3 38 9.5 75
conv 5_1 9.4 2.35 75
conv 5_2 9.4 2.35 75
conv 5_3 9.4 2.35 75
FC6 0.26 0.13 50
FC7 5.1×10−3 5.1×10−3 0
总量 315 179 43.2

新窗口打开| 下载CSV


表 2   裁剪、重训练多个模型及其结果

Tab.2  Results of pruning and retraining models

模型 y/% Fw/106 ΔF/% M/106 ΔM/%
VGG-16 93.33 313 15
VGG-16-A 93.47 179 43.2 5.4 64
ResNet-56 93.11 127 0.85
ResNet-
56-A
93.07 112 11.8 0.77 9.4
ResNet-
56-B
93.03 92.3 27.3 0.72 15.3
ResNet-110 93.62 256 1.73
ResNet-110-A 93.67 213 16.8 1.68 2.9
ResNet-110-B 93.48 155 39.5 1.14 34.1
ResNet-34 73.29 3 640 21.6
ResNet-
34-A
72.61 3 080 15.5 19.9 7.9
ResNet-
34-B
72.31 2 760 24.2 19.3 10.6

新窗口打开| 下载CSV


3.2. 裁剪CIFAR-10数据集上的预训练模型RESNET-56/110

对于CIFAR-10数据集的预训练模型,根据特征图尺寸的大小,可以将ResNet网络分为3个阶段. 如图6所示,网络模型中多个卷积层对于裁剪都表现出较好的鲁棒性,对于ResNet-110,裁剪其中的一些单层,其结果甚至比原模型准确率更高.

图 6

图 6   ResNet-56/110模型各卷积层的裁剪敏感度

Fig.6   Pruning sensitivity of each convolution layer of ResNet-56/110 model


图6表明,随着裁剪占比的增大,模型ResNet-56的20、38和54层,模型ResNet-110的36、38和74层对准确率的影响明显,敏感度较大. 通过分析发现,敏感层一般位于残差块的首尾两端特征层数量发生突变的地方,敏感层对于整个模型非常重要,裁剪过程中设置较小裁剪占比或者完整保留.

表2可见,使用该算法裁剪模型并重新训练,可以接近原始模型的性能,例如ResNet-56-A模型通过裁减各层10%的滤波器获得了性能的提升. 从图6可以看出,深层一般比浅层的敏感度更高,裁剪占比需要随着层数的加深逐渐减小. 在裁剪过程中,处于同一阶段的卷积层设置相同的裁剪占比,不同阶段的卷积层设置不同的裁剪占比,并随着层数的加深而减小.

根据图6各层的敏感度,裁剪ResNet-56-B时跳过第16、18、20等敏感层,各阶段的裁剪占比分别设为40%、50%和10%.对于ResNet-110模型,ResNet-110-A模型仅仅跳过第36层,只在第一阶段作占比为50%的裁剪,其性能得到了一点提升. ResNet-110-B模型跳过第36、38和74层,裁剪占比分别设为40%、50%和30%.结果如表2所示.

3.3. 裁剪ILSVRC2012数据集的预训练模型RESNET-34

对于ImageNet数据集的预训练模型,根据特征图尺寸的大小,可以将ResNet网络分为4个阶段. 如图7所示为网络中每个残差块第1层的敏感度. 与ResNet-56/110模型相似,各阶段的首尾残差块比中间残差块的敏感度高,跳过这些敏感层,对各个阶段剩下的卷积层进行同等占比的裁剪. 对ResNet模型进行裁剪时,ResNet-34-A各阶段的裁剪占比分别设为30%、30%、30%和0%,ResNet-34-B的裁剪占比分别设为50%、60%、40%和0%,结果如表2所示.

图 7

图 7   ResNet-34模型各卷积层的裁剪敏感度

Fig.7   Pruning sensitivity of each convolution layer of ResNet-34 model


3.4. 对比实验

将提出的标准差方法与其他优秀的裁剪算法进行比较,可得如下结论.

1)Average Percentage of Zeros(APoZ)[21]:通过裁减多数激活为0值的滤波器来降低模型大小和运算量.

2)基于L1范数的裁剪算法[15]:裁剪网络层中权重L1范数较小的滤波器来获得模型的性能提升.

3)Random Pruning[16]:对于每一个卷积层,随机裁剪一定量的滤波器来对模型进行压缩和加速.

4)Mean Activation[22]:通过裁减平均激活值较低的滤波器来提升网络性能.

在该实验中,分别对恢复模型精度的3个策略进行实验比较. 在单个策略实验中,对于模型的每一个卷积层裁剪该层滤波器总量的m%,其中 $m$取值为{20,40,60}.采用ILSVRC2012数据集和RseNet-34模型进行实验. 如表3所示为实验对比的结果. 可以看出,提出的标准差方法优于其他裁剪算法,利用微调和随机初值训练2种策略所得出的结果相似,在多数情况下,随机初值训练的结果优于微调. 从表3可以看出,多次迭代训练策略的结果明显优于另外2种方式,不过该策略在裁剪每一个卷积层之后均需要进行一次微调训练,花费时间较长.

表 3   不同裁剪方法的准确率对比

Tab.3  Accuracy comparison of different pruning methods

%
裁剪算法 微调 随机初值训练 多次迭代训练
m=20 m=40 m=60 m=20 m=40 m=60 m=20 m=40 m=60
标准差 72.37 64.85 53.36 72.41 64.93 53.31 72.65 65.16 54.45
APoZ 71.14 62.82 52.63 71.11 63.12 52.67 71.39 63.31 53.44
L1范数 72.28 64.77 53.35 72.33 64.76 53.39 72.47 64.81 53.56
Random 71.45 63.34 51.92 71.49 63.40 52.01 71.67 63.82 52.76
Mean Activation 71.62 63.42 51.39 71.61 63.59 51.41 71.83 63.71 52.13

新窗口打开| 下载CSV


4. 结 语

本文采用标准差值衡量滤波器的重要程度,根据卷积层对裁剪的敏感程度经验性地设置每层裁剪占比压缩模型,以降低计算成本和存储资源. 在没有明显准确率损失的情况下,在数据集CIFAR-10上,VGG-16模型和ResNet模型的浮点操作运算量可以减少30%以上. 分别通过微调、随机初值训练和多次迭代训练裁剪后的模型发现,多次迭代训练的方式结果最好,但是时间花费较多. 在多数情况下,随机初值训练的方式比微调模型结果更好.

本文根据裁剪敏感度设置裁剪占比的方法是次优的,接下来的工作是进一步理解神经网络原理细节,找出卷积层最优裁剪占比算法,使得模型效果达到最优.

参考文献

KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks [C] // International Conference on Neural Information Processing Systems. Lake Tahoe: Curran Associates Inc., 2012.

[本文引用: 2]

GRAVES A, SCHMIDHUBER J

Framewise phoneme classification with bidirectional LSTM and other neural network architectures

[J]. Neural Netw, 2005, 18 (5): 602- 610

[本文引用: 1]

SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision [C] // International Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 2818-2826.

[本文引用: 1]

DENIL M, SHAKIBI B, DINH L, et al. Predicting parameters in deep learning [C] // Advances in Neural Information Processing Systems. Lake Tahoe: MIT, 2013: 2148-2156.

[本文引用: 2]

SRINIVAS S, BABU R V. Data-free parameter pruning for deep neural networks [EB/OL]. [2018-09-06]. http://arxiv.org/abs/1507.06149.

[本文引用: 1]

HAN S, POOL J, TRAN J, et al. Learning both weights and connections for efficient neural network [C] // Advances in Neural Information Processing Systems. Montreal: MIT, 2015: 1135-1143.

[本文引用: 1]

MARIET Z, SRA S. Diversity networks: neural network compression using determinantal point processes [EB/OL]. [2018-05-13]. http://arxiv.org/abs/1511.05077.

[本文引用: 1]

HAN S, MAO H, DALLY W J. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding [EB/OL]. [2018-08-09]. http://arxiv.org/abs/1510.00149.

[本文引用: 2]

SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [EB/OL]. [2018-07-22]. http://arxiv.org/abs/1409.1556.

[本文引用: 1]

IANDOLA F N, HAN S, MOSKEWICZ M W, et al. Squeezenet: Alexnet-level accuracy with 50x fewer parameters and < 0.5 mb model size [EB/OL]. [2018-07-14]. http://arxiv.org/abs/1602.07360.

[本文引用: 1]

HAN S, LIU X, MAO H, et al

EIE: efficient inference engine on compressed deep neural network

[J]. ACM Sigarch Computer Architecture News, 2016, 44 (3): 243- 254

DOI:10.1145/3007787.3001163      [本文引用: 1]

MATHIEU M, HENAFF M, LECUN Y. Fast training of convolutional networks through FFTs [EB/OL]. [2018-09-03]. http://arxiv.org/abs/1312.5851.

[本文引用: 1]

RASTEGARI M, ORDONEZ V, REDMON J, et al. XNOR-Net: ImageNet classification using binary convolutional neural networks [C] // European Conference on Computer Vision. Cham: Springer, 2016: 525-542.

[本文引用: 1]

WEN W, WU C, WANG Y, et al. Learning structured sparsity in deep neural networks [C] // Advances in Neural Information Processing Systems. Barcelona: MIT, 2016: 2074-2082.

[本文引用: 1]

LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient convents [EB/OL]. [2018-09-11]. http://arxiv.org/abs/1608.08710.

[本文引用: 4]

MITTAL D, BHARDWAJ S, KHAPRA M M, et al. Recovering from random pruning: on the plasticity of deep convolutional neural networks [EB/OL]. [2018-09-12]. http://arxiv.org/abs/1801.10447.

[本文引用: 2]

ZHU M, GUPTA S. To prune, or not to prune: exploring the efficacy of pruning for model compression [EB/OL]. [2018-06-23]. http://arxiv.org/abs/1710.01878.

[本文引用: 1]

HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition [C] // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 770-778.

[本文引用: 1]

ZAGORUYKO S. 92.45% on CIFAR-10 in Torch[EB/OL].[2018-07-30]. http://torch.ch/blog/2015/07/30/cifar.html.

[本文引用: 1]

IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift [EB/OL]. [2018-07-16]. http://arxiv.org/abs/1502.03167.

[本文引用: 1]

HU H, PENG R, TAI Y W, et al. Network trimming: a data-driven neuron pruning approach towards efficient deep architectures [EB/OL]. [2018-07-19]. http://arxiv.org/abs/1607.03250.

[本文引用: 1]

MOLCHANOV P, TYREE S, KARRAS T, et al. Pruning convolutional neural networks for resource efficient transfer learning [EB/OL]. [2018-07-03]. http://arxiv.org/abs/1611.06440.

[本文引用: 1]

/