ShuffleNet是由旷视推出的专门为移动设备设计的神经网络,主要使用了pointwise group convolution and channel shuffle这两个操作。实验在Arm端手机上运行,在保持精度不变的情况下,比 AlexNet提速了13倍。
一、Channel Shuffle for Group Convolutions
现在很多网络如Xception 和 ResNeXt都会使用深度可分离卷积或是组卷积来平衡计算量和网络性能。在这两种卷积中会使用1×11 \times 11×1卷积核,许多网络没有充分考虑点卷积,使得网络性能的损失。直接解决该问题的办法是通道稀疏连接,比如组卷积。通过卷积核在输入特征中相对应的通道上卷积,可以减少计算量。但是多个组卷积堆叠在一起,会产生一个问题:两层组卷积的特征输出和特征输入的通道保持不变,如Figure 1(a)所示。特征之间的通道没有进行交换。这种情况会阻碍信息的交互同时影响网络性能。如果我们将输入特征按通道重新排列,如Figure 1(b)(c)所示。这个 channel shuffle 是可微的同时可以嵌入进网络结构中进行端对端训练。这一操作可以加强网络性能。
二、ShuffleNet Unit
Figure 2(a)是一个残差块,(b)中使用1×11 \times 11×1点组卷积(pointwise group convolution)和Channel Shuffle来代替标准1×11 \times 11×1卷积,后面使用一个更加节约资源的深度卷积(depthwise convolution),最后同样是一个点组卷积。第二个点组卷积恢复特征的通道数量,以便和shortcut path相匹配,后面并没有加入Channel Shuffle从而减少计算。。ShuffleNet对小网络有挺大的优势,因为在资源有限的设备上使用神经网络,特征通道不会很多,ShuffleNet使用组卷积和深度卷积可以提高通道数量从而提升网络性能。为了避免过多的开销,只在残差块中使用一次深度卷积。作者发现虽然深度卷积在理论上有较大的资源节约,但是实际中却是更大计算和内存的消耗。
三、网络结构
Table 1是整个网络结构图,Stage是ShuffleNet Unit的堆叠,每经过一个stage输出通道会翻倍。设bottleneck channels是输出特征通道的14\frac{1}{4}41​。组卷积使用g来控制输入通道数量,同时调整输出通道以便保持整个网络的FLOPs保持不变。分组越多,输出的通道越多才能保持FLOPs不变。分组越多,提取的特征信息会越多。

三、消融实验
ShuffleNet的核心是点组卷积(Pointwise Group Convolutions)和shuffle操作,下面对这两个创新点做消融实验。
1.点组卷积的实验
Table 2中是对点组卷积进行实验,将组卷积的中ggg分别设置从1到8,当g=1g=1g=1时相当于没有分组,是普通标准卷积。实验在不同的模型大小基础上实验,Table 1中是基础的ShuffleNet网络结构,ShuffleNet s×s \timess×表明sss倍ShuffleNet 1×1 \times1× 中卷积核的数量。从表中可以得出结论:拥有点组卷积比没有点组卷积的网络效果好。说明增加特征通道可以增加网络性能。

2.Shuffle操作的实验
Table 3对Shuffle操作做了消融实验,可见在不同的情况下,Shuffle操作提高了网络性能。
3.网络结构的实验
Table 4中是对不同网络结构进行实验。作者将ShuffleNet中的stage2-4用不同的单元来代替ShuffleNet单元进行实验。在相同FLOPs下,ShuffleNet单元达到了最好的效果。

五、实际的加速
作者在ARM平台的移动端上进行了实验,测试实际加速效果。虽然随着点组卷积的组数增加,网络性能会提升,但是实际效率是更低的。作者发现理论上每4倍的计算复杂的降低,实际中是2.6倍的加速。

轻量化网络(五)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices相关推荐

  1. 网络结构(1)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

    论文目录 ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 引言 相关工作 高效模型设计 ...

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

    Abstract 我们介绍了一种名为ShuffleNet的极其计算高效的CNN架构,该架构专为计算能力非常有限的移动设备而设计.新架构采用了两种新的操作,逐点组卷积和通道切换,大大降低了计算成本,同时 ...

  3. 轻量化网络(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    轻量化网络研究(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 研究过深度学习的 ...

  4. 轻量化网络:ShuffleNet

    <ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices >来自face++, ...

  5. 轻量化网络:SqueezeNext

    <SqueezeNext: Hardware-Aware Neural Network Design> 于2018年3月公开在arXiv(美[ˈɑ:rkaɪv]) :https://arx ...

  6. 实时互动下视频 QoE 端到端轻量化网络建模

    在实时视频互动中,影响观众对视频体验的有较多且复杂的因素,包括:画质.流畅度以及与其耦合的观看设备等.传统客观算法会利用网络传输或编解码参数拟合接收端人的感知体验,或者使用图像质量结合其他相关参数拟合 ...

  7. 【轻量化网络系列(2)】MobileNetV2论文超详细解读(翻译 +学习笔记+代码实现)

    前言 上一篇我们介绍了MobileNetV1,主要是将普通Conv转换为dw和pw,但是在dw中训练出来可能会很多0,也就是depthwise部分得到卷积核会废掉,即卷积核参数大部分为0,因为权重数量 ...

  8. 【神经网络】(11) 轻量化网络MobileNetV1代码复现、解析,附Tensorflow完整代码

    各位同学好,今天和大家分享一下如何使用 Tensorflow 复现轻量化神经网络模型 MobileNetV1.为了能将神经网络模型用于移动端(手机)和终端(安防监控.无人驾驶)的实时计算,通常这些设备 ...

  9. 突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨happy 审稿丨邓富城 编辑丨极市平台 极市导读 本文从HRNet与轻量化网络ShuffleN ...

最新文章

  1. Delphi中的线程类
  2. vue 生命周期 笔记
  3. 现行高考政策公平 辩论_为这些考生高考加20分?这样的政策对其他考生公平吗?榕和奉献...
  4. QT如何让窗口放置在屏幕正中间
  5. Pycharm 2018 虚拟环境创建及解释器的设置(小白图解教程)
  6. 1.0 mysql的连接
  7. 图说Oracle基础知识
  8. python画画代码大全_python 相关主题_Debug5
  9. case when的判断顺序_Sql 中的if 判断 case... when
  10. 图论及其应用:第二次作业
  11. 三菱PLC Q系列经典大型12轴Q01U 实际使用中程序,详细中文注释
  12. 运算放大器分析----虚短和虚断简单计算
  13. throw 和 throws 的区别
  14. Javascirpt正则表达式知识归纳
  15. 【渝粤题库】陕西师范大学151109财务报告分析 作业(高起专)
  16. REBOL 3.0 即將支援 Unicode
  17. 试写博客:可匿名聊天,腾讯QQ6.3(12390)新版下载
  18. 微信分享链接自定义文案,微信jssdk配置
  19. 中国移动IMS手机客户端初体验
  20. 中国供销集团金优商城的简介

热门文章

  1. 体育数字化服务,全方位为学校体育赋能.
  2. 一文带你快速初步了解云计算与大数据
  3. python中sum函数的使用方法及实例_sum函数的使用方法及实例
  4. [豆趣]世界上仅存5只恐龙
  5. Java中的单例设计模式
  6. 【AI视野·今日Robot 机器人论文速览 第三十三期】Thu, 21 Apr 2022
  7. 如何使用@JsonFormat
  8. 【Mysql 学习笔记】DQL语句(非常详细,结合多个案例快速入门)
  9. 读深入分析Java Web重点笔记(一)
  10. win8服务器修改密码,Win8在哪里设置取消开机密码