timm/vit_base_r50_s16_384.orig_in21k_ft_in1k on Ascend NPU
1. 简介
将 timm/vit_base_r50_s16_384.orig_in21k_ft_in1k 图片分类模型适配到华为昇腾 NPU (Ascend910) 上运行。
- 模型:VisionTransformer (ViT-Base with ResNet50 stem),1000 类输出
- 权重来源:ModelScope snapshot_download
- 适配方式:timm.create_model(pretrained=False) + 本地权重加载
- 输入尺寸:384x384
- 特点:ResNet50 作为 stem,ViT-Base 作为 backbone,token pooling
2. 验证环境
- 硬件:Ascend910 NPU
- 软件:PyTorch + torch_npu
- 框架:timm
- 权重加载方式:ModelScope snapshot_download + safetensors
3. 推理运行
pip install -r requirements.txt
python inference.py
推理结果(单张测试图片):
- Top-1 class: class_975
- Top-1 prob: 0.3016
- Top-5: class_975 (0.3016), class_99 (0.1691), class_978 (0.1154), class_144 (0.0977), class_146 (0.0578)
4. 精度验证
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|
| max_abs_error | 0.021751 |
| mean_abs_error | 0.004602 |
| relative_error | 0.4140% |
| cosine_similarity | 0.999993 |
| threshold | 1.0% |
| 结果 | PASS |
- CPU Top-1: class_975
- NPU Top-1: class_975
- CPU Top-5: class_975, class_99, class_978, class_144, class_146
- NPU Top-5: class_975, class_99, class_978, class_144, class_146
- Top-1 match: True
- Top-5 match: True
5. 性能参考
| 指标 | 数值 |
|---|
| avg | 13.07 ms |
| min | 12.48 ms |
| max | 13.25 ms |
| p50 | 13.20 ms |
| p90 | 13.25 ms |
| p95 | 13.25 ms |
| images/sec | 76.53 |
6. 精度评测说明
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
7. 自验证截图
见 screenshots/self_verification.png。
8. 日志文件
logs/inference.log - 推理结果
logs/accuracy.log - 精度验证
logs/benchmark.log - 性能基准
9. 注意事项
- 使用 ModelScope snapshot_download 下载权重,不使用 HuggingFace 直连
- timm.create_model(pretrained=False) 创建模型结构,加载本地权重
- 不提交权重文件(*.bin, *.safetensors 等已 gitignore)
- 单图 smoke 测试,非完整验证集评测
10. 标签
#NPU