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

timm/efficientnetv2_rw_s.ra2_in1k on Ascend NPU

1. 简介

本项目将 timm/efficientnetv2_rw_s.ra2_in1k 图片分类模型适配到单卡昇腾 NPU(Ascend910)运行。使用 ModelScope snapshot_download 下载权重,通过 timm.create_model(pretrained=False) 创建模型结构并加载本地权重,不依赖 HuggingFace 自动下载。项目包含推理验证、CPU-NPU 精度一致性检查和性能基准测试。

2. 验证环境

组件版本/型号
NPUAscend910
npu-smi25.5.2
PyTorch NPUavailable (Ascend910_9362)
timm1.0.27

详细环境信息见 logs/env_check.log。

3. 推理运行

pip install -r requirements.txt
python inference.py

推理脚本会:

  • 通过 modelscope.snapshot_download 自动下载模型权重(首次运行时)
  • 使用 timm.create_model(pretrained=False) 创建模型结构
  • 加载本地 model.safetensors 权重
  • 在 npu:0 上执行真实推理
  • 输出 Top-5 预测结果并写入 logs/inference.log

示例输出:

Input shape: [1, 3, 288, 288]
Output shape: [1, 1000]
Top-1: class_469: 0.2678
Top-5: class_469, class_968, class_438, class_622, class_470

4. 精度验证

python eval_accuracy.py

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

指标数值
max_abs_error0.008019
mean_abs_error0.000754
relative_error0.0938%
cosine_similarity1.000000
threshold1.0%
结果PASS
  • CPU Top-1 与 NPU Top-1 类别一致
  • CPU Top-5 与 NPU Top-5 类别一致

5. 性能参考

python benchmark.py
指标值
Avg latency16.313 ms
Min latency14.295 ms
Max latency31.068 ms
P50 latency14.840 ms
P90 latency16.695 ms
P95 latency23.882 ms
Throughput61.30 images/sec

测试配置:warm-up 2 次,正式测试 10 次,每次前后 torch.npu.synchronize(),输入尺寸 [1, 3, 288, 288]。

6. 精度评测

本项目未在完整 ImageNet 验证集上跑官方精度,仅提供 CPU-NPU smoke consistency 结果。如需完整精度评测,请使用 ImageNet val 集运行标准 eval 流程。

7. 自验证截图

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

8. 日志文件

  • logs/env_check.log — 环境检查
  • logs/inference.log — 推理输出
  • logs/accuracy.log — 精度一致性
  • logs/benchmark.log — 性能基准
  • logs/paths.txt — 模型路径记录

9. 注意事项

  • 首次运行会自动通过 ModelScope 下载约 92 MB 的权重文件到本地缓存目录
  • 模型默认输入尺寸为 288x288,由 timm.data.resolve_model_data_config 自动解析
  • 项目目录中不包含任何权重文件,请勿将 .bin/.safetensors/.pth 等文件提交到仓库

10. 标签

#NPU #Ascend #timm #EfficientNetV2 #image-classification