目录
前言
一、ShuffleNetV2带来的创新点四条轻量化网络设计原则
1.1 准则一:相同的输入输出通道数能够减少内存访问成本(MAC)
1.2 准则二: 过多的分组卷积会增加 MAC
1.3 准则三: 网络的碎片化程度会减少并行化程度(碎片化操作对并行加速不友好)
1.4 准则四: 逐元素操作带来的内存和耗时是不可忽略的(不能忽略元素级操作)
二、ShuffleNetV2网络结构
2.1 ShuffleNetV2 Unit
2.2 ShuffleNetV2网络结构
三、ShuffleNetV2 模型性能
前言
2018年发表在ECCV上的论文
预备知识:机器学习、深度学习、计算机视觉
卷积神经网络概述
https://www.bilibili.com/video/BV1sb411P7pO
https://www.bilibili.com/video/BV1gb411P7JD
卷积神经网络精讲
https://www.bilibili.com/video/BV1K7411W7So?p=5
https://www.bilibili.com/video/BV1K7411W7So?p=6
经典卷积神经网络结构
https://www.bilibili.com/video/BV1K7411W7So?p=11
谷歌轻量化卷积神经网络MobileNet V1、MobileNet V2
https://www.bilibili.com/video/BV16b4y117XH
https://www.bilibili.com/video/BV1AL411G77N
旷视轻量化卷积神经网络ShuffleNet V1
https://www.bilibili.com/video/BV1dO4y1m7oY
一、ShuffleNetV2带来的创新点四条轻量化网络设计原则
下图中四个饼图反映了不同的轻量化模型在不同的硬件平台上它们计算开销的分布。
Ma 等人[12]发现,FLOPs 作为一个间接的指标,只能大致地估测运行速度,与速度并不完全相符。主要原因有两方面:一是很多操作无法被算入 FLOPs 中,例如内存访问成本(memory access cost,简称 MAC)、并行化程度等; 二是受到计算平台的影响。
Ma 等人[12]提出了 4 种轻量级网络的指导方案:
(1) 相同的输入输出通道数能够减少内存访问成本(MAC);
(2) 过多的分组卷积会增加 MAC;
(3) 网络的碎片化程度会减少并行化程度;
(4) 不能忽略元素级操作。
1.1 准则一:相同的输入输出通道数能够减少内存访问成本(MAC)
1×1卷积是在整个轻量化网络中计算量最大、参数量最多的部分,下图给出了在MobileNetV1论文中各层计算量和参数量的分布。
Input经过1×1卷积后得到Output这一过程中,FLOPs以及MAC计算如下所示:
在相同的输入输出通道数时内存访问成本(MAC)最少,证明如下:
实验如下:
实验表明输入输出通道比为1:1时,模型推理是最快的。
1.2 准则二: 过多的分组卷积会增加 MAC
准则二的理论证明:
准则二的验证实验
1.3 准则三: 网络的碎片化程度会减少并行化程度(碎片化操作对并行加速不友好)
准则三的验证实验如下:
譬如:InceptionV4
譬如:NasNet
1.4 准则四: 逐元素操作带来的内存和耗时是不可忽略的(不能忽略元素级操作)
二、ShuffleNetV2网络结构
2.1 ShuffleNetV2 Unit
根据1.1~1.4提及的轻量化网络设计准则,Ma等人设计出了ShuffleNetV2网络的基本单元。
2.2 ShuffleNetV2网络结构
三、ShuffleNetV2 模型性能