本项目将 timm/vit_base_patch32_clip_224.openai_ft_in1k(基于 CLIP 预训练的 ViT-Base-Patch32,在 ImageNet-1K 上微调)适配到华为昇腾 NPU(Ascend910)单卡推理。
timm.create_model(pretrained=False) + 本地 safetensors 加载| 项目 | 信息 |
|---|---|
| 硬件 | 华为昇腾 910B NPU |
| 设备 | Ascend910_9362 |
| 框架 | PyTorch + torch_npu |
| 下载源 | ModelScope(非 HuggingFace 直连) |
# 安装依赖
pip install -r requirements.txt
# 运行推理
python inference.py推理输出 Top-5 预测结果,日志保存在 logs/inference.log。
推理输出示例:
Model: timm/vit_base_patch32_clip_224.openai_ft_in1k
ModelScope dir: /opt/atomgit/.cache/modelscope/hub/models/timm/vit_base_patch32_clip_224___openai_ft_in1k
Weights: /opt/atomgit/.cache/modelscope/hub/models/timm/vit_base_patch32_clip_224___openai_ft_in1k/model.safetensors
Missing: 0, Unexpected: 0
Output shape: torch.Size([1, 1000])
Top-5 predictions:
1. class_514 (0.1153)
2. class_971 (0.0743)
3. class_805 (0.0682)
4. class_655 (0.0406)
5. class_428 (0.0399)
Note: class_x labels used when imagenet_classes not available.对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.020519 |
| mean_abs_error | 0.004086 |
| relative_error | 0.3166% |
| cosine_similarity | 0.999995 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| avg | 5.38 ms |
| min | 5.34 ms |
| max | 5.54 ms |
| p50 | 5.36 ms |
| p90 | 5.41 ms |
| p95 | 5.47 ms |
| throughput | 185.89 images/sec |
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
详见 screenshots/self_verification.png。
logs/inference.log — 推理结果logs/accuracy.log — CPU-NPU 精度一致性验证logs/benchmark.log — 性能基准测试logs/env_check.log — NPU 环境检查timm.create_model(pretrained=False) 加载本地权重#NPU