《Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks》论文笔记

本文介绍了SFP(Soft Filter Pruning)算法,一种在训练过程中逐步剪枝并保留模型容量的方法,减少了对预训练模型的依赖。通过在每个epoch后根据Lp-norm度量标准剪枝,SFP在ResNet-101上实现了42%的计算量减少,同时提高了2%的top-5准确率。相较于传统硬剪枝,SFP保持了网络的表达能力和精度,实验表明L2-norm优于L1-norm。
摘要由CSDN通过智能技术生成

1. 概述

这篇文章中给出了一种叫作SFP(Soft Filter Pruning),它具有如下两点优点:
1)Larger model capacity。相比直接剪裁掉网络中的filters,再在这个基础上finetune,这篇论文中的方法将其保留,这为优化网络的表达以及任务能力提供了更多空间。
2)Less dependence on the pretrained model,采用上述的方法可使网络连续剪枝和重新练,可以从网络的训练开始就进行剪枝,不需要再训练好一个模型之后再剪枝,节省了很多时间。
使用论文中的方法使得ResNet-101节省了42%的计算量,而且top-5的错误率还获得了2%的提升!
论文地址:Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks
代码地址:soft-filter-pruning
在下面一幅图中比较了论文中给出的SFP算法与传统剪枝算法(Hard Filter Pruning)的比较。
在这里插入图片描述
传统减值方法中filters被删除掉了就不会继续回到网络中参与训练,需要预训练模型,剪枝之后再fintune去逼近原来的状态。这样的结构限制了网络的表达能力。相反论文中提出的方法是在训练的时候边剪枝边训练,一个epoch之后对模型剪枝,剪除的filters其内部权值全部被置为0,然后下一个epoch训练。如此往复得到最后的模型。这样做的好处是剪枝不是不可恢复的操作,网络的表达能力并没有被减小且精度得到了保障,同时网络被剪裁。

2. SFP算法

2.1 算法整体流程

下图是算法的整体流程:
在这里插入图片描述
在上图中对 k k k次epoch进行剪枝,检测的策略是根据 L p − n o r m L_p-norm Lpnorm进行度量,之后剪除比较小的权重(也就是filters置为0)。之后再在下一个epoch中进行迭代。

2.2 算法具体步骤

对于CNN网络中的卷积参数可以使用 W ( i ) W^{(i)} W(i)来表示,其为 W ( i ) ∈ R N i + 1 ∗ N i ∗ k ∗ k W^{(i)}\in R^{N_{i+1}*N_i*k*k} W(i)RNi+1Nikk,代表第 i i i个卷积层的卷积参数矩阵, N i N_i Ni代表第 i i i个卷积的feature map数量, k k k代表卷积核的尺寸。那么对应的第 i i i层的feature map为 U U U,空间尺度为 N i ∗ H i ∗

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码修剪卷积神经网络用于资源高效推理,是一种优化模型的方法,旨在减小模型的尺寸和计算量,从而实现在资源受限的设备上进行高效推理。 修剪是指通过删除模型中的一些参数或神经元来减小模型的复杂性。在卷积神经网络中,修剪通常包括删除一些卷积核或通道,以及减少连接权重的数量。这可以通过一些算法和技术来实现,例如剪枝算法、稀疏矩阵和低秩近似等。 修剪卷积神经网络可以带来多个好处。首先,它可以大大减小模型的尺寸,从而降低了存储模型所需的内存空间。其次,修剪可以减少模型的计算量,使得模型可以更快地进行推理。这对移动设备和嵌入式系统等资源受限的设备非常重要。此外,修剪还可以提高模型的泛化能力,减少过拟合的风险。 对于修剪卷积神经网络的代码实现,一般分为两个步骤。首先,需要训练一个初始的卷积神经网络模型。然后,通过一些修剪算法选择要修剪的参数或神经元,并将其从模型中移除。修剪的目标可以是按照权重大小或梯度大小进行选择。 在实际编程中,代码可以使用一些深度学习框架(如PyTorch或TensorFlow)来实现。这些框架通常提供了一些修剪工具和函数,以便进行参数和神经元的修剪。开发者需要根据具体的应用场景和需求来选择合适的修剪策略,并根据框架的API来实现修剪过程。 总之,代码修剪卷积神经网络是一种资源高效推理的方法,通过减小模型的尺寸和计算量,提高模型的效率和性能。这对于在资源受限的设备上进行深度学习推理任务非常有意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值