本模型是 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 | 231.1 | class_12009 | 13.39% |
| NPU | 10.4 | class_12009 | 13.40% |
NPU 推理速度是 CPU 的 22.3 倍。
| 排名 | 类别 | 概率 |
|---|---|---|
| 1 | class_12009 | 13.40% |
| 2 | class_12160 | 6.87% |
| 3 | class_21680 | 6.71% |
| 4 | class_12004 | 5.84% |
| 5 | class_21679 | 5.64% |
python3 compare_cpu_npu.py| 指标 | 数值 |
|---|---|
| L2 相对误差 | 0.1475% |
| Cosine Similarity | 0.99999879 |
| Top-1 一致性 | 是 |
| Top-5 重叠 | 5/5 |
| 最大概率差异 | 0.000156 |
| 最大绝对误差 | 0.01030779 |
| RMSE | 0.00139194 |
结论:NPU 与 CPU 推理结果误差 < 1%,精度对齐通过。
| 指标 | CPU | NPU | 加速比 |
|---|---|---|---|
| 推理耗时 (ms) | 231.1 | 10.4 | 22.3x |

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