g
gyccc/timm-densenet201-tv-in1k-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/densenet201.tv_in1k on Ascend NPU #NPU

1. 简介

将 timm/densenet201.tv_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910B),使用 ModelScope snapshot_download 下载权重,timm.create_model(pretrained=False) 加载本地权重,包含推理验证、CPU-NPU 精度一致性检查和性能基准测试。

2. 验证环境

  • NPU: Ascend910B
  • PyTorch: 2.x
  • torch_npu: 已安装
  • timm: 1.0.27
  • ModelScope: 1.35.3
  • Python: 3.x

3. 推理运行

pip install -r requirements.txt
python inference.py

推理结果:

Model: timm/densenet201.tv_in1k
Output shape: [1, 1000]
Top-5 predictions:
  class_819: 0.6530 (65.30%)
  class_413: 0.0450 (4.50%)
  class_764: 0.0431 (4.31%)
  class_650: 0.0294 (2.94%)
  class_851: 0.0283 (2.83%)

4. 精度验证

python eval_accuracy.py

对单张测试图片进行 CPU 与 NPU 一致性验证:

指标数值
max_abs_error0.010974
mean_abs_error0.002029
relative_error0.1085%
cosine_similarity0.999999
threshold1.0%
结果PASS
  • CPU Top-1 与 NPU Top-1 类别一致
  • CPU Top-5 与 NPU Top-5 类别一致

5. 性能参考

单卡 Ascend910B,batch=1,10 次推理取均值:

python benchmark.py
=== Benchmark (NPU, single inference) ===
Runs: 10
Avg: 22.40 ms
Min: 21.96 ms
Max: 22.77 ms
P50: 22.39 ms
P90: 22.74 ms
P95: 22.75 ms
Throughput: 44.64 images/sec

6. 精度评测

  • 验证方式: Smoke consistency check(CPU vs NPU 同输入对比)
  • Logit 最大差异: 0.010974
  • 概率最大差异: 0.000370
  • Top-1 一致性: 完全匹配
  • Top-5 一致性: 完全匹配
  • 结论: CPU/NPU 推理结果完全一致,精度验证通过

7. 自验证截图

见 screenshots/self_verification.png

8. 日志文件

文件说明
logs/inference.log推理结果日志
logs/accuracy.log精度验证日志
logs/benchmark.log性能基准日志
logs/env_check.log环境检查日志

9. 注意事项

  • 模型通过 ModelScope snapshot_download 下载,不依赖 HuggingFace 直连
  • 使用 timm.create_model(pretrained=False) + 本地权重加载
  • 精度验证为 smoke consistency check,非官方 ImageNet 验证精度
  • 权重文件(*.bin, *.safetensors)不提交到仓库

10. 标签

#NPU