ViT-Base-Patch16-224 (augreg_in21k) · 昇腾 NPU 适配
模型简介
ViT(视觉Transformer)Base是基于Transformer架构的图像分类模型,由Google Research提出。该模型将图像切分为16×16的图块,通过图块嵌入(Patch Embedding)与Transformer编码器(Transformer Encoder)进行分类。
属性 值 模型名称 vit_base_patch16_224.augreg_in21k 参数量 1.026亿 输入尺寸 224 × 224 × 3 图块大小 16 × 16 类别数 21,843(ImageNet-21k) 隐藏维度 768 原始框架 PyTorch / timm 预训练方式 增强回归(AugReg) 模型来源 ModelScope
昇腾 NPU 适配
本仓库提供ViT-Base-Patch16-224模型在华为昇腾Ascend 910 NPU 上的推理适配代码与评测报告。
环境要求
组件 版本 CANN 8.5.1 PyTorch 2.9.0 torch_npu 2.9.0.post1 timm ≥ 1.0 modelscope ≥ 1.0 Python 3.11
快速开始
1. 安装依赖
pip install timm modelscope torch_npu
2. 下载模型
modelscope download --model timm/vit_base_patch16_224.augreg_in21k
3. 运行推理
# NPU 推理 + 精度对比 + 性能测试
python3 inference.py
推理代码
import torch
import torch_npu
import timm
device = torch.device("npu:0")
model = timm.create_model(
"vit_base_patch16_224.augreg_in21k",
pretrained=False,
num_classes=21843,
checkpoint_path="./model.safetensors",
).to(device).eval()
x = torch.randn(1, 3, 224, 224).to(device)
with torch.no_grad():
output = model(x)
print(f"Output shape: {output.shape}") # [1, 21843]
精度评测
评测方法
基线 :CPU (PyTorch float32)
测试集 :10 组随机输入 (seed 0-9)
指标 :平均相对误差、Top-1/Top-5 一致性
评测结果
指标 值 阈值 状态 平均相对误差 0.167% < 1% ✅ 通过 Top-1 匹配率 100% (10/10) - ✅ 通过 Top-5 匹配率 84% (42/50) - ✅ 通过
逐样本详细结果
Seed 最大绝对误差 相对误差 Top-1 Top-5 状态 0 1.76e-01 0.195% ✓ 3/5 通过 1 1.36e-01 0.162% ✓ 3/5 通过 2 1.20e-01 0.164% ✓ 5/5 通过 3 1.13e-01 0.148% ✓ 5/5 通过 4 1.34e-01 0.178% ✓ 4/5 通过 5 1.03e-01 0.124% ✓ 5/5 通过 6 1.44e-01 0.184% ✓ 3/5 通过 7 1.35e-01 0.179% ✓ 5/5 通过 8 1.40e-01 0.179% ✓ 4/5 通过 9 1.19e-01 0.159% ✓ 5/5 通过
性能评测
硬件环境
NPU :Huawei Ascend 910 × 2 (单卡推理)
CPU :ARM aarch64
CANN :8.5.1
延迟 (Latency)
批处理大小 均值 (毫秒) P95 (毫秒) P99 (毫秒) 1 5.44 5.63 - 4 5.54 5.65 - 8 8.00 8.02 -
吞吐量 (Throughput)
批处理大小 图像/秒 毫秒/图像 1 183.7 5.44 4 721.8 1.39 8 1000.4 1.00
加速比
指标 CPU NPU 加速比 单图延迟 (bs=1) 627.24 毫秒 5.44 毫秒 115×
交付件说明
文件 说明 inference.pyNPU 推理脚本 (加载/推理/精度验证/性能测试) eval/benchmark.py评测脚本 (精度 + 延迟 + 吞吐) eval/eval_report.json评测原始数据 (JSON) eval/eval_summary.md评测摘要 (Markdown) eval/inference_run.log推理运行日志 eval/benchmark_run.log评测运行日志 README.md本文件
引用
@article{dosovitskiy2020vit,
title={An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale},
author={Dosovitskiy, Alexey and Beyer, Lucas and Kolesnikov, Alexander and
Weissenborn, Dirk and Zhai, Xiaohua and Unterthiner, Thomas and
Dehghani, Mostafa and Minderer, Matthias and Heigold, Georg and
Gelly, Sylvain and Uszkoreit, Jakob and Houlsby, Neil},
journal={ICLR},
year={2021}
}
许可
Apache 许可证 2.0