《Channel Pruning for Accelerating Very Deep Neural Networks》论文笔记

本文介绍了《Channel Pruning for Accelerating Very Deep Neural Networks》论文,提出了一种基于LASSO回归的通道选择和最小二乘重构的迭代算法,用于有效剪枝深度网络。这种方法能减少累积误差,提高结构适应性,并在VGG-16、ResNet-50和Xception-50等模型上实现显著加速,同时保持较低的性能损失。
摘要由CSDN通过智能技术生成

1. 概述

这篇文章提出了一种基于LASSO回归的通道选择和最小二乘重构的迭代两步算法,有效地对每一层进行修剪。并进一步将其推广到多层和多分枝的场景下。论文中的方法能够减少累积误差并且提升对于不同结构的适应性。该方法在VGG-16数据集上实现了5倍加速并且只有0.3%误差提升。更重要的是文章中的方法可以用于加速像ResNet和Inception,在加速两倍的情况下只牺牲了1.4%和1.0%的准确率。基于caffe的代码开源:channel-pruning
在这里插入图片描述
图中(a)代表原始的网络结构,接下来就要对其进行剪裁,可以分为如下几种情况:
1)sparse connection,也就是是的网络中的神经元或是channel连接稀疏;
2)tensor factorization,采用类似GoogleNet之类的结果来降低参数量。
3)channel pruning,就是裁剪channel来使得网络减小。

在这篇文章中提出了一种利用通道内部荣誉实现一种时间推理的通道剪枝方法。这个方法的灵感来自于张量因式分解的启发,而不是依靠分析滤波器的权重大小。这是通过使剪枝之后的网络在剪枝之处特征图的重构错误最小化实现的。
在这里插入图片描述
上图展示了通道剪裁加速网络的示意图。我们减少feature map B的数量,同时使得由剪裁之后的B得到feature map C的重构误差最小。上图中B前面的两个channel被剪裁掉了,对应在B中的feature map也会被剪裁掉。

通道剪裁分为两步:
1)通过LASSO回归选择重要的channel,剪除不重要的channel;
2)使用最小二乘法去减小剩余feature map重构下一层feature map的误差。
在VGG-16网络上实现了4倍加速,而且只增加了1%的top 5错误率,与张量分解结合可以使其实现5被加速且只增加0.3%错误率。在ResNet-50与Xception-50上实现2倍加速,只损失了1.4%与1.0%的准确率。

2. 剪枝

2.1 基本结构

通道剪裁涉及到两点:选择需要剪裁的通道;使用剩下的通道去重建下一层的feature map,然后使得这个重建的误差最小化。
那么接下来就是需要解决如何确定剪裁的通道(规定了必须剪裁掉的数量)并且使得重构的误差最小化。这就是一个组合优化问题,那么论文中是怎么做的呢?那就是将这个问题转换为一个最优化问题,如下形式:
在这里插入图片描述
其中 X = N ∗ c ∗ k h ∗ k w X=N*c*k_h*k_w X=Nckhkw

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值