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

timm/mobilenetv3_small_100.lamb_in1k on Ascend NPU

1. 简介

本项目将 timm/mobilenetv3_small_100.lamb_in1k 图片分类模型适配为可在单卡昇腾 NPU(Ascend910B)上运行的工程。

  • 模型来源:ModelScope 魔搭社区
  • 模型页面:https://www.modelscope.cn/models/timm/mobilenetv3_small_100.lamb_in1k
  • 模型类型:Image Classification
  • 模型大小:~10 MB
  • 输入尺寸:224x224
  • 输出类别:1000(ImageNet-1k)

2. 验证环境

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

3. 推理运行

依赖安装

pip install -r requirements.txt

运行命令

# 单图推理
python inference.py

# CPU vs NPU 一致性验证
python eval_accuracy.py

# 性能基准测试
python benchmark.py

日志路径

  • logs/inference.log — 推理结果
  • logs/prediction.txt — Top-5 预测摘要
  • logs/accuracy.log — CPU/NPU 一致性对比
  • logs/benchmark.log — 性能基准结果
  • logs/env_check.log — 环境检查

4. Smoke 验证

  • torch.npu.is_available(): True
  • NPU 设备: Ascend910B4
  • 模型加载: timm.create_model(pretrained=False) + ModelScope 本地权重
  • 权重文件: model.safetensors
  • 预处理: timm.data.resolve_model_data_config + create_transform
  • 推理设备: npu:0
  • 输出 logits 形状: [1, 1000]

Top-5 预测结果(单图)

排名类别置信度
1class_9780.308937
2class_9800.105722
3class_9760.072114
4class_9740.055114
5class_9790.040098

注:该模型未提供 id2label 映射文件,使用 class_x 作为占位标签。

5. 性能参考

指标数值
Warmup2 次
正式测试10 次
avg66.943 ms
min34.090 ms
max119.253 ms
p5059.309 ms
p90103.468 ms
p95111.361 ms
images/sec14.94

6. 精度评测

本项目执行 CPU vs NPU Smoke 一致性验证(非官方 ImageNet 数据集精度)。

指标数值
max_abs_diff (logits)0.01232910
mean_abs_diff (logits)0.00414845
prob_max_diff0.00111027
Top-1 matchTrue (CPU=978, NPU=978)
Top-5 matchTrue
CPU Top-5[978, 980, 976, 974, 979]
NPU Top-5[978, 980, 976, 974, 979]

7. 自验证截图

见 screenshots/self_verification.png 和 screenshots/self_verification.txt。

8. 日志文件

logs/
├── accuracy.log          # CPU/NPU 一致性验证结果
├── accuracy_stdout.log   # eval_accuracy.py 标准输出
├── benchmark.log         # 性能基准测试结果
├── benchmark_stdout.log  # benchmark.py 标准输出
├── env_check.log         # 环境检查信息
├── inference.log         # 推理结果
├── inference_stdout.log  # inference.py 标准输出
├── model_check.log       # 阶段 -1/0 模型检查
└── prediction.txt        # Top-5 预测摘要

9. 注意事项

  1. 未使用 pretrained=True:模型结构通过 timm.create_model(pretrained=False) 创建,权重从 ModelScope 本地目录加载,未触发 HuggingFace Hub 下载。
  2. 预处理:使用 timm.data.resolve_model_data_config + create_transform 完成官方预处理,未使用 torchvision 默认 transform。
  3. 标签:该模型未提供 id2label.json 或标签文件,预测结果使用 class_x 占位。
  4. 测试图片:从 picsum.photos 下载的随机图片,用于 smoke 验证,非 ImageNet 标准测试集。
  5. torch_npu:通常由昇腾容器环境预装,未在 requirements.txt 中固定版本。
  6. 权重文件:工程目录中不包含任何模型权重文件(*.bin, *.safetensors, *.pth, *.pt, *.ckpt),运行时通过 ModelScope 自动下载到缓存目录。
  7. 清理:已删除 fusion_result.json 和 kernel_meta/ 目录,并加入 .gitignore。

10. 标签

#NPU #Ascend #MobileNetV3 #ImageClassification #timm #ModelScope