原文
pytorch代码
参考文献
[1]https://blog.csdn.net/m_buddy/article/details/93387203
[2]https://blog.csdn.net/DL_wly/article/details/90168883
摘要
这篇文章在MobileNet v2的基础上提出了一个新型的轻量级网络结构MobileNet v3。其是用NAS与NetAdapt两个算法搜索出来的。这篇文章针对MobileNet v3给出了两个版本的实现MobileNetV3-Large和MobileNetV3-Small,分别应对资源消耗高低的场景。这两个网络结构成功用于目标检测与语义分割任务中。对于语义分割任务文章提出了一个新的高效解码器LR-ASPP(Lite Reduced Atrous Spatial Pyramid Pooling)。相对MobileNet v2这篇文章给出的两种网络结构分别提升了4.6%与3.2%,速度上快了5%与15%。在检测与分割任务上使用large的版本比MobileNet v2在相同精度下快了25%和30%。
1、MobileNetV3 block
上面两张图是MobileNetV2和MobileNetV3的网络块结构。可以看出,MobileNetV3是综合了以下三种模型的思想:MobileNetV1的深度可分离卷积(depthwise separable convolutions)、MobileNetV2的具有线性瓶颈的逆残差结构(the inverted residual with linear bottleneck)和MnasNet的基于squeeze and excitation结构的轻量级注意力模型。
综合了以上三种结构的优点设计出了高效的MobileNetV3模块。
2、 互补搜索技术组合
(1)资源受限的NAS(platform-aware NAS):计算和参数量受限的前提下搜索网络的各个模块,所以称之为模块级的搜索(Block-wise Search)。
(2)NetAdapt:用于对各个模块确定之后网络层的微调。
对于模型结构的探索和优化来说,网络搜索是强大的工具。研究人员首先使用了神经网络搜索功能来构建全局的网络结构,随后利用了NetAdapt算法来对每层的核数量进行优化。对于全局的网络结构搜索,研究人员使用了与Mnasnet中相同的,基于RNN的控制器和分级的搜索空间,并针对特定的硬件平台进行精度-延时平衡优化,在目标延时(~80ms)范围内进行搜索。随后利用NetAdapt方法来对每一层按照序列的方式进行调优。在尽量优化模型延时的同时保持精度,减小扩充层和每一层中瓶颈的大小。