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

timm/nfnet_l0.ra2_in1k on Ascend NPU

1. 简介

本项目将 timm/nfnet_l0.ra2_in1k 图片分类模型适配到单卡昇腾 NPU (Ascend910) 运行。

  • 模型来源: ModelScope timm/nfnet_l0.ra2_in1k
  • 模型类型: 图片分类 (Image Classification)
  • 输入尺寸: 224x224
  • 输出类别: 1000 (ImageNet-1k)
  • 加载方式: timm.create_model(pretrained=False) + ModelScope snapshot_download 本地权重加载
  • 推理设备: npu:0

2. 验证环境

项目版本/型号
NPUAscend910 (Ascend910_9362)
npu-smi25.5.2
PyTorchtorch + torch_npu
timmlatest

环境详情见 logs/env_check.log。

3. 推理运行

pip install -r requirements.txt
python inference.py

model_utils.py 提供统一的模型加载与预处理逻辑:

  • 通过 modelscope.snapshot_download 下载权重
  • 通过 timm.create_model(pretrained=False) 创建模型结构
  • 通过 timm.data.resolve_model_data_config + create_transform 获取官方预处理配置
  • 加载本地权重到模型后迁移至 npu:0 执行推理
Model: timm/nfnet_l0.ra2_in1k
Model class: NormFreeNet
Input shape: [1, 3, 224, 224]
Output shape: [1, 1000]

Top-5 predictions:
  1. class_853  prob=0.146251
  2. class_449  prob=0.057264
  3. class_706  prob=0.035109
  4. class_743  prob=0.032922
  5. class_860  prob=0.032150

4. 精度验证

python eval_accuracy.py

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

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

5. 性能参考

运行 python benchmark.py 在 npu:0 上测试吞吐量(warm-up 2 次 + 正式 10 次):

指标数值
avg latency0.010198 s
min latency0.009431 s
max latency0.014331 s
p50 latency0.009877 s
p90 latency0.014331 s
p95 latency0.014331 s
Throughput98.06 images/sec

完整性能日志见 logs/benchmark.log。

6. 精度评测

详见 logs/accuracy.log:

  • CPU 与 NPU 的 logits max diff < 0.01
  • Top-1 与 Top-5 预测结果完全一致

7. 自验证截图

验证摘要见 screenshots/self_verification.txt 和 screenshots/self_verification.png。

8. 日志文件

文件说明
logs/env_check.logNPU 环境信息
logs/inference.log单图推理结果
logs/accuracy.logCPU-NPU smoke 一致性对比
logs/benchmark.log性能基准测试
logs/paths.txt本地权重路径记录

9. 注意事项

  1. 不提交权重文件: 本项目仅包含推理代码与配置,权重文件(.bin、.safetensors、.pth 等)通过 .gitignore 排除,运行时会自动从 ModelScope 下载。
  2. 不使用 HuggingFace 直连下载: 主下载路径为 ModelScope snapshot_download,无需 HuggingFace token 或网络环境。
  3. 不 fallback: 若 ModelScope 下载失败或权重加载异常,脚本会直接报错终止,不会自动回退到 HuggingFace 下载。
  4. 预处理: 使用 timm.data.resolve_model_data_config 获取模型官方预处理参数,确保与训练时一致。

10. 标签

#NPU