g
gcw_C8PI9e90/levit-256-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

LeViT-256 昇腾 NPU 适配说明

模型介绍

LeViT(LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference)是 Facebook Research 提出的一种轻量级视觉 Transformer 模型。LeViT-256 是 LeViT 系列的中大规模模型,具有 256/384/512 的隐藏维度,在 ImageNet-1K 数据集上预训练。

LeViT 通过创新的注意力机制和下采样策略,在保持高精度的同时实现了高效的推理。

  • 论文: LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference
  • 原始模型: facebook/levit-256

任务类型

图像分类(Image Classification)

模型框架

  • PyTorch + Transformers

输入格式

  • RGB 图像,分辨率 224×224 像素
  • 预处理:使用 LevitImageProcessor 进行标准化处理

输出格式

  • 1000 个 ImageNet 类别的 logits 向量
  • 经过 Softmax 后的概率分布

依赖环境

依赖版本
Python3.11.14
PyTorch2.9.0
torch_npu2.9.0.post1
Transformers4.57.6
Pillow12.2.0
NumPy1.x

NPU 适配说明

该模型基于华为昇腾 Ascend 910 NPU 进行适配,模型大小约 73MB。

适配要点

  • 模型加载后使用 .float() 确保 FP32 精度
  • CPU 和 NPU 使用完全相同的输入图像和预处理流程
  • 推理过程使用 10 次平均以获取稳定耗时数据

环境准备

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision transformers Pillow numpy

推理命令

CPU 推理

python3 inference.py --device cpu --image test.jpg

NPU 推理

python3 inference.py --device npu --image test.jpg

推理结果

使用合成测试图像(224×224 RGB)进行推理测试:

CPU 推理结果

Top-5 predictions:
  1. class 21: 58.66%
  2. class 128: 18.81%
  3. class 701: 1.68%
  4. class 22: 1.08%
  5. class 405: 0.96%

NPU 推理结果

Top-5 predictions:
  1. class 21: 58.41%
  2. class 128: 18.73%
  3. class 701: 1.68%
  4. class 22: 1.08%
  5. class 405: 0.97%

部署和推理方法

  1. 通过 ModelScope 下载模型或使用本地权重
  2. 运行 inference.py 进行推理
  3. 支持 CPU 和 NPU 两种模式

CPU/NPU 精度测试方法

使用相同输入分别在 CPU 和 NPU 上推理,对比 logits、概率分布、Top-1/Top-5 预测一致性。

python3 inference.py --device cpu --image test.jpg
python3 inference.py --device npu --image test.jpg
python3 compare_cpu_npu.py

CPU/NPU 精度测试结果

指标CPUNPU误差
Top-1 类别class 21class 21一致
Top-1 概率58.66%58.41%0.25%
Logits MAE--0.00358348
Logits MaxAE--0.02420330
Logits RMSE--0.00470627
概率 MaxAE--0.245225%
余弦相似度--0.99999724

结论

NPU 与 CPU 推理误差 < 1%。概率最大绝对误差仅 0.245225%,余弦相似度达到 0.99999724。Top-1 和 Top-5 预测完全一致。

性能测试结果

设备平均推理耗时加速比
CPU75.04 ms1.0×
NPU (Ascend 910)9.78 ms7.7×

NPU 推理速度约为 CPU 的 7.7 倍。

模拟终端输出截图

终端输出

模型标签

  • #+NPU
  • #+CV
  • #+图像分类
  • #+Vision Transformer
  • #+昇腾
  • #+LeViT
  • #+Ascend910