经典CNN结构之ShuffleNet v1/v2

序言

ShuffleNet由旷视科技提出,V1版2017年推出,V2版2018年,晚于2016年出炉的SqueezeNet(fire-module),是一种轻量级计算高效的CNN模型,目的在于处理好速度和精度之间的平衡,即如何利用有限的计算资源来实现更高的模型推断精度。
立意方向:模型结构设计,而非模型压缩量化。

网络结构

图解

ShuffleNet V1

paper-table-1

ShuffleNet V2

paper-figure-1

详解

ShuffleNet V1

Channel Shuffle
paper-figure-1

ShuffleNet Units
paper-figure-2

ShuffleNet V2

优化真是精细,先提出问题:
1.除了FLOPs,还应考虑memory access cost;
2.网络的parallelism影响运行速度;
3.与硬件平台极为相关(个人认为这才是key point)。
再提网络设计指导原则:
1.保持卷基层的输入输出通道相同;卷积层的输入和输出特征通道数相等时MAC最小,此时模型速度最快;
2.小心使用分组卷积;过多的group操作会增大MAC,从而使模型速度变慢;
3.减少使用碎片化的操作;碎片化分支数量越少,模型速度越快;
4.减少元素级的操作;element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多。
作者还分析了一些比较火的网络结构:ShuffleNetV1违反了2,bottleneck的结构违反了1,而MobileNetV2使用的inverse bottleneck的结构违反了1,其中嵌入的DWconv和Relu都违反了4,自动生成结构(auto-generated structures)高度碎片化违反了3。

创新思想

核心点

ShuffleNet V1

pointwise group convolution
channel shuffle

ShuffleNet V2

【内存访问消耗时间(memory access cost)】
四条轻量化网络设计指导原则

感悟点

论文写的挺好,有理有据有节,毫无疑问,ShuffleNet确实是个good work,V2中更是对网络运行速度展开了深入的思考;but于我的工程实战中差强人意,项目落地中罕有使用。

参考论文

1.ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices. Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun. Megvii Inc (Face++)
2.ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design. Ningning Ma, Xiangyu Zhang, Hai-Tao Zheng, Jian Sun. Megvii Inc (Face++)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值