本工程将 timm/convnext_xlarge.fb_in22k_ft_in1k 图片分类模型适配为可在单卡昇腾 NPU (Ascend910) 上运行的提交工程。
timm.create_model(pretrained=False) 创建结构并加载本地权重环境详情见 logs/env_check.log。
pip install -r requirements.txt
python inference.pyinference.py 使用 model_utils.py 加载模型,通过 timm.data.resolve_model_data_config 自动解析预处理配置,在 npu:0 上执行真实推理。Top-5 预测结果写入 logs/inference.log。
python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.014928 |
| mean_abs_error | 0.003129 |
| relative_error | 0.6983% |
| cosine_similarity | 0.999987 |
| threshold | 1.0% |
| 结果 | PASS |
python benchmark.py单卡 NPU batch_size=1 性能(预热 2 次 + 正式 10 次):
| 指标 | 数值 |
|---|---|
| Avg latency | 24.97 ms |
| Min latency | 24.93 ms |
| Max latency | 25.02 ms |
| P50 latency | 24.97 ms |
| P90 latency | 25.02 ms |
| P95 latency | 25.02 ms |
| Throughput | 40.05 images/sec |
结果写入 logs/benchmark.log。
注:本项目仅提供 smoke 一致性验证。若需官方 ImageNet-1k Top-1/Top-5 精度,请使用标准 eval 脚本在完整验证集上运行。
见 screenshots/self_verification.txt 和 screenshots/self_verification.png。
logs/env_check.log — NPU 环境信息logs/stage0.log — 模型可用性检查logs/inference.log — 推理结果logs/accuracy.log — CPU-NPU 精度一致性logs/benchmark.log — 性能基准测试snapshot_download 自动下载到本地缓存,首次运行需要联网。timm.create_model(..., pretrained=True) 触发 HuggingFace 直连下载。*.bin, *.safetensors, *.pth 等) 已加入 .gitignore,不提交到仓库。assets/test.jpg 为占位图,实际使用时应替换为真实图片。#NPU #Ascend #ImageClassification #ConvNeXt #timm