本文档记录 mobilenetv3_small_075.lamb_in1k 图像分类模型在 Ascend 910B3 NPU 上的适配与验证结果。
MobileNetV3 是 Google 提出的轻量级 CNN 模型,采用深度可分离卷积、SE 模块和 hard-swish 激活函数。mobilenetv3_small_075 是 MobileNetV3 Small 系列中宽度乘子为 0.75 的版本,参数量约 2.0M。
主要工作:
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_small_075.lamb_in1k', local_dir='./mobilenetv3_small_075.lamb_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_small_075.lamb_in1k --image test.jpg --device npu模型加载正常,NPU 推理返回 top-5 分类结果。
测试条件:batch_size=32,200 样本,100 次基准迭代。
| 指标 | NPU (Ascend 910B3) | CPU |
|---|---|---|
| 平均延迟 | 8.13 ms (bs=32) | 42.43 ms |
| 单样本延迟 | 5.69 ms | 42.43 ms |
| 吞吐量 | 3938.35 img/s | 23.57 img/s |
| 加速比 | 7.46x | 1x |
使用 200 张随机输入图片进行 CPU vs NPU 对比。
| 指标 | 数值 |
|---|---|
| 最大绝对误差 | 1.67e-02 |
| 最大相对误差 | 0.18% |
| 平均相对误差 | 0.09% |
| 最小余弦相似度 | 0.99999970 |
| 结论 | ✓ 通过(相对误差 < 1%) |
评测命令:
python eval.py --model_path ./mobilenetv3_small_075.lamb_in1k --num_images 200 --batch_size 32pytorch_model.bin 加载,支持 safetensors 格式。timm.data.create_transform 自动配置,无需手动设置。