HuggingFace镜像/mobilenetv3
模型介绍文件和版本分析
下载使用量0

MobileNetV3

Searching for MobileNetV3

简介

MobileNetV3 发布于 2019 年,该版本融合了 V1 的深度可分离卷积、V2 的反向残差结构和线性瓶颈,以及 SE 模块,并利用 NAS(神经架构搜索)来搜索网络的配置和参数。MobileNetV3 首先使用 MnasNet 进行粗略的结构搜索,然后通过强化学习从一组离散选项中选择最优配置。之后,MobileNetV3 再使用 NetAdapt 对架构进行微调,这体现了 NetAdapt 在以微小性能下降为代价调整未充分利用的激活通道方面的互补能力。

mobilenet-v3 提供两个版本,即 mobilenet-v3 large 和 mobilenet-v3 small,以适应不同资源需求的场景。论文中提到,在 ImageNet 分类任务上,mobilenet-v3 small 相比 mobilenet-v2 准确率提升约 3.2%,推理时间减少 15%;mobilenet-v3 large 相比 mobilenet-v2 准确率提升约 4.6%,推理时间减少 5%;在 COCO 分割算法中,mobilenet-v3 large 与 v2 达到相同准确率的同时,速度提升了 25%。[1]

图 1. MobileNetV3 架构 [1]

结果

我们在 ImageNet-1K 上复现的模型性能如下表所示。

模型训练环境Top-1 (%)Top-5 (%)参数 (M)配置文件下载链接
mobilenet_v3_small_100D910x8-G68.1087.862.55yamlweights
mobilenet_v3_large_100D910x8-G75.2392.315.51yamlweights

说明

  • 训练环境:训练环境表示为 {设备}x{数量}-{MindSpore 模式},其中 MindSpore 模式可以是 G - 图模式或 F - 带 ms function 的动态图模式。例如,D910x8-G 表示使用 8 张 Ascend 910 NPU 以图模式进行训练。
  • Top-1 和 Top-5:在 ImageNet-1K 验证集上报告的准确率。

快速开始

准备工作

安装

请参考 MindCV 中的安装说明。

数据集准备

请下载ImageNet-1K数据集用于模型训练和验证。

训练

  • 分布式训练

使用预定义的训练方案可以轻松复现报告的结果。若要在多台 Ascend 910 设备上进行分布式训练,请运行

# distributed training on multiple GPU/Ascend devices
mpirun -n 8 python train.py --config configs/mobilenetv3/mobilenet_v3_small_ascend.yaml --data_dir /path/to/imagenet

如果脚本由 root 用户执行,则必须在 mpirun 中添加 --allow-run-as-root 参数。

同样,您可以使用上述 mpirun 命令在多个 GPU 设备上训练模型。

有关所有超参数的详细说明,请参阅 config.py。

注意: 由于全局批处理大小(batch_size × num_devices)是一个重要的超参数,为确保复现性,建议保持全局批处理大小不变,或者根据新的全局批处理大小对学习率进行线性调整。

  • 单机训练

如果您希望在较小的数据集上训练或微调模型,而不进行分布式训练,请运行:

# standalone training on a CPU/GPU/Ascend device
python train.py --config configs/mobilenetv3/mobilenet_v3_small_ascend.yaml --data_dir /path/to/dataset --distribute False

验证

为验证训练模型的准确性,您可以使用 validate.py 并通过 --ckpt_path 参数解析检查点路径。

python validate.py -c configs/mobilenetv3/mobilenet_v3_small_ascend.yaml --data_dir /path/to/imagenet --ckpt_path /path/to/ckpt

部署

请参考 MindCV 中的部署教程。

参考文献

[1] Howard A, Sandler M, Chu G, et al. Searching for mobilenetv3[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2019: 1314-1324.