shuffleNet V2

本文转自:https://blog.csdn.net/liu1152239/article/details/81477753

论文出发点:旨在设计一个轻量级但是保证精度、速度的深度网络

分析当前:

1、直接用FLOP来衡量算力,不够准确。因为不同的网路,即使参数量相同(模型大小相同),但是模型速度还是存在差异。改为直接用速度(speed)来衡量

2、直接影响速度的因素,首先MAC,比如分组卷积,需要强大的算力对设备GPU是个挑战;其次并行度。

因此,设计网络需要考虑:speed和platform

同时提出4条设计准则:注意,这些设计准则是权衡了速度和精度的针对轻量型网络提出的准则。

1、同等通道可以最小化MAC(即:让c1 = c2),所以PW(1x1)卷积的升维降维就影响MAC
在这里插入图片描述
2、过多的分组卷积增大MAC(从公式看出,随着g的增大,MAC增大)
在这里插入图片描述
3、网络碎片会影响并行化 (building block中的分支)

4、元组的操作开销是不可忽略的

基于这4条规则,论文设计了shufflenetV2轻量化网络结构。

轻量化网络:

要在给定参数条件下,限制feature map的通道数,那如何在不增加参数量的前提下还能保证feature map的通道数呢?使用分组卷积和深度可分离卷积,但是这两个卷积方式都违背了设计准则。

  1. shufflenetv2提出了channel split, 将C通道的featur map分离成两branch(C1, C-C1)
  2. 其中一个branch直连(保留identity)
  3. 另一个branch连接三个具有同等输入输出通道的卷积,且一头一尾的两个1x1的卷积就是标准的卷积,不是分组卷积
  4. 最后,两个branch直接拼接

相比, shufflenetv1,不再有元组操作(elt-wise add)
shufflenetV2主要结构如c,d图所示
在这里插入图片描述
c图是同feature map尺寸的,有split, concact, shuffle
d图是降采样的,没有split,所以通道数翻倍,feature map大小缩倍

具体可视化后的building block如下图:第一个是D结构,第二个是C结构。
在这里插入图片描述
在这里插入图片描述
亲测,shuffleNetV2的参数量和算力是碾压式的小!但是训练的时候很占显存,因为网络很深,feature map很多。但是如果只是推理还是很值得一试。





更多案例请关注“思享会Club”公众号或者关注思享会博客:http://gkhelp.cn/



在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值