本文档记录了 vit_tiny_patch16_224.augreg_in21k 在昇腾 Ascend NPU 上的推理适配和精度验证结果。
该模型属于 timm 库中的 Vision Transformer (ViT) 系列模型,用于图像分类任务。
| 组件 | 版本/规格 |
|---|---|
| NPU | Ascend910 (64GB HBM) |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu |
| torch-npu | 2.9.0.post1 |
| timm | 1.0.27 |
| Python | 3.11.14 |
pip install torch torch-npu timm pillow numpy
# 使用清华镜像加速
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch-npu timm pillow numpy# CPU推理
python inference.py vit_tiny_patch16_224.augreg_in21k --device cpu
# NPU推理
python inference.py vit_tiny_patch16_224.augreg_in21k --device npu
# CPU vs NPU精度对比
python compare_cpu_npu.py vit_tiny_patch16_224.augreg_in21k| 设备 | 平均推理耗时 (ms) | 加速比 |
|---|---|---|
| CPU | 66.93 ms | 1.00x |
| NPU (Ascend910) | 6.57 ms | 10.19x |
| 排名 | CPU 类别 ID | CPU 概率 | NPU 类别 ID | NPU 概率 |
|---|---|---|---|---|
| 1 | 9187 | 0.000000 | 9187 | 0.000000 |
| 2 | 21668 | 0.000000 | 21668 | 0.000000 |
| 3 | 12123 | 0.000000 | 12009 | 0.000000 |
| 4 | 12009 | 0.000000 | 12123 | 0.000000 |
| 5 | 14235 | 0.000000 | 14235 | 0.000000 |
结论: CPU 与 NPU 的 Top-1 分类结果一致。
| 指标 | 数值 |
|---|---|
| Cosine Similarity | 0.99999988 |
| 最大概率差异 | 0.263917% |
| 最大 Logit 绝对误差 | 0.05167675 |
精度判定: 通过 (NPU 与 CPU 推理误差 < 1%)

经过完整验证,vit_tiny_patch16_224.augreg_in21k 在 Ascend NPU 上的推理结果与 CPU 推理结果的误差小于 1%,精度满足要求。NPU 推理相较于 CPU 推理获得了 10.19x 的加速效果。