算法笔记"/>
CondenseNet算法笔记
论文:CondenseNet: An Efficient DenseNet using Learned Group Convolutions
链接:.09224
代码地址:(PyTorch)
一作是康奈尔大学的黄高,主要在于优化了DenseNet网络,使其计算效率更高且参数存储更少。在DenseNet博客中介绍过DenseNet最大的一个缺点就是显存占用较大,主要原因在于生成了额外的较多特征层。在DenseNet后面紧接着有一篇技术文章通过开辟统一存储空间用于存储额外生成的特征,可以在一定程度上减少模型训练时候的显存占用。这篇文章则主要通过卷积的group操作以及在训练时候的剪枝来达到降低显存提高速度的目的。作者的实验证明,CondenseNet可以在只需要DenseNet的1/10训练时间的前提下,达到和DenseNet差不多的准确率。
总结下这篇文章的几个特点:1、引入卷积group操作,而且在1*1卷积中引入group操作时做了改进。2、训练一开始就对权重做剪枝,而不是对训练好的模型做剪枝。3、在DenseNet基础上引入跨block的dense连接。
文中有和ShuffleNet、MobileNet等模型压缩加速算法的对比,这两个算法主要采用depth-wise separable convolution达到提速和压缩的效果,可以参考博客:ShuffleNet、MobileNet。
Figure1中左边图是DenseNet的结构。第三层的1*1 Conv主要起到channel缩减的作用(channel数量从lk减到4k),第五层的3*3 Conv生成k个channel的输出。Figure1中间图是CondenseNet在训练时候的结构,Permute层的作用是为了降低引入1*1 L-Cconv对结果的不利影响,实现的是channel之间的调换过程。需要注意的是原来1*1 Conv替换成了1*1 L-Conv(learned group convolution),原来的3*3 Conv替换成了3*3 G-Conv(group convolution)。F
更多推荐
CondenseNet算法笔记
发布评论