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

swinv2_base_window12to24_192to384-npu

模型介绍

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

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/timm/swinv2_base_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)加速比
CPU3177.71x
NPU64.249x

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

部署和推理方法

  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.08914217
Mean Absolute Error (logit)2.34416891e-02
Relative L2 Error (logit)6.49592727e-02
Cosine Similarity0.99789101
Top-1 Agreement0.00%
Top-5 Overlap80.00%
Max Prob Diff (softmax)0.00010171
Mean Prob Diff (softmax)2.35444040e-05
Top-1 Prob Diff (softmax)2.15225155e-05

精度结论

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

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

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

性能测试结果

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

推理成功截图

(Timing captured during README generation)

精度测试日志

============================================================
CPU output shape: (1, 1000)
NPU output shape: (1, 1000)
  =======================================================
  精度指标                                数值             
  -------------------------------------------------------
  Max Absolute Error (logit)          0.00364870     
  Mean Absolute Error (logit)         8.87857983e-04 
  Relative L2 Error (logit)           2.39387550e-03 
  Cosine Similarity                   0.99999803     
  Top-1 Agreement                     100.00         %
  Top-5 Overlap                       100.00         %
  Max Prob Diff (softmax)             0.00000274     
  Mean Prob Diff (softmax)            6.85376335e-07 
  Top-1 Prob Diff (softmax)           2.20618676e-06 
  =======================================================
  结论: NPU 与 CPU 推理结果误差 < 1% ✓
        (Max Prob Diff = 0.0003%, Mean = 0.0001%)
  =======================================================

模型标签

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

版权声明

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