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

swinv2_small_window16_256-npu

模型介绍

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

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/timm/swinv2_small_window16_256.ms_in1k

任务类型

图像分类(Image Classification)

模型框架

  • PyTorch (timm)

输入格式

  • 图像张量: [batch_size, 3, 256, 256]
  • 数据类型: 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)加速比
CPU658.11x
NPU24.727x

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

部署和推理方法

  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, 256, 256]
  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.13054974
Mean Absolute Error (logit)2.50372700e-02
Relative L2 Error (logit)2.71129876e-01
Cosine Similarity0.96294427
Top-1 Agreement100.00%
Top-5 Overlap80.00%
Max Prob Diff (softmax)0.00012304
Mean Prob Diff (softmax)2.51628990e-05
Top-1 Prob Diff (softmax)4.69471561e-05

精度结论

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

Max Prob Diff = 0.0123%, Mean Prob Diff = 0.0025%

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

性能测试结果

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

推理成功截图

(Timing captured during README generation)

精度测试日志

============================================================
CPU output shape: (1, 1000)
NPU output shape: (1, 1000)
  =======================================================
  精度指标                                数值             
  -------------------------------------------------------
  Max Absolute Error (logit)          0.00188507     
  Mean Absolute Error (logit)         4.49564017e-04 
  Relative L2 Error (logit)           4.86491621e-03 
  Cosine Similarity                   0.99998844     
  Top-1 Agreement                     100.00         %
  Top-5 Overlap                       100.00         %
  Max Prob Diff (softmax)             0.00000208     
  Mean Prob Diff (softmax)            4.56068562e-07 
  Top-1 Prob Diff (softmax)           6.10947609e-07 
  =======================================================
  结论: NPU 与 CPU 推理结果误差 < 1% ✓
        (Max Prob Diff = 0.0002%, Mean = 0.0000%)
  =======================================================

模型标签

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

版权声明

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