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

mvitv2_tiny.fb_in1k 昇腾 NPU 适配

模型介绍

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

  • 模型名称: mvitv2_tiny.fb_in1k
  • 描述: MViTv2 Tiny 224 IN1K
  • 任务类型: 图像分类
  • 模型框架: PyTorch + timm
  • 输入格式: RGB 图像 (224x224)
  • 输出格式: 1000 类分类概率
  • 原始模型地址: timm/mvitv2_tiny.fb_in1k
  • ModelScope 地址: timm/mvitv2_tiny.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_tiny.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 类别128
NPU Top-1 类别128
Top-1 匹配是
Top-5 重叠5/5
余弦相似度0.99999594
最大概率差异0.043038%
CPU 耗时0.2785s
NPU 耗时0.2972s
加速比0.94x

Top-5 概率对比

类别CPU 概率NPU 概率差异
1280.1231350.1235190.00038400
210.0909570.0913880.00043100
1270.0458860.0460960.00021000
230.0450600.0452530.00019300
220.0263570.0264710.00011400

精度测试结论

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

性能分析

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

推理成功证据

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

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

模型标签

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

下载使用量0