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

mvitv2_huge_cls.fb_inw21k 昇腾 NPU 适配

模型介绍

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

  • 模型名称: mvitv2_huge_cls.fb_inw21k
  • 描述: MViTv2 Huge CLS 224 IN21K
  • 任务类型: 图像分类
  • 模型框架: PyTorch + timm
  • 输入格式: RGB 图像 (224x224)
  • 输出格式: 19168 类分类概率
  • 原始模型地址: timm/mvitv2_huge_cls.fb_inw21k
  • ModelScope 地址: timm/mvitv2_huge_cls.fb_inw21k

环境要求

  • 操作系统: 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_huge_cls.fb_inw21k')"

运行推理

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

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

精度对比

python3 compare_cpu_npu.py

推理结果

NPU 推理输出

推理截图

CPU 与 NPU 对比

指标值
CPU Top-1 类别1304
NPU Top-1 类别1304
Top-1 匹配是
Top-5 重叠5/5
余弦相似度0.99999275
最大概率差异0.042898%
CPU 耗时5.1273s
NPU 耗时0.3220s
加速比15.92x

Top-5 概率对比

类别CPU 概率NPU 概率差异
13040.0204030.0208320.00042900
102660.0129800.0131520.00017200
145850.0098210.0099700.00014900
95110.0079190.0080000.00008100
74270.0074610.0075730.00011200

精度测试结论

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

性能分析

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

推理成功证据

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

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

模型标签

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

下载使用量0