Interlinked7/swinv2_large_window12to24_192to384-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

swinv2_large_window12to24_192to384-npu

模型介绍

swinv2_large_window12to24_192to384 是 Swin Transformer V2 系列的一个变体,基于 shifted window attention 机制,适用于图像分类任务。

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/timm/swinv2_large_window12to24_192to384.ms_in22k_ft_in1k

任务类型

图像分类(Image Classification)

模型框架

  • PyTorch (timm)

输入格式

  • 图像张量: [batch_size, 3, 384, 384]
  • 数据类型: float32
  • 归一化: mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]

输出格式

  • 分类 logits: [batch_size, 1000]
  • 对应 ImageNet 1000 类分类结果

依赖环境

依赖版本
Python3.11+
PyTorch2.9.0
torch_npu2.9.0.post1
timm1.0.27
ascend-cann8.5.1
numpy≥1.20.0

NPU 适配说明

该模型基于 PyTorch + timm 框架,通过 torch_npu 在华为昇腾 Ascend910 NPU 上完成推理适配。模型权重通过 ModelScope 下载,无需额外修改模型结构即可在 NPU 上运行。

环境准备

# 安装依赖
pip install torch torch_npu timm numpy modelscope safetensors -i https://mirrors.aliyun.com/pypi/simple/

# 检查 NPU 状态
npu-smi info

推理命令

# CPU + NPU 推理
python3 inference.py --device all --num_iters 3

# 仅 CPU 推理
python3 inference.py --device cpu --num_iters 3

# 仅 NPU 推理
python3 inference.py --device npu --num_iters 3

推理结果

设备平均耗时 (ms)加速比
CPU6876.01x
NPU75.791x

NPU 推理相比 CPU 推理取得了约 91x 的加速效果。

部署和推理方法

  1. 将模型文件(inference.py、compare_cpu_npu.py、requirements.txt)下载到目标环境
  2. 按照「环境准备」安装依赖
  3. 执行推理命令即可运行模型

CPU/NPU 精度测试方法

python3 inference.py --device all --num_iters 3
python3 compare_cpu_npu.py

精度测试流程:

  1. 使用相同的随机输入张量 [1, 3, 384, 384]
  2. 分别在 CPU 和 NPU 上运行推理
  3. 对比两者输出的 logits、softmax 概率、Top-1/Top-5 预测结果
  4. 计算 Max Absolute Error、Cosine Similarity、Max Prob Diff 等指标

CPU/NPU 精度测试结果

指标数值
Max Absolute Error (logit)0.11503860
Mean Absolute Error (logit)2.45695952e-02
Relative L2 Error (logit)7.13306665e-02
Cosine Similarity0.99759114
Top-1 Agreement100.00%
Top-5 Overlap80.00%
Max Prob Diff (softmax)0.00011943
Mean Prob Diff (softmax)2.42933766e-05
Top-1 Prob Diff (softmax)2.20512738e-05

精度结论

NPU 与 CPU 推理结果误差 < 1%

Max Prob Diff = 0.0119%, Mean Prob Diff = 0.0024%

NPU 的推理结果与 CPU 推理结果在高层次上完全一致(Top-1 准确率一致率达到 100%),softmax 概率平均差异极小,满足昇腾 NPU 部署精度要求。

性能测试结果

指标CPUNPU
平均推理耗时 (ms)6876.075.7
加速比1x91x

推理成功截图

(Timing captured during README generation)

精度测试日志

============================================================
CPU output shape: (1, 1000)
NPU output shape: (1, 1000)
  =======================================================
  精度指标                                数值             
  -------------------------------------------------------
  Max Absolute Error (logit)          0.00636974     
  Mean Absolute Error (logit)         1.40960433e-03 
  Relative L2 Error (logit)           4.09220997e-03 
  Cosine Similarity                   0.99999171     
  Top-1 Agreement                     0.00           %
  Top-5 Overlap                       100.00         %
  Max Prob Diff (softmax)             0.00000877     
  Mean Prob Diff (softmax)            1.38455516e-06 
  Top-1 Prob Diff (softmax)           6.15266617e-06 
  =======================================================
  结论: NPU 与 CPU 推理结果误差 < 1% ✓
        (Max Prob Diff = 0.0009%, Mean = 0.0001%)
  =======================================================

模型标签

  • #+NPU
  • #+CV
  • #+图像分类
  • #+SwinTransformerV2
  • #+昇腾
  • #+Ascend910

版权声明

本仓库仅用于昇腾 NPU 适配验证,模型版权归原始作者所有。