mvitv2_tiny.fb_in1k 是基于 timm (PyTorch Image Models) 的图像分类模型,采用 MViTv2 (Multiscale Vision Transformers v2) 架构。
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 npupython3 compare_cpu_npu.py
| 指标 | 值 |
|---|---|
| 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 |
| 类别 | CPU 概率 | NPU 概率 | 差异 |
|---|---|---|---|
| 128 | 0.123135 | 0.123519 | 0.00038400 |
| 21 | 0.090957 | 0.091388 | 0.00043100 |
| 127 | 0.045886 | 0.046096 | 0.00021000 |
| 23 | 0.045060 | 0.045253 | 0.00019300 |
| 22 | 0.026357 | 0.026471 | 0.00011400 |
NPU 与 CPU 推理结果误差为 0.0430%,符合精度误差小于 1% 的要求。
以下日志展示了 NPU 推理成功的关键信息:
Top-1 Match: MATCH (CPU=128, NPU=128)
Top-5 Overlap: 5/5
--- Top-5 Probabilities ---#+NPU #+CV #+图像分类 #+昇腾 #+Transformer #+ViT #+timm