本模型是 Swin Transformer 在 ImageNet 数据集上的预训练模型,由 timm 库提供。
Swin Transformer 是一种层级式 Vision Transformer (ViT) 架构,通过移位窗口(Shifted Window)注意力机制,在计算复杂度与模型表达能力之间取得平衡。该模型适用于图像分类任务。
[1, 1000]| 组件 | 版本 |
|---|---|
| Python | 3.11+ |
| PyTorch | 2.9.0 |
| torch_npu | 2.9.0.post1 |
| timm | 1.0.27 |
| Pillow | 12.2.0+ |
本模型基于 Ascend 910 NPU 完成适配。适配过程中,仅需将模型加载到 NPU 设备上即可运行,无需修改模型架构。
关键要点:
torch.npu 作为后端,模型通过 .to('npu:0') 迁移到 NPUtorch.npu.synchronize() 确保正确计时# 安装依赖
pip install torch torchvision timm Pillow requests numpy
# 设置 huggingface 镜像(可选)
export HF_ENDPOINT=https://hf-mirror.compython3 inference.pypython3 inference.py --device cpu| 设备 | 推理耗时 (ms) | Top-1 类别 | Top-1 概率 |
|---|---|---|---|
| CPU | 398.6 | class_688 | 20.98% |
| NPU | 27.0 | class_688 | 20.95% |
NPU 推理速度是 CPU 的 14.8 倍。
| 排名 | 类别 | 概率 |
|---|---|---|
| 1 | class_688 | 20.95% |
| 2 | class_916 | 13.65% |
| 3 | class_646 | 9.60% |
| 4 | class_782 | 5.38% |
| 5 | class_590 | 4.17% |
python3 compare_cpu_npu.py| 指标 | 数值 |
|---|---|
| L2 相对误差 | 0.2004% |
| Cosine Similarity | 0.99999826 |
| Top-1 一致性 | 是 |
| Top-5 重叠 | 5/5 |
| 最大概率差异 | 0.000849 |
| 最大绝对误差 | 0.01092207 |
| RMSE | 0.00254221 |
结论:NPU 与 CPU 推理结果误差 < 1%,精度对齐通过。
| 指标 | CPU | NPU | 加速比 |
|---|---|---|---|
| 推理耗时 (ms) | 398.6 | 27.0 | 14.8x |

#+NPU #+CV #+图像分类 #+昇腾 #+SwinTransformer #+timm