ShuffleNet

本文介绍旷视科技最近提出来的ShuffleNet, 目的同样也是利用特殊的网络结构达到参数少速度快的效果。

文章链接: 《ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices》

caffe实现: https://github.com/farmingyard/ShuffleNet

1. 方法介绍

方法很容易理解,如下图:

(1) 图a是一般的group convolution的实现效果(原理可以参考我的另一篇博文中的描述)。 其造成的问题是,输出通道只和输入的某些通道有关,导致全局信息流通不畅,网络表达能力不足。

(2) 图b就是本文的方法啦。 即通过均匀排列,把group convolution后的feature map按通道进行均匀混合, 这样就可以更好的获取全局信息了。 图c是操作后的等价效果图。

2. ShuffleNet Unit

整个ShuffleNet同样采用了类似于ResNet一样的模块化设计,如下图:

(1) 图a是之前的一种ResNet网络结构模块,其参考了“MobileNet”的实现。其中的DWConv指的是 depthwise convolution。

(2) 图b是本文给出的一种模块(输出前后feature的size不变), 相比于图a,只是将第一个1x1卷积改成了group convolution,同时后续增加通道 shuffle。

(3) 图c是本文给出的另一种模块(输出前后feature的size变小,但通道数增加),主要是为了应对下采样问题。 注意,最后的合并操作由原来的 “Add” 变成了 “Concat”, 目的是为了增加通道数。

3. 网络结构

原始版本的ShuffleNet的结构如下:(为了保证参数量基本一致,当使用不同group时作者调整了feature map的数量)

不同配置下的网络性能对比图:

  • “s x”表示feature map的channels数量与原始结构的比例;
  • arch2: 将stage3中的两个单元移除,同时增加整体的网络宽度。对于小网络,feture map的宽度至关重要。

4. 实验效果

下面给出ShuffleNet 同之前一些网络的对比效果:

整体上来看,相比Xception和Mobilenet,ShuffleNet都获得了性能上的提升,至于速度带来的提升则不是很明显。 毕竟,ShufflleNet的主要改进就只是增强了全局信息的流通。

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值