轻量级网络模型之ShuffleNet

系列文章目录

=======================================================
专题-端侧机器学习

第一节 端侧机器学习框架Tensorlfow Lite
第二节 轻量级网络模型之MobileNet系列
第三节 轻量级网络模型之ShuffleNet
第四节 轻量级网络模型之EfficientNe
第五节 Android应用APP: 基于MobileNet和EfficientNet的图像分类模型

=======================================================


参见文章: ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile
Devices

文章要点

  1. 作者提出了一个针对移动设备的高效卷积模型ShuffleNet
  2. 作者基于pointwise group convolution 和 channel shuffle 提出了一个高效的卷积网络building block: Shuffle Unit.

模型结构

模型配置如下表所示:
在这里插入图片描述
可以看到除了开始的Conv 1 + MaxPool 以及结尾的GlobalPoolFC,中间的网络共分为三个阶段: Stage 2, Stage 3, Stage 4, 每个Stage由3个ShuffleNet Unit构成, ShuffleNet Unit 有两种配置:一种时stride为1,另一种是stride=2, 两种结构的示意图如下:
在这里插入图片描述
(左边为stride=1, 右边为stride=2),下面对ShufflesNet Unit的设计原理作以深入的分析。

ShuffleNet Unit

设计原理

在面向移动设备的网络模型设计中, 为了满足模型的复杂性约束, #chanels不能太大 (#channels越大,越有助于提升模型的Accuracy), 而pointwise convolution本身是一个代价高昂的操作, 这进一步限制了所能使用的**#channels** 。为了解决这个问题,一个直接的想法就是采用分组卷积group convolution, 然而group convolution存在的问题是: 当多个group convolution进行Stack时, 最终的输出中,每个channel仅与输入中的某个组的chanel有关,这阻碍了group间channel的信息流动,从而限制了网络的表达能力。为此,作者又引入了channel shuffle, 即在group convolution间插入 channel convolution, 从而克服了这个问题。

ShuffleNet Unit 中的核心概念就是 group convolutionchannel shuffle。 如下图所示,(b)是在(a)的 stacked group convolution基础上插入channel shuffle后的示意图,(c)是(b)的等价实现: 假设第一层 convolution的输出尺寸为(g,n), g为组数,n为每组的channel数量, 只需要对其进行reshape然后再按行flatten即可。
在这里插入图片描述

ShuffleNet unit结构

ShuffleNet unit 采用了ResNet中的bottleneck 结构(下图最左边), 并对其做了以下几点修改:
(1)将1x1 conv替换为1x1 group conv.;
(2) 将bottleneck的3x3常规conv.替换为3x3 depthwise conv.;
(3)在depthwise conv.之前加入了channel shuffle操作。.

特别注意
(1)受XCeption的启发,在ShuffleNet unitdepthwise conv.操作后去掉了非线性映射nonlinearity

stride=2ShuffleNet unit相对于stride=1ShuffleNet unit区别在于:
(1)Shortcut path 中 采用了 3x3AVG pool (stride=2), 目的是为了与residual path输出的feature map的spatial 尺寸进行匹配;
(2)将两个path的聚合方式由逐像素的Add 操作替换为channel方向的Concentation操作, 原文中解释这种方式能够极大提升#channels.

在这里插入图片描述

References

1.ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MasterQKK 被注册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值