convnext small - fb in22k ft in1k 384 是 ConvNeXt 系列图像分类模型的一个变体,基于纯卷积架构设计,在 ImageNet 等大规模数据集上预训练。ConvNeXt 通过借鉴 Swin Transformer 的设计思路对标准 ResNet 进行现代化改造,实现了媲美 Transformer 的性能。
本模型已适配昇腾 Ascend 910 NPU,支持在 NPU 上进行推理。核心适配工作包括:
torch.npu 将模型加载到 NPU 设备。torch.npu.synchronize() 确保 NPU 同步执行。pip install torch torch-npu timm Pillow safetensors# CPU 推理
python3 inference.py --model convnext_small.fb_in22k_ft_in1k_384 --device cpu --image test.jpg
# NPU 推理
python3 inference.py --model convnext_small.fb_in22k_ft_in1k_384 --device npu --image test.jpg
Device: CPU
Inference time: 1.0101s
Top-5 predictions:
1. class= 549 prob=0.131825
2. class= 916 prob=0.047294
3. class= 419 prob=0.024197
4. class= 722 prob=0.023580
5. class= 782 prob=0.020311
Device: NPU
Inference time: 0.0141s
Top-5 predictions:
1. class= 549 prob=0.131568
2. class= 916 prob=0.047507
3. class= 722 prob=0.023849
4. class= 419 prob=0.023800
5. class= 409 prob=0.020200
| 指标 | 值 |
|---|---|
| MAE | 0.00561893 |
| MSE | 0.00005175" if results else "-" |
| 最大绝对误差 | 0.02629137 |
| 余弦相似度 | 0.99997318 |
| Top-100 平均相对误差 | 0.3581% |
| Top-1 分类一致 | 是 |
| Top-5 重叠数 | 4/5 |
结论:NPU 与 CPU 推理结果误差 < 1%,精度完全满足要求。
基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0027%,小于 1% 的精度要求。
| 设备 | 推理耗时 |
|---|---|
| CPU | 1.0051 s |
| NPU | 0.0140 s |
| 加速比 | 71.54× |
以下日志展示了 NPU 推理成功的关键信息:
Model moved to NPU (Ascend 910)
Input shape: torch.Size([1, 3, 384, 384])
Warming up...
Running inference...
=== Results ===
Device: NPU