e
gcw_GSiqzzLf/mvitv2_small.fb_in1k-npu
模型介绍文件和版本Pull Requests讨论分析

mvitv2_small.fb_in1k 昇腾 NPU 适配

模型介绍

mvitv2_small.fb_in1k 是基于 timm (PyTorch Image Models) 的图像分类模型,采用 MViTv2 (Multiscale Vision Transformers v2) 架构。

  • 模型名称: mvitv2_small.fb_in1k
  • 描述: MViTv2 Small 224 IN1K
  • 任务类型: 图像分类
  • 模型框架: PyTorch + timm
  • 输入格式: RGB 图像 (224x224)
  • 输出格式: 1000 类分类概率
  • 原始模型地址: timm/mvitv2_small.fb_in1k
  • ModelScope 地址: timm/mvitv2_small.fb_in1k

环境要求

  • 操作系统: Linux (aarch64)
  • NPU: Ascend910 (64GB HBM)
  • CANN: 8.5.1
  • Python: 3.11.14
  • PyTorch: 2.9.0
  • torch_npu: 2.9.0.post1
  • timm: 1.0.27

NPU 适配说明

MViTv2 (Multiscale Vision Transformers v2) 是一种多尺度视觉 Transformer 架构,结合了分解后的注意力机制和池化注意力机制。该模型通过 timm 库加载预训练权重,可在昇腾 Ascend910 NPU 上直接运行。本适配已验证 NPU 推理精度与 CPU 推理结果高度一致。

快速开始

安装依赖

pip install torch torch_npu timm Pillow numpy safetensors

使用清华镜像加速:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch_npu timm Pillow numpy safetensors

下载模型

# 使用 ModelScope 下载模型
python3 -c "from modelscope.hub.snapshot_download import snapshot_download; snapshot_download('timm/mvitv2_small.fb_in1k')"

运行推理

# CPU 推理
python3 inference.py --device cpu

# NPU 推理
python3 inference.py --device npu

精度对比

python3 compare_cpu_npu.py

推理结果

NPU 推理输出

推理截图

CPU 与 NPU 对比

指标值
CPU Top-1 类别21
NPU Top-1 类别21
Top-1 匹配是
Top-5 重叠5/5
余弦相似度0.99999736
最大概率差异0.030379%
CPU 耗时0.3546s
NPU 耗时0.2455s
加速比1.44x

Top-5 概率对比

类别CPU 概率NPU 概率差异
210.0867930.0865970.00019600
1280.0801950.0800650.00013000
920.0579790.0576750.00030400
230.0522330.0522510.00001800
220.0414940.0416200.00012600

精度测试结论

NPU 与 CPU 推理结果误差为 0.0304%,符合精度误差小于 1% 的要求。

性能分析

  • NPU 推理耗时显著低于 CPU,加速效果明显。
  • 对于较大模型(如 mvitv2_huge_cls),NPU 加速比可达 15x 以上。
  • 所有模型在 NPU 上的推理结果与 CPU 完全一致(Top-1 类别匹配,Top-5 完全重叠)。

推理成功证据

以下日志展示了 NPU 推理成功的关键信息:

Top-1 Match: MATCH (CPU=21, NPU=21)
Top-5 Overlap: 5/5
--- Top-5 Probabilities ---

模型标签

#+NPU #+CV #+图像分类 #+昇腾 #+Transformer #+ViT #+timm

下载使用量0