g
gcw_C8PI9e90/convnext-small-in12k-ft-in1k-384-npu
模型介绍文件和版本Pull Requests讨论分析

ConvNeXt NPU 部署与推理

模型介绍

convnext small - in12k ft in1k 384 是 ConvNeXt 系列图像分类模型的一个变体,基于纯卷积架构设计,在 ImageNet 等大规模数据集上预训练。ConvNeXt 通过借鉴 Swin Transformer 的设计思路对标准 ResNet 进行现代化改造,实现了媲美 Transformer 的性能。

  • 原始模型地址: https://www.modelscope.cn/models/timm/convnext_small.in12k_ft_in1k_384
  • 任务类型: 图像分类
  • 模型框架: PyTorch + timm
  • 输入格式: RGB 图像(384×384)
  • 输出格式: 类别概率分布(1000 (finetuned from ImageNet-22K) 类)
  • 参数量: ~50M
  • 输入数据: 单张图像,3 通道 RGB,分辨率 384×384

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 convnext_small.in12k_ft_in1k_384 --device cpu --image test.jpg

# NPU 推理
python3 inference.py --model convnext_small.in12k_ft_in1k_384 --device npu --image test.jpg

推理结果

CPU 推理结果


Device: CPU
Inference time: 1.0149s
Top-5 predictions:
  1. class=  549  prob=0.570469
  2. class=  916  prob=0.033927
  3. class=  610  prob=0.024131
  4. class=  692  prob=0.018991
  5. class=  419  prob=0.010508

NPU 推理结果


Device: NPU
Inference time: 0.0142s
Top-5 predictions:
  1. class=  549  prob=0.580604
  2. class=  916  prob=0.034111
  3. class=  610  prob=0.023641
  4. class=  692  prob=0.018736
  5. class=  419  prob=0.010019

CPU/NPU 精度对比

精度测试方法

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

精度测试结果

指标值
MAE0.00722298
MSE0.00008692" if results else "-"
最大绝对误差0.05048609
余弦相似度0.99996626
Top-100 平均相对误差0.5685%
Top-1 分类一致是
Top-5 重叠数5/5

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

精度结论

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

性能对比

设备推理耗时
CPU1.0091 s
NPU0.0141 s
加速比71.60×

推理成功证据

以下日志展示了 NPU 推理成功的关键信息:

Model moved to NPU (Ascend 910)
Input shape: torch.Size([1, 3, 384, 384])
Warming up...
Running inference...
=== Results ===
Device: NPU

模型标签

  • #+NPU
  • #+CV
  • #+图像分类
  • #+昇腾
  • #+ConvNeXt
  • #+timm

运行截图

运行截图

下载使用量0