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

timm/regnety_080_tv.tv2_in1k on Ascend NPU

1. 简介

本工程将 timm/regnety_080_tv.tv2_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910B)上运行。

  • 模型来源:ModelScope 魔搭社区
  • 模型页面:https://www.modelscope.cn/models/timm/regnety_080_tv.tv2_in1k
  • 模型类型:图片分类(ImageNet-1k,1000 类)
  • 适配方式:timm.create_model(pretrained=False) + ModelScope 本地权重加载
  • 预处理:timm 官方 resolve_model_data_config + create_transform

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 通常由昇腾容器或环境预装,不在 requirements.txt 中固定版本。

运行推理

python inference.py

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

运行精度验证

python eval_accuracy.py

日志:logs/accuracy.log

运行性能基准

python benchmark.py

日志:logs/benchmark.log

4. Smoke 验证

  • torch.npu.is_available(): True
  • torch.npu.get_device_name(0): Ascend910B4
  • NPU 推理输出 shape: [1, 1000]
  • Top-1 预测: class_851 (prob=0.269087)
  • Top-5 预测:
    1. class_851: 0.269087
    2. class_782: 0.058281
    3. class_664: 0.052266
    4. class_717: 0.020666
    5. class_837: 0.010222

模型未提供 id2label 映射,使用 class_N 作为占位标签。

5. 性能参考

在 Ascend910B4 单卡上的 benchmark 结果(batch=1,输入 3x224x224):

指标数值
avg19.858 ms
min17.913 ms
max24.429 ms
p5019.046 ms
p9023.709 ms
p9523.709 ms
images/sec50.36

性能数据仅供参考,实际数值受 CANN 版本、驱动、Host 负载等因素影响。

6. 精度评测

CPU vs NPU Smoke 一致性验证结果:

指标数值
max_abs_diff (logits)4.34e-03
mean_abs_diff (logits)4.25e-04
prob_max_diff1.43e-04
Top-1 matchTrue
Top-5 matchTrue

本验证为 CPU/NPU smoke consistency 测试,非官方 ImageNet 数据集精度。

7. 自验证截图

见 screenshots/ 目录:

  • screenshots/self_verification.txt — 关键日志文本汇总
  • screenshots/self_verification.png — 验证结果截图

8. 日志文件

文件说明
logs/model_check.log模型预判与下载检查
logs/env_check.log环境检查(NPU、Python、包版本)
logs/inference.log推理过程日志
logs/prediction.txtTop-5 预测结果
logs/accuracy.logCPU vs NPU 精度对比
logs/benchmark.log性能基准测试

9. 注意事项

  1. 权重加载:严禁使用 timm.create_model(..., pretrained=True),必须通过 ModelScope snapshot_download 下载到本地后加载,避免触发 HuggingFace Hub 自动下载。
  2. 权重文件:本地权重为 model.safetensors(151MB)。
  3. 预处理:使用 timm 官方 resolve_model_data_config + create_transform,与训练时保持一致。
  4. 标签:模型未附带 id2label 文件,因此使用 class_0 ~ class_999 作为占位标签。如需真实 ImageNet 标签名,可自行映射。
  5. 显存/内存:模型大小约 151MB,单卡推理显存占用约 3GB,一般不会出现 OOM。
  6. 测试图片:assets/test.jpg 来自公开图床 picsum.photos,如网络不可用则使用占位图(见 assets/test_image_note.txt)。
  7. torch_npu 产物:运行后可能产生 fusion_result.json 和 kernel_meta/,已加入 .gitignore,不会提交。

10. 标签

#NPU