g
gyccc/timm_mobilenetv2_100.ra_in1k-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/mobilenetv2_100.ra_in1k on Ascend NPU

1. 简介

本项目将 timm/mobilenetv2_100.ra_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910B)单卡环境运行。

  • 模型来源:ModelScope 魔搭社区
  • 模型页面:https://www.modelscope.cn/models/timm/mobilenetv2_100.ra_in1k
  • 下载方式:modelscope snapshot_download
  • 模型加载:timm.create_model(pretrained=False) + ModelScope 本地权重加载
  • 权重文件:model.safetensors(同时存在 pytorch_model.bin)
  • 预处理:timm.data.resolve_model_data_config + timm.data.create_transform
  • 运行设备:npu:0

重要说明:本适配严格禁止 timm.create_model(..., pretrained=True),未触发 HuggingFace Hub 下载,全部通过 ModelScope 本地权重完成加载。

2. 验证环境

项目版本
NPU 型号Ascend910B4
CANN8.5.1
Python3.11.14
torch2.9.0+cpu
torchvision0.24.0
torch_npu2.9.0.post1+gitee7ba04
transformers4.57.6
timm1.0.27
modelscope1.35.3
safetensors0.7.0

3. 推理运行

依赖安装

pip install -r requirements.txt

注意:torch_npu 通常由昇腾容器环境预装,如未安装请参考华为官方文档。

运行命令

python inference.py

日志路径

  • 推理日志:logs/inference.log
  • 预测结果:logs/prediction.txt

4. Smoke 验证

torch.npu.is_available(): True
torch.npu.device_count(): 1
torch.npu.get_device_name(0): Ascend910B4

单张图片 NPU 推理 Top-5 结果(无 id2label,使用 class_x 作为标签):

RankLabelIndexProbability
1class_6816810.554698
2class_6206200.108977
3class_8108100.053834
4class_5085080.031676
5class_6736730.027956

5. 性能参考

在 Ascend910B4 单卡上,使用 torch.npu.synchronize() 精确计时,结果如下:

指标数值
平均 latency24.024 ms
最小 latency11.288 ms
最大 latency45.597 ms
p5016.888 ms
p9044.580 ms
p9545.088 ms
吞吐量41.62 images/sec
  • Warm-up runs: 2
  • Benchmark runs: 10

6. 精度评测

CPU vs NPU Smoke 一致性验证结果(非官方 ImageNet 数据集精度):

指标数值
max_abs_diff (logits)6.05678558e-03
mean_abs_diff (logits)1.20725273e-03
prob_max_diff1.00955367e-04
Top-1 matchTrue (681 vs 681)
Top-5 matchTrue

7. 自验证截图

请查看 screenshots/ 目录下的自验证截图和文本摘要。

8. 日志文件

文件说明
logs/model_check.log阶段 0 模型下载与可用性检查
logs/env_check.log阶段 2 环境检查
logs/inference.log推理日志
logs/prediction.txtTop-5 预测结果
logs/accuracy.logCPU/NPU 精度一致性验证
logs/benchmark.log性能基准测试

9. 注意事项

  1. 无 id2label:该 timm 模型未提供 id2label 映射文件,因此输出使用 class_x 作为占位标签名。如需真实 ImageNet 标签,可自行引入 imagenet_class_index.json。
  2. 权重加载:使用 ModelScope snapshot_download 下载后,通过 safetensors.torch.load_file 加载 model.safetensors,严禁 pretrained=True。
  3. 预处理:使用 timm 官方 resolve_model_data_config + create_transform,无需额外配置。
  4. 显存与内存:MobileNetV2 为轻量级模型,单卡 32GB HBM 完全充足。
  5. exit code 137 / OOM:如遇到进程被杀死,请检查系统内存或容器内存限制。
  6. 占位图:测试图片 assets/test.jpg 来自 picsum.photos,如无法下载将自动生成占位图。

10. 标签

#NPU