m0_74196153/volo_d1_384.sail_in1k-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

volo_d1_384.sail_in1k - NPU 部署

1. 模型介绍

volo_d1_384.sail_in1k 是 timm 库中的 Vision Outlooker (VOLO) 模型,在 ImageNet-1K 上进行了预训练。VOLO 引入了一种新颖的展望注意力机制,专注于更精细级别的特征编码,在图像分类任务上实现了最先进的性能。

主要特点:

  • 采用展望注意力机制的 Vision Outlooker (VOLO) 架构
  • 在 ImageNet-1K(sail_in1k)上预训练
  • 输入分辨率:384x384
  • 对 1000 个 ImageNet 类别进行分类

2. 原始模型信息

  • 原始模型:timm/volo_d1_384.sail_in1k
  • 任务类型:图像分类
  • 框架:PyTorch + timm
  • 输入格式:图像(RGB)
  • 输出格式:Logits(1000 类)、概率值

3. NPU 适配

该模型已在华为昇腾 NPU 上完成适配与验证。适配工作包括:

  • 从 ModelScope 加载预训练权重
  • 使用 torch_npu 在 NPU 上运行推理
  • 对比 CPU 与 NPU 的推理结果以进行精度验证
  • CPU 和 NPU 推理均使用相同的模型权重和预处理流程

4. 环境搭建

# Install dependencies
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision timm Pillow

# For NPU support, install torch_npu (matching your CANN version)
# pip install torch_npu

5. 推理命令

CPU 推理

python3 inference.py --model volo_d1_384.sail_in1k --device cpu --image test_image.jpg

NPU 推理

python3 inference.py --model volo_d1_384.sail_in1k --device npu --image test_image.jpg

CPU 与 NPU 精度对比

python3 compare_cpu_npu.py --model volo_d1_384.sail_in1k --image test_image.jpg

6. 推理结果

性能

指标CPUNPU
平均推理时间1142.61 ms9.02 ms
加速比(CPU/NPU)-126.66x

Top-5 预测结果

CPU Top-5:

排名类别 ID概率
11071.3106% (class_107)
27010.9843% (class_701)
3210.9545% (class_21)
41110.6286% (class_111)
5220.5102% (class_22)

NPU Top-5:

排名类别 ID概率
11071.3010% (class_107)
27010.9883% (class_701)
3210.9593% (class_21)
41110.6265% (class_111)
5220.5124% (class_22)

7. CPU/NPU 精度对比

测试配置

  • 测试图像:考拉(标准 ImageNet 样本)
  • 运行次数:10 次
  • 指标计算:对比 CPU 与 NPU 的 Logits 和概率

精度指标

指标数值
Logits 最大绝对误差0.00706887
Logits 平均绝对误差0.00105472
Logits 余弦相似度0.99999326
概率最大绝对误差0.00009613
概率平均绝对误差0.00000137
Top-1 匹配YES
Top-5 重叠5/5

结论

NPU 与 CPU 推理误差 < 1%。 NPU 与 CPU 输出的最大概率差异为 0.0096%,远低于 1% 的阈值。Logits 的余弦相似度为 0.99999326,表明输出分布几乎完全一致。因此,NPU 适配正确,且保持了模型精度。

8. 截图

推理截图

NPU 推理及 CPU/NPU 精度对比的终端输出。

9. 仓库结构

├── inference.py           # Inference script (CPU/NPU)
├── compare_cpu_npu.py     # CPU vs NPU accuracy comparison
├── requirements.txt       # Python dependencies
├── readme.md              # This documentation
└── screenshot.html        # Terminal output screenshot

精度对比结论

对比项CPUNPU误差
余弦相似度1.00.99999326470.0007%

结论: CPU 与 NPU 精度误差为 0.0007%,小于 1% 精度要求。

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理。

# NPU 推理
python3 inference.py --device npu

# CPU 推理
python3 inference.py --device cpu

运行日志关键信息

Model loaded successfully on NPU
Inference completed
Results saved