LeViT(LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference)是 Facebook Research 提出的一种轻量级视觉 Transformer 模型。LeViT-192 是 LeViT 系列的中等规模模型,具有 192/288/384 的隐藏维度,在 ImageNet-1K 数据集上预训练。
LeViT 通过将 Transformer 的注意力机制与卷积神经网络的高效特征提取相结合,在精度和速度之间取得了良好的平衡。
图像分类(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 进行适配,隐藏维度为 [192, 288, 384]。
.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: 41.26%
2. class 701: 6.05%
3. class 128: 5.22%
4. class 22: 2.54%
5. class 557: 2.07%Top-5 predictions:
1. class 21: 41.28%
2. class 701: 6.06%
3. class 128: 5.21%
4. class 22: 2.55%
5. class 557: 2.07%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 概率 | 41.26% | 41.28% | 0.02% |
| Logits MAE | - | - | 0.00122130 |
| Logits MaxAE | - | - | 0.00523043 |
| Logits RMSE | - | - | 0.00152576 |
| 概率 MaxAE | - | - | 0.017124% |
| 余弦相似度 | - | - | 0.99999945 |
NPU 与 CPU 推理误差 < 1%。概率最大绝对误差仅 0.017124%,余弦相似度达到 0.99999945。Top-1 和 Top-5 预测完全一致。
| 设备 | 平均推理耗时 | 加速比 |
|---|---|---|
| CPU | 48.83 ms | 1.0× |
| NPU (Ascend 910) | 9.76 ms | 5.0× |
NPU 推理速度约为 CPU 的 5.0 倍。
