本项目将 timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k 图片分类模型适配到华为昇腾 NPU(Ascend910)上运行。
安装依赖:
pip install -r requirements.txtpython inference.py推理结果示例(单张测试图片):
| Rank | Class | Probability |
|---|---|---|
| 1 | class_475 | 0.5210 |
| 2 | class_627 | 0.1068 |
| 3 | class_511 | 0.0949 |
| 4 | class_685 | 0.0228 |
| 5 | class_848 | 0.0211 |
=== timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k NPU Inference ===
Input shape: [1, 3, 224, 224]
Output shape: [1, 1000]
Device: npu:2
Top-1: class_475 prob=0.5210
Top-2: class_627 prob=0.1068
Top-3: class_511 prob=0.0949
Top-4: class_685 prob=0.0228
Top-5: class_848 prob=0.0211
Model: timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k
Weights: /data/modelscope_cache/models/timm/vit_tiny_patch16_224___augreg_in21k_ft_in1k/model.safetensors
Missing keys: 0, Unexpected keys: 0
Inference SUCCESS以上输出证明模型在昇腾NPU上成功运行推理,输出了分类概率分布,状态为 SUCCESS。
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.027756 |
| mean_abs_error | 0.005756 |
| relative_error | 0.2922% |
| cosine_similarity | 0.999996 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| Warmup | 2 |
| Runs | 10 |
| avg latency | 11.327 ms |
| min latency | 10.925 ms |
| max latency | 12.020 ms |
| p50 latency | 11.234 ms |
| p90 latency | 12.020 ms |
| p95 latency | 12.020 ms |
| Throughput | 88.28 images/sec |
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
见 screenshots/self_verification.png
logs/inference.log — 推理结果logs/accuracy.log — CPU-NPU 精度一致性logs/benchmark.log — 性能基准测试| 项目 | 链接 |
|---|---|
| 原始权重模型地址 | https://modelscope.cn/models/timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k |
| 提交项目地址 | https://ai.gitcode.com/v50_/timm-vit_tiny_patch16_224.augreg_in21k_ft_in1k-NPU |
pretrained=False 并通过 load_state_dict 加载本地权重#NPU #Ascend #Ascend910 #ImageClassification #timm