g
gyccc/timm-convnext_small.in12k-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/convnext_small.in12k on Ascend NPU #NPU

1. 简介

将 timm/convnext_small.in12k 图片分类模型适配到华为昇腾 NPU (Ascend910) 单卡环境。该模型为 ConvNeXt-Small 架构,在 ImageNet-12K (11821 类) 上预训练。

  • 模型来源:ModelScope timm/convnext_small.in12k
  • 权重格式:safetensors (223.4 MB)
  • 输出类别数:11821
  • 适配方式:timm.create_model(pretrained=False) + ModelScope snapshot_download + 本地权重加载
  • 无 HuggingFace 直连下载,无 fallback

2. 验证环境

项目值
NPU 型号Ascend910
PyTorch2.x
torch_npu已安装
timm已安装
modelscope已安装
操作系统Linux (aarch64)

3. 推理运行

pip install -r requirements.txt
python inference.py

推理结果 (NPU Top-5):

  • Top-1: class_8753 (0.1262)
  • Top-2: class_8735 (0.1052)
  • Top-3: class_8640 (0.0955)
  • Top-4: class_8776 (0.0778)
  • Top-5: class_8667 (0.0718)

日志保存在 logs/inference.log。

4. 精度验证

python eval_accuracy.py

对单张测试图片进行 CPU 与 NPU 一致性验证:

指标数值
max_abs_error0.033449
mean_abs_error0.005554
relative_error0.7962%
cosine_similarity0.999974
threshold1.0%
结果PASS
  • CPU Top-1 与 NPU Top-1 类别一致
  • CPU Top-5 与 NPU Top-5 类别一致

5. 性能参考

指标值
输入尺寸[1, 3, 224, 224]
平均延迟12.89 ms
最小延迟12.87 ms
最大延迟12.93 ms
P5012.89 ms
P9012.93 ms
P9512.93 ms
吞吐量77.55 images/sec

测试条件:2 次预热 + 10 次正式测试,单卡 Ascend910,batch_size=1。

6. 精度评测

CPU-NPU 一致性验证(Smoke Check,非官方精度评测):

指标值
最大 logit 差异0.033449
平均 logit 差异0.005554
最大概率差异0.000607
Top-1 一致完全匹配 (class_8753)
Top-5 一致完全匹配

CPU-NPU 结果高度一致,差异来源于浮点精度(float32 vs float16 计算路径)。

7. 自验证截图

详见 screenshots/self_verification.png。

8. 日志文件

文件说明
logs/inference.log推理结果日志
logs/accuracy.log精度验证日志
logs/benchmark.log性能测试日志
logs/env_check.log环境检查日志

9. 注意事项

  • 本模型输出 11821 个类别(ImageNet-12K),无对应 id2label 映射文件,推理结果以 class_{index} 形式展示
  • 权重文件 (model.safetensors, pytorch_model.bin) 已通过 .gitignore 排除,不随代码提交
  • 精度验证为 smoke consistency check,非 ImageNet 官方评测

10. 标签

#NPU #Ascend910 #timm #ConvNeXt #image-classification #ModelScope