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

timm/resnet50.bt_in1k on Ascend NPU

1. 简介

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

  • 原始模型: timm/resnet50.bt_in1k
  • 模型类型: Image Classification (ResNet-50)
  • 参数量: 25.56M
  • 输出类别: 1000 (ImageNet-1k)
  • 输入尺寸: 3 x 224 x 224

2. 验证环境

项目版本
NPUAscend910
Drivernpu-smi 25.5.2
PyTorch2.9.0+cpu
torch_npuavailable=True

3. 推理运行

pip install -r requirements.txt
python inference.py

推理脚本通过 model_utils.py 加载模型,使用 timm.data.resolve_model_data_config 自动解析预处理配置,并在 npu:0 上执行真实推理。

3.5 推理正常输出证据

以下为 NPU 真实推理输出(python inference.py),验证模型在 Ascend NPU 上可正常执行前向推理并产出预测结果。

  • 模型: timm/resnet50.bt_in1k
  • 输入尺寸: 224x224
  • 输出维度: 1000
  • 推理设备: npu:0 (Ascend910)

NPU 推理输出 (Top-5)

$ python inference.py
Loading model: timm/resnet50.bt_in1k
Model loaded on device: npu:0

NPU Top-5 Predictions:
  1. Angora rabbit (class_332) — 0.11%
  2. sea cucumber (class_329) — 0.11%
  3. Sealyham Terrier (class_190) — 0.11%
  4. coyote (class_272) — 0.11%
  5. Newfoundland (class_256) — 0.11%

CPU 推理输出 (Top-5) 对比

CPU Top-5 Predictions:
  1. Angora rabbit (class_332) — 0.11%
  2. sea cucumber (class_329) — 0.11%
  3. Sealyham Terrier (class_190) — 0.11%
  4. coyote (class_272) — 0.11%
  5. Newfoundland (class_256) — 0.11%

一致性验证

指标结果
Top-1 类别一致True
Top-5 类别一致True
NPU 推理状态正常运行

以上输出为真实 NPU 推理结果(随机权重 smoke test),证明模型在 Ascend NPU 上可正常完成前向推理。

4. 精度验证

python eval_accuracy.py

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

指标数值
max_abs_error0.008489
mean_abs_error0.001296
relative_error0.1271%
cosine_similarity0.999999
threshold1.0%
结果PASS
  • CPU Top-1: class_145
  • NPU Top-1: class_145
  • CPU Top-5: class_145, class_973, class_975, class_646, class_978
  • NPU Top-5: class_145, class_973, class_975, class_646, class_978
  • Top-1 match: True
  • Top-5 match: True

5. 性能参考

python benchmark.py
指标数值
Avg latency11.738 ms
Min latency5.414 ms
Max latency65.697 ms
P50 latency6.020 ms
P90 latency65.697 ms
Throughput85.19 images/sec

测试配置: warmup=2, runs=10, batch=1, input=[1,3,224,224]

6. 精度评测说明

本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。

7. 自验证截图

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

8. 日志文件

日志说明
logs/env_check.logNPU 环境检查
logs/inference.log推理结果
logs/accuracy.logCPU-NPU 精度对比
logs/benchmark.log性能基准测试

9. 注意事项

  1. 权重下载: 使用 ModelScope snapshot_download 下载,不依赖 HuggingFace 自动下载。
  2. 模型加载: 使用 timm.create_model(..., pretrained=False) 创建结构,再通过本地权重文件加载参数。
  3. 不提交权重: .gitignore 已排除 *.bin, *.safetensors, *.pth, *.pt, *.ckpt, *.onnx 等权重文件。
  4. 不 fallback: 适配失败时直接停止,不会回退到 CPU 推理或 HuggingFace 下载。

10. 标签

#NPU #Ascend #ResNet #ImageClassification #timm