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

timm/convnext_base.clip_laion2b_augreg_ft_in12k_in1k on Ascend NPU

1. 简介

本项目将 timm/convnext_base.clip_laion2b_augreg_ft_in12k_in1k 适配为可在单卡昇腾 NPU (Ascend910) 上运行的图片分类工程。

该模型基于 ConvNeXt-Base 架构,使用 CLIP/LAION-2B 预训练权重,经 AugReg 后在 ImageNet-12k 上微调、ImageNet-1k 上精调。标准 timm 分类头输出 1000 类 logits。

适配要点:

  • 使用 ModelScope snapshot_download 下载权重,不依赖 HuggingFace 直连
  • timm.create_model(pretrained=False) 创建模型结构并加载本地权重
  • 通过 timm.data.resolve_model_data_config 自动解析输入尺寸与预处理参数
  • 真实 NPU 推理、CPU-NPU 精度一致性检查、性能基准测试

2. 验证环境

项目版本/型号
NPUAscend910
CANN8.0+
PyTorch2.9.0+cpu
torch_npu适配 CANN 8.0
timmlatest

环境检查日志见 logs/env_check.log。

3. 推理运行

pip install -r requirements.txt
python inference.py

推理脚本会:

  1. 通过 model_utils.py 自动从 ModelScope 下载并加载本地权重
  2. 使用 timm.data.resolve_model_data_config 获取预处理配置
  3. 在 NPU 上执行前向推理
  4. 输出 Top-5 预测概率

4. 精度验证

python eval_accuracy.py

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

指标数值
max_abs_error0.018273
mean_abs_error0.004305
relative_error0.6138%
cosine_similarity0.999985
threshold1.0%
结果PASS
  • CPU Top-1 与 NPU Top-1 类别一致
  • CPU Top-5 与 NPU Top-5 类别一致

5. 性能参考

python benchmark.py

在单卡 Ascend910 上,batch=1,预热 2 次 + 正式 10 次取平均:

指标数值
Avg latency14.96 ms
Min latency14.89 ms
Max latency15.14 ms
P50 latency14.94 ms
P90 latency15.14 ms
P95 latency15.14 ms
Throughput66.85 images/sec

性能日志见 logs/benchmark.log。

6. 精度评测

本项目未在完整 ImageNet-1k 验证集上运行,仅提供单图 smoke consistency。如需完整精度评测,请准备 ImageNet-1k 验证集并批量推理。

7. 自验证截图

自验证摘要见 screenshots/self_verification.txt,可视化见 screenshots/self_verification.png。

8. 日志文件

文件说明
logs/env_check.logNPU 环境检查
logs/inference.log推理结果与 Top-5
logs/accuracy.logCPU-NPU 一致性对比
logs/benchmark.log性能基准测试
logs/stage0.log阶段 0 模型可用性验证
logs/paths.txtModelScope 下载路径记录

9. 注意事项

  1. 权重下载:首次运行会从 ModelScope 自动下载约 338MB 权重,后续复用本地缓存。
  2. 预处理尺寸:该模型输入尺寸为 256x256(由 timm.data.resolve_model_data_config 自动解析)。
  3. 不提交权重:.gitignore 已排除所有权重文件,仓库仅包含代码与日志。
  4. CLIP/LAION 来源:该模型源于 CLIP/LAION-2B 预训练,经 ImageNet-12k 中间微调后再在 ImageNet-1k 精调,分类头为标准 1000 类输出。

10. 标签

#NPU #Ascend #ModelScope #timm #convnext #image-classification