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

volo_d3_448.sail_in1k - NPU 部署

1. 模型介绍

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

主要特点:

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

2. 原始模型信息

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

NPU 推理

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

CPU 与 NPU 精度对比

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

6. 推理结果

性能

指标CPUNPU
平均推理时间4574.32 ms14.07 ms
加速比(CPU/NPU)-325.22x

Top-5 预测结果

CPU Top-5:

排名类别 ID概率
11070.6296% (class_107)
21110.5650% (class_111)
3210.5348% (class_21)
47010.5229% (class_701)
540.3851% (class_4)

NPU Top-5:

排名类别 ID概率
11070.6317% (class_107)
21110.5598% (class_111)
3210.5333% (class_21)
47010.5234% (class_701)
540.3871% (class_4)

7. CPU/NPU 精度对比

测试配置

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

精度指标

指标数值
Logits 最大绝对误差0.00910270
Logits 平均绝对误差0.00116716
Logits 余弦相似度0.99998283
概率最大绝对误差0.00005158
概率平均绝对误差0.00000133
Top-1 匹配YES
Top-5 重叠5/5

结论

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

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

推理成功证据

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

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

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

运行日志关键信息

Model loaded successfully on NPU
Inference completed
Results saved