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

timm/eva02_large_patch14_448.mim_m38m_ft_in22k_in1k on Ascend NPU

1. 简介

本项目将 ModelScope 图片分类模型 timm/eva02_large_patch14_448.mim_m38m_ft_in22k_in1k 适配为可在单卡华为昇腾 NPU(Ascend910)上运行的推理工程。

模型说明:

  • 架构:EVA-02 Large (Vision Transformer)
  • 输入分辨率:448x448
  • 预训练:ImageNet-22k (via MIM, 38M masked image modeling)
  • Fine-tune:ImageNet-1k
  • 输出类别数:1000

适配要点:

  • 使用 ModelScope snapshot_download 作为主下载方式
  • 使用 timm.create_model(pretrained=False) 创建模型结构,并加载本地权重
  • 不使用 HuggingFace 直连下载,无 fallback
  • 使用 timm.data.resolve_model_data_config 自动解析预处理配置

2. 验证环境

组件版本/型号
NPUAscend910 (Ascend910_9362)
npu-smi25.5.2
HBM64 GB
PyTorch适配昇腾版本
torch_npu适配昇腾版本
timmlatest
modelscopelatest

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

3. 推理运行

pip install -r requirements.txt
python inference.py

推理流程:

  1. model_utils.py 通过 ModelScope 下载模型权重到本地缓存
  2. timm.create_model(..., pretrained=False) 初始化模型结构
  3. 加载本地 .safetensors 权重(missing=0, unexpected=0)
  4. 迁移模型至 npu:0
  5. 对测试图片进行 448x448 预处理后推理
  6. 输出 Top-5 分类结果

示例输出:

Top-1: class_978: 0.363622
Top-2: class_718: 0.043712
Top-3: class_460: 0.032092
Top-4: class_536: 0.023921
Top-5: class_977: 0.009449

日志文件:logs/inference.log

4. Smoke 验证

python eval_accuracy.py

对比 CPU 与 NPU 推理结果的一致性:

指标数值
Max logit diff0.003369
Mean logit diff0.000712
Max prob diff0.000592
Top-1 matchTrue
Top-5 matchTrue

说明:本验证为 Smoke Consistency 检查,非官方 ImageNet 精度评测。

日志文件:logs/accuracy.log

5. 性能参考

python benchmark.py

测试条件:预热 2 次 + 正式 10 次,单张 448x448 图片,batch=1。

指标数值
Avg latency32.56 ms
Min latency32.39 ms
Max latency32.84 ms
P50 latency32.53 ms
P90 latency32.84 ms
Images/sec30.71

日志文件:logs/benchmark.log

6. 精度评测

本项目未在完整 ImageNet-1k 验证集上运行,仅提供单图 Smoke Consistency 验证。如需正式精度评测,请下载 ImageNet-1k 验证集并运行批量推理。

7. 自验证截图

  • 文本摘要:screenshots/self_verification.txt
  • 截图文件:screenshots/self_verification.png

内容包含:NPU 环境信息、推理结果、精度对比摘要、性能基准摘要。

8. 日志文件

文件内容
logs/env_check.logNPU 环境检查
logs/inference.log单图 NPU 推理结果
logs/accuracy.logCPU vs NPU Smoke 一致性验证
logs/benchmark.logNPU 性能基准测试
logs/paths.txt本地模型权重路径记录

9. 注意事项

  1. 权重下载:首次运行会通过 ModelScope 自动下载模型权重(约 1.1 GB),缓存目录为 ~/.cache/modelscope/hub/。
  2. 显存占用:EVA-02 Large 为大型 ViT 模型,448x448 分辨率下单卡推理约占用数 GB HBM,请确保 NPU 显存充足。
  3. 预处理:本工程使用 timm.data.resolve_model_data_config 自动获取模型对应的预处理参数(mean、std、crop 尺寸等),无需手动硬编码。
  4. 不提交权重:本项目 .gitignore 已排除所有权重文件,请勿将 .safetensors、.bin、.pth 等文件提交到仓库。
  5. HuggingFace:本工程不使用 HuggingFace 自动下载,完全依赖 ModelScope 获取权重。

10. 标签

#NPU #Ascend #timm #image-classification #EVA02