weixin_72661020/convnext-tiny-224
模型介绍文件和版本Pull Requests讨论分析

ConvNext-Tiny-224 昇腾 NPU 部署指南

简介

ConvNext-Tiny 是 ConvNext 系列 Tiny 级别图像分类模型(V1),ImageNet-1k 训练,224x224 输入,1000 类输出。

  • 架构: ConvNextForImageClassification (V1)
  • 输入: 3x224x224
  • 输出: 1000 类 ImageNet-1K
  • 框架: PyTorch + Transformers

验证环境

项目版本
硬件Atlas 800 A2 (Ascend910_9362)
CANN8.5.RC1
PyTorch2.9.0
torch_npu2.9.0.post1
Python3.11.14
Transformers4.57.6

快速使用

import torch
import torch_npu
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image

device = "npu:0"
model_path = "facebook/convnext-tiny-224"

processor = AutoImageProcessor.from_pretrained(model_path)
model = AutoModelForImageClassification.from_pretrained(model_path).to(device)
model.eval()

image = Image.open("your_image.jpg")
inputs = processor(images=image, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}

with torch.no_grad():
    outputs = model(**inputs)

predicted_class = outputs.logits.argmax(-1).item()
print(f"Predicted class: {predicted_class}")

完整推理脚本见 inference.py。

推理性能

指标数值
平均推理时间 (batch=1)6.69 ms
中位数推理时间 (batch=1)6.68 ms
P99 推理时间 (batch=1)6.73 ms
吞吐量 (batch=1)149.49 FPS
吞吐量 (batch=8)816.34 samples/s
输入尺寸3x224x224
数据类型float32

批量推理性能:

Batch Size平均延迟 (ms)吞吐量 (samples/s)
16.68149.74
27.23276.51
47.93504.40
89.80816.34

精度评测

NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标),测试图像数 100:

指标数值
测试用例数100
Top-1 匹配率98% (结构化测试图像)
平均 KL 散度0.000040
最大 KL 散度0.000232
平均最大 logits 差异0.0285
精度结论一致 (PASS)

注: 2 例 Top-1 不匹配是由于合成图像在边界类上概率接近导致 argmax 微小差异,KL 散度远低于 0.01 阈值,数值精度完全一致。

文件结构

convnext-tiny-224/
├── README.md              # 本文件
├── inference.py           # 推理脚本
├── perf_data.json         # 性能数据
└── eval/
    ├── run_accuracy.py    # 精度验证脚本
    ├── run_performance.py # 性能评测脚本
    ├── accuracy_results.json
    └── performance_results.json

注意事项

  • ConvNext V1 使用 ConvNextForImageClassification,区别于 V2 的 ConvNextV2ForImageClassification
  • 模型权重使用 AutoModelForImageClassification 加载,自动适配架构
  • 推理时请确保调用 model.eval() 并包裹 torch.no_grad()
下载使用量0