本文档记录 mobilenetv3_large_100.ra_in1k 图像分类模型在 Ascend 910B3 NPU 上的适配与验证结果。
MobileNetV3 是 Google 提出的轻量级 CNN 模型,采用深度可分离卷积、SE 模块和 hard-swish 激活函数。mobilenetv3_large_100 是 MobileNetV3 Large 系列中宽度乘子为 1.00 的版本,参数量约 5.5M。
主要工作:
timm 格式的 MobileNetV3 模型相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch-npu | 2.8.0.post4 |
timm | 1.0.27 |
transformers | 4.57.6 |
Ascend 910B3(8 逻辑卡)3 x 224 x 224pip install torch torchvision torch_npu -i https://repo.huaweicloud.com/repository/pypi/simple
pip install timm transformers pillow -i https://repo.huaweicloud.com/repository/pypi/simplefrom modelscope import snapshot_download
snapshot_download('timm/mobilenetv3_large_100.ra_in1k', local_dir='./mobilenetv3_large_100.ra_in1k')# 单张图片推理
python inference.py --image /path/to/image.jpg --topk 5
# 批量推理
python inference.py --image_dir /path/to/images/
# URL 图片
python inference.py --image https://example.com/cat.jpgpython inference.py --model_path ./mobilenetv3_large_100.ra_in1k --image test.jpg --device npu模型加载正常,NPU 推理返回 top-5 分类结果。
测试条件:batch_size=32,200 样本,100 次基准迭代。
| 指标 | NPU (Ascend 910B3) | CPU |
|---|---|---|
| 平均延迟 | 8.94 ms (bs=32) | 32.91 ms |
| 单样本延迟 | 5.27 ms | 32.91 ms |
| 吞吐量 | 3581.25 img/s | 30.39 img/s |
| 加速比 | 6.25x | 1x |
使用 200 张随机输入图片进行 CPU vs NPU 对比。
| 指标 | 数值 |
|---|---|
| 最大绝对误差 | 4.28e-03 |
| 最大相对误差 | 0.21% |
| 平均相对误差 | 0.07% |
| 最小余弦相似度 | 0.99999863 |
| 平均余弦相似度 | 0.99999972 |
| 结论 | ✓ 通过(相对误差 < 1%) |
评测命令:
python eval.py --model_path ./mobilenetv3_large_100.ra_in1k --num_images 200 --batch_size 32pytorch_model.bin 加载,支持 safetensors 格式。timm.data.create_transform 自动配置,无需手动设置。