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

timm/tf_efficientnet_b5.ns_jft_in1k on Ascend NPU

1. 简介

本项目将 timm/tf_efficientnet_b5.ns_jft_in1k 适配到昇腾 NPU (Ascend910) 上运行,支持真实 NPU 推理、CPU-NPU 精度一致性对比和性能基准测试。

  • 模型来源:ModelScope (timm/tf_efficientnet_b5.ns_jft_in1k)
  • 模型类型:图像分类 (Image Classification)
  • 输入尺寸:[1, 3, 456, 456]
  • 输出维度:[1, 1000] (ImageNet 1000 类 logits)
  • 加载方式:timm.create_model(pretrained=False) + ModelScope snapshot_download 本地权重加载

2. 验证环境

组件版本/型号
NPUAscend910
npu-smi25.5.2
PyTorchtorch + torch_npu
timmlatest
ModelScopelatest

环境检查日志:logs/env_check.log

3. 推理运行

python inference.py

模型自动通过 ModelScope 下载权重,使用 timm.data.resolve_model_data_config 解析预处理配置,在 npu:0 上执行真实推理。

示例输出:

Model: timm/tf_efficientnet_b5.ns_jft_in1k
Input shape: [1, 3, 456, 456]
Output shape: [1, 1000]

Top-5 predictions:
  1. class_810: 0.4304
  2. class_878: 0.3451
  3. class_753: 0.0018
  4. class_508: 0.0016
  5. class_686: 0.0009

推理日志:logs/inference.log

4. 精度验证

python eval_accuracy.py

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

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

5. 性能参考

python benchmark.py

预热 2 次 + 正式 10 次(每次前后 torch.npu.synchronize())。

指标数值
Avg latency19.96 ms
Min latency19.07 ms
Max latency25.59 ms
P50 latency19.35 ms
P90 latency20.18 ms
P95 latency22.89 ms
Throughput50.10 images/sec

性能日志:logs/benchmark.log

6. 精度评测

本工程仅提供 CPU-NPU 推理一致性 smoke test,未使用 ImageNet 完整验证集跑 Top-1/Top-5 官方精度。如需完整精度评测,请自行准备 ImageNet 数据集并扩展 eval_accuracy.py。

7. 自验证截图

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

8. 日志文件

日志内容
logs/env_check.logNPU 环境信息
logs/inference.logNPU 推理结果
logs/accuracy.logCPU-NPU 一致性对比
logs/benchmark.log性能基准测试

9. 注意事项

  1. 权重下载:首次运行会通过 ModelScope snapshot_download 自动下载权重,请确保网络可访问 modelscope.cn。
  2. 预处理:本模型输入分辨率为 456x456,由 timm.data.resolve_model_data_config 自动解析,请勿硬编码为 224x224。
  3. 显存占用:EfficientNet-B5 参数量约 30M,NPU 推理时占用显存适中,但在 CPU 加载时可能占用较多内存。
  4. 不提交权重:本项目 .gitignore 已排除 *.bin、*.safetensors、*.pth、*.pt、*.ckpt、*.onnx,请勿将权重文件提交到仓库。

10. 标签

#NPU