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

volo_d5_512.sail_in1k - NPU 部署

1. 模型介绍

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

主要特点:

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

2. 原始模型信息

  • 原始模型:timm/volo_d5_512.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_d5_512.sail_in1k --device cpu --image test_image.jpg

NPU 推理

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

CPU 与 NPU 精度对比

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

6. 推理结果

性能

指标CPUNPU
平均推理时间17086.48 ms23.98 ms
加速比(CPU/NPU)-712.42x

Top-5 预测结果

CPU Top-5:

排名类别 ID概率
19168.7976% (class_916)
28515.6631% (class_851)
31075.1280% (class_107)
46642.5438% (class_664)
57012.4426% (class_701)

NPU Top-5:

排名类别 ID概率
19168.2931% (class_916)
28515.8859% (class_851)
31075.1281% (class_107)
46642.6480% (class_664)
57012.3237% (class_701)

7. CPU/NPU 精度对比

测试配置

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

精度指标

指标数值
Logits 最大绝对误差0.06667662
Logits 平均绝对误差0.00539168
Logits 余弦相似度0.99990779
概率最大绝对误差0.00504457
概率平均绝对误差0.00001976
Top-1 匹配YES
Top-5 重叠5/5

结论

NPU 与 CPU 推理误差 < 1%。 NPU 与 CPU 输出的最大概率差异为 0.5045%,远低于 1% 的阈值。Logits 的余弦相似度为 0.99990779,表明输出分布几乎一致。因此,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.99990779160.0092%

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

推理成功证据

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

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

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

运行日志关键信息

Model loaded successfully on NPU
Inference completed
Results saved