g
gcw_C8PI9e90/dm_nfnet_f6.dm_in1k-npu
模型介绍文件和版本Pull Requests讨论分析

dm_nfnet_f6 NPU 部署与推理

模型介绍

dm_nfnet_f6 dm_in1k 是 NFNet(Normalization-Free Net)系列的一个变体。NFNet 由 DeepMind 提出,基于 ResNet 架构但去除了所有 Batch Normalization 层,使用梯度裁剪和自适应梯度缩放技术来维持训练稳定性。该模型在 ImageNet-1K 上预训练,适用于图像分类任务。

  • 原始模型地址: https://www.modelscope.cn/models/timm/dm_nfnet_f6.dm_in1k
  • 任务类型: 图像分类
  • 模型框架: PyTorch + timm
  • 输入格式: RGB 图像(448×448)
  • 输出格式: 类别概率分布(1000 类)
  • 参数量: ~504M
  • 输入数据: 单张图像,3 通道 RGB,分辨率 448×448

NPU 适配说明

本模型已适配昇腾 Ascend 910 NPU,支持在 NPU 上进行推理。核心适配工作包括:

  1. 使用 torch.npu 将模型加载到 NPU 设备。
  2. 使用 torch.npu.synchronize() 确保 NPU 同步执行。
  3. 对 NPU 进行 3 轮 warmup 后再执行正式推理。
  4. 单测结果已完成 CPU 与 NPU 的精度对比验证。

环境准备

系统要求

  • Python 3.11+
  • Ascend 910 NPU
  • CANN 8.5.1+
  • torch 2.0+
  • torch-npu 2.0+

安装依赖

pip install torch torch-npu timm Pillow safetensors

推理方法

使用推理脚本

# CPU 推理
python3 inference.py --model dm_nfnet_f6.dm_in1k --device cpu --image test.jpg

# NPU 推理
python3 inference.py --model dm_nfnet_f6.dm_in1k --device npu --image test.jpg

推理结果

CPU 推理结果

Model: dm_nfnet_f6 dm_in1k
Device: cpu
Time: 11.4712s
Top-1: class 398
Top-5: [398, 767, 301, 418, 644]

NPU 推理结果

Model: dm_nfnet_f6 dm_in1k
Device: npu
Time: 0.0667s
Top-1: class 398
Top-5: [398, 767, 301, 418, 644]

CPU/NPU 精度对比

精度测试方法

  1. 分别在 CPU 和 NPU 上加载同一模型权重。
  2. 使用相同的输入图像,经过相同的预处理流程。
  3. 对比 CPU 与 NPU 的输出 logits,计算以下指标:
    • MAE(平均绝对误差)
    • MSE(均方误差)
    • 最大绝对误差
    • 余弦相似度
    • Top-100 平均相对误差
    • Top-1 分类一致性
    • Top-5 分类一致性

精度测试结果

指标值
MAE0.00106443
MSE0.00000225
最大绝对误差0.00832605
余弦相似度0.99999899
Top-100 平均相对误差0.1100%
Top-1 分类一致是
Top-5 重叠数5/5
Top-1 (CPU)398
Top-1 (NPU)398
Top-5 (CPU)[398, 767, 301, 418, 644]
Top-5 (NPU)[398, 767, 301, 418, 644]

结论:NPU 与 CPU 推理结果误差 < 1%,精度完全满足要求。

精度结论

基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0001%,小于 1% 的精度要求。

精度结论

基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0001%,小于 1% 的精度要求。

性能对比

设备推理耗时
CPU11.4712 s
NPU0.0667 s
加速比171.93×

运行截图

运行截图

精度评测

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

精度结论:基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0001%,小于 1% 的精度要求。

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理。运行以下命令可验证推理成功:

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

推理完成后会输出推理结果(包括分类结果、推理耗时等)。

模型标签

  • #+NPU
  • #+CV
  • #+图像分类
  • #+昇腾
  • #+NFNet
  • #+dm_nfnet
  • #+timm
下载使用量0