g
gyccc/timm-tf_efficientnetv2_s.in21k-NPU
模型介绍文件和版本Pull Requests讨论分析

timm/tf_efficientnetv2_s.in21k on Ascend NPU

1. 简介

将 timm/tf_efficientnetv2_s.in21k (EfficientNetV2-S, ImageNet-21k 预训练) 适配为可在单卡昇腾 NPU (Ascend910) 上运行的提交工程。

  • 模型来源: ModelScope (timm/tf_efficientnetv2_s.in21k)
  • 模型结构: timm.create_model('tf_efficientnetv2_s.in21k', pretrained=False)
  • 权重加载: ModelScope snapshot_download + 本地 safetensors 加载
  • 参数量: 48.2M
  • 输出维度: 21843 (ImageNet-21k)

2. 验证环境

项目值
NPUAscend910 (单卡)
PyTorchtorch_npu
模型加载ModelScope snapshot_download + timm.create_model(pretrained=False)
权重格式safetensors

3. 推理运行

# 安装依赖
pip install -r requirements.txt

# 运行推理
python inference.py

输出示例:

模型: timm/tf_efficientnetv2_s.in21k
输出 shape: torch.Size([1, 21843])
设备: Ascend910_9362

Top-5 预测:
  class_14262: 0.6259
  class_14413: 0.2880
  class_14227: 0.0380
  class_14117: 0.0076
  class_14173: 0.0042

4. 精度验证

python eval_accuracy.py

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

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

5. 性能参考

运行性能基准测试:

python benchmark.py

结果 (batch=1, 单卡 Ascend910):

指标值
avg16.84 ms
min14.52 ms
max26.57 ms
p5015.80 ms
p9019.18 ms
p9522.88 ms
throughput59.38 images/s

6. 精度评测

本工程仅提供 smoke consistency 验证(CPU vs NPU logits 对比),非官方精度评测。

  • 由于模型为 ImageNet-21k (21843 类),无标准 id2label 映射,推理输出使用 class_{idx} 格式
  • CPU vs NPU Top-5 indices 完全一致
  • max_diff 在 FP16 精度差异范围内

7. 自验证截图

见 screenshots/self_verification.png

8. 日志文件

  • logs/inference.log - 推理结果
  • logs/accuracy.log - 精度验证
  • logs/benchmark.log - 性能测试
  • logs/stage0_result.json - 阶段 0 验证结果

9. 注意事项

  • 模型输出 21843 维 (ImageNet-21k),非标准 1000 类
  • 推理使用 timm.data.resolve_model_data_config 自动获取预处理参数
  • 权重通过 ModelScope 下载,不依赖 HuggingFace
  • 不包含权重文件(*.safetensors, *.bin 等已 gitignore)

10. 标签

#NPU

下载使用量0