Twins-SVT base 是 Twins 系列中的基础视觉Transformer变体,在模型大小和性能之间取得平衡,适用于通用图像分类任务。
此仓库记录了在华为昇腾 NPU(Ascend910)上完成 twins_svt_base.in1k 模型适配、推理和精度验证的完整过程。
原始模型地址:twins_svt_base.in1k
| 组件 | 规格 |
|---|---|
| NPU | Ascend910 (64GB HBM) |
| CPU | ARM 64核 |
| 内存 | 512GB |
| 组件 | 版本 |
|---|---|
| 操作系统 | Linux (aarch64) |
| Python | 3.11.14 |
| PyTorch | 2.9.0 |
| torch_npu | 2.9.0.post1 |
| timm | 1.0.27 |
| CANN | 8.5.1 |
pip install torch torch_npu timm torchvision pillow numpy modelscope safetensors# NPU 推理
python3 inference.py --model-name twins_svt_base.in1k --device npu --num-runs 3
# CPU 推理
python3 inference.py --model-name twins_svt_base.in1k --device cpu --num-runs 3python3 compare_cpu_npu.py --model-name twins_svt_base.in1k本模型基于 timm 框架,支持直接导出为 ONNX 或 TorchScript 格式进行部署。在昇腾 NPU 上,使用 torch_npu 插件即可自动利用 NPU 加速推理。
在 Ascend910 NPU 上运行推理,Top-5 分类结果如下:
| 排名 | 类别 | 置信度 |
|---|---|---|
| 1 | golf_ball | 0.0474 |
| 2 | matchstick | 0.0374 |
| 3 | candle | 0.0372 |
| 4 | steam_locomotive | 0.0343 |
| 5 | microphone | 0.0281 |
| 指标 | CPU | NPU |
|---|---|---|
| 推理耗时 | 395.20ms | 260.16ms |
| 加速比 | — | 1.52x |
| 指标 | 数值 |
|---|---|
| Max Absolute Error (Logits) | 0.016147 |
| Mean Absolute Error (Logits) | 0.00237475 |
| Max Probability Difference | 0.000356 |
| Mean Probability Difference | 0.00000382 |
| Cosine Similarity | 0.99999672 |
| Top-1 Match | Yes |
| Top-5 Overlap | 5/5 |
| CPU 推理耗时 | 395.20ms |
| NPU 推理耗时 | 260.16ms |
| NPU 加速比 | 1.52x |
NPU 与 CPU 推理结果误差 < 1%,精度合格。
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Model: twins_svt_base.in1k CPU vs NPU │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ [LOG_WARNING] can not create directory, directory: /home/atomgit/ascend/log, possible reason: No such file or di...│
│ 模型: twins_svt_base.in1k │
│ CPU vs NPU 精度对比 │
│ ============================================================ │
│ │
│ [INFO] 加载模型 (CPU)... │
│ [INFO] 加载模型 (NPU)... │
│ │
│ [INFO] CPU 推理... │
│ [INFO] NPU 推理... │
│ │
│ ============================================================ │
│ 精度对比结果 │
│ ============================================================ │
│ │
│ Logits 差异: │
│ Max Absolute Error: 0.016147 │
│ Mean Absolute Error: 0.00237475 │
│ Max Relative Error: 44.2526% │
│ Mean Relative Error: 0.8952% │
│ │
│ 概率差异: │
│ Max Probability Difference: 0.000356 │
│ Mean Probability Difference: 0.00000382 │
│ │
│ 分类一致性: │
│ CPU Top-1 class: 574 │
│ NPU Top-1 class: 574 │
│ Top-1 match: YES │
│ Top-5 overlap: 5/5 │
│ │
│ Cosine Similarity: 0.99999672 │
│ │
│ 推理耗时: │
│ CPU: 403.93ms │
│ NPU: 251.93ms │
│ Speedup: 1.60x │
│ │
│ ============================================================ │
│ 结论: 通过 │
│ NPU 与 CPU 推理结果误差 < 1%(基于概率差异和分类一致性) │
│ ============================================================ │
│ │
│ │
│ 【精度对比摘要】 │
│ | 指标 | 数值 | │
│ |---|---:| │
│ | Max Absolute Error | 0.016147 | │
│ | Mean Absolute Error | 0.00237475 | │
│ | Max Relative Error | 44.2526% | │
│ | Mean Relative Error | 0.8952% | │
│ | Max Prob Difference | 0.000356 | │
│ | Mean Prob Difference | 0.00000382 | │
│ | Cosine Similarity | 0.99999672 | │
│ | Top-1 Match | Yes | │
│ | Top-5 Overlap | 5/5 | │
│ | CPU Time | 403.93ms | │
│ | NPU Time | 251.93ms | │
│ | Speedup | 1.60x | │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘#+NPU:表示此模型已在昇腾 NPU 上完成适配和验证#+CV:计算机视觉任务#+昇腾:华为昇腾平台适配#+Transformer:基于 Transformer 架构