LeViT(LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference)是 Facebook Research 提出的一种轻量级视觉 Transformer 模型。LeViT-256 是 LeViT 系列的中大规模模型,具有 256/384/512 的隐藏维度,在 ImageNet-1K 数据集上预训练。
LeViT 通过创新的注意力机制和下采样策略,在保持高精度的同时实现了高效的推理。
图像分类(Image Classification)
| 依赖 | 版本 |
|---|---|
| Python | 3.11.14 |
| PyTorch | 2.9.0 |
| torch_npu | 2.9.0.post1 |
| Transformers | 4.57.6 |
| Pillow | 12.2.0 |
| NumPy | 1.x |
该模型基于华为昇腾 Ascend 910 NPU 进行适配,模型大小约 73MB。
.float() 确保 FP32 精度pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision transformers Pillow numpypython3 inference.py --device cpu --image test.jpgpython3 inference.py --device npu --image test.jpg使用合成测试图像(224×224 RGB)进行推理测试:
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%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%inference.py 进行推理使用相同输入分别在 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 | 误差 |
|---|---|---|---|
| Top-1 类别 | class 21 | class 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 预测完全一致。
| 设备 | 平均推理耗时 | 加速比 |
|---|---|---|
| CPU | 75.04 ms | 1.0× |
| NPU (Ascend 910) | 9.78 ms | 7.7× |
NPU 推理速度约为 CPU 的 7.7 倍。
