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

timm/davit_base.msft_in1k on Ascend NPU

1. 简介

本项目将 ModelScope 图片分类模型 timm/davit_base.msft_in1k 适配为可在单卡昇腾 NPU(Ascend910)上运行的提交工程。

  • 模型来源:ModelScope (timm/davit_base.msft_in1k)
  • 模型架构:DaVit (Dual-Attention Vision Transformer)
  • 权重加载:timm.create_model(pretrained=False) + ModelScope snapshot_download 本地权重
  • 输入尺寸:224x224
  • 输出类别:1000 (ImageNet-1k)

2. 验证环境

项目版本/型号
NPUAscend910
npu-smi25.5.2
PyTorch2.x
torch_npu可用

详见 logs/env_check.log。

3. 推理运行

pip install -r requirements.txt
python inference.py

推理脚本通过 model_utils.py 统一加载模型,自动完成:

  1. ModelScope 下载权重到本地缓存
  2. timm.create_model(..., pretrained=False) 创建结构
  3. 加载本地 .safetensors 权重
  4. 使用 timm.data.resolve_model_data_config 获取预处理配置
  5. 在 npu:0 上执行真实推理

4. Smoke 验证

运行 python eval_accuracy.py 对比 CPU 与 NPU 推理结果:

指标结果
Logits max diff2.83e-02
Prob max diff2.20e-03
CPU Top-1class_425
NPU Top-1class_425
Top-1 matchTrue
Top-5 matchTrue

说明:此验证为 smoke consistency 测试,非官方 ImageNet 精度评测。

5. 性能参考

运行 python benchmark.py(预热 2 次,正式 10 次):

指标数值
avg15.46 ms
min14.93 ms
max15.89 ms
p5015.49 ms
p9015.78 ms
p9515.84 ms
images/sec64.69

详见 logs/benchmark.log。

6. 精度评测

本项目未进行完整的 ImageNet-1k 官方精度评测,仅提供了 CPU/NPU 一致性 smoke 测试。如需完整精度评测,请使用标准 ImageNet 验证集运行 timm 官方评估脚本。

7. 自验证截图

关键验证信息已汇总至 screenshots/self_verification.txt 与 screenshots/self_verification.png。

8. 日志文件

文件内容
logs/env_check.logNPU 环境信息
logs/inference.logNPU 推理输出与 Top-5 结果
logs/accuracy.logCPU/NPU 一致性对比
logs/benchmark.log性能基准测试
logs/stage0.log阶段 0 模型可用性验证
logs/paths.txt本地模型目录与权重路径

9. 注意事项

  1. 不提交权重:.gitignore 已排除 *.bin、*.safetensors、*.pth、*.pt、*.ckpt、*.onnx 等权重文件。
  2. 不 HuggingFace 直连:所有权重通过 ModelScope snapshot_download 获取,timm.create_model 使用 pretrained=False。
  3. 不 fallback:若 ModelScope 下载失败或权重不匹配,脚本会明确报错并停止。
  4. NPU 要求:需在单卡 Ascend910 环境运行,并安装 torch_npu。

10. 标签

#NPU