m0_74196153/swin_tiny_patch4_window7_224.ms_in22k-npu
模型介绍文件和版本Pull Requests讨论分析

swin_tiny_patch4_window7_224.ms_in22k

模型介绍

本模型是 Swin Transformer 在 ImageNet 数据集上的预训练模型,由 timm 库提供。

Swin Transformer 是一种层级式 Vision Transformer (ViT) 架构,通过移位窗口(Shifted Window)注意力机制,在计算复杂度与模型表达能力之间取得平衡。该模型适用于图像分类任务。

  • 原始模型地址:timm/swin_tiny_patch4_window7_224.ms_in22k
  • 任务类型:图像分类
  • 模型框架:PyTorch + timm

输入格式

  • 输入尺寸:(3, 224, 224)
  • 数据类型:RGB 图像(3 通道)
  • 数据预处理:归一化(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])、Bicubic 插值缩放、中心裁剪

输出格式

  • 输出形状:[1, 1000]
  • 输出内容:1000 个 ImageNet 类别的 logits 值
  • 后处理:通过 Softmax 转换为概率,取 Top-5 作为预测结果

依赖环境

组件版本
Python3.11+
PyTorch2.9.0
torch_npu2.9.0.post1
timm1.0.27
Pillow12.2.0+

NPU 适配说明

本模型基于 Ascend 910 NPU 完成适配。适配过程中,仅需将模型加载到 NPU 设备上即可运行,无需修改模型架构。

关键要点:

  • 使用 torch.npu 作为后端,模型通过 .to('npu:0') 迁移到 NPU
  • 推理时使用 torch.npu.synchronize() 确保正确计时
  • 输入数据和模型权重精度为 FP32

环境准备

# 安装依赖
pip install torch torchvision timm Pillow requests numpy

# 设置 huggingface 镜像(可选)
export HF_ENDPOINT=https://hf-mirror.com

推理命令

NPU 推理

python3 inference.py

CPU 推理

python3 inference.py --device cpu

推理结果

设备推理耗时 (ms)Top-1 类别Top-1 概率
CPU231.1class_1200913.39%
NPU10.4class_1200913.40%

NPU 推理速度是 CPU 的 22.3 倍。

Top-5 预测结果(NPU)

排名类别概率
1class_1200913.40%
2class_121606.87%
3class_216806.71%
4class_120045.84%
5class_216795.64%

CPU/NPU 精度测试方法

  1. 在 CPU 上运行推理,保存输出 logits
  2. 在 NPU 上运行推理,保存输出 logits
  3. 计算 CPU 与 NPU 输出之间的误差指标:
    • L2 相对误差(主要指标)
    • Cosine Similarity(余弦相似度)
    • Top-1 / Top-5 类别一致性
    • 最大概率差异
python3 compare_cpu_npu.py

CPU/NPU 精度测试结果

指标数值
L2 相对误差0.1475%
Cosine Similarity0.99999879
Top-1 一致性是
Top-5 重叠5/5
最大概率差异0.000156
最大绝对误差0.01030779
RMSE0.00139194

结论:NPU 与 CPU 推理结果误差 < 1%,精度对齐通过。

性能测试结果

指标CPUNPU加速比
推理耗时 (ms)231.110.422.3x

模拟终端输出截图

终端输出

模型标签

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

下载使用量0