本工程将 timm/convformer_s18.sail_in22k 图片分类模型适配到单卡昇腾 NPU(Ascend910)。
| 组件 | 版本/型号 |
|---|---|
| NPU | Ascend910 |
| npu-smi | 25.5.2 |
| PyTorch | with torch_npu support |
| timm | latest |
环境检查日志:logs/env_check.log
pip install -r requirements.txt
python inference.py推理脚本使用 ModelScope 下载权重,通过 model_utils.py 统一加载模型并迁移到 npu:0 执行真实推理。
推理日志:logs/inference.log
Model: timm/convformer_s18.sail_in22k
Model dir: /opt/atomgit/.cache/modelscope/hub/models/timm/convformer_s18___sail_in22k
Weights: /opt/atomgit/.cache/modelscope/hub/models/timm/convformer_s18___sail_in22k/model.safetensors
Missing keys: 0
Unexpected keys: 0
Input shape: [1, 3, 224, 224]
Output shape: [1, 21841]
Top-5 predictions:
1. class_8469: 0.000608
2. class_5905: 0.000588
3. class_11384: 0.000541
4. class_9150: 0.000479
5. class_10619: 0.000476python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.000631 |
| mean_abs_error | 0.000120 |
| relative_error | 0.0064% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
python benchmark.py| 指标 | 数值 |
|---|---|
| 平均 latency | 12.617 ms |
| P50 latency | 12.628 ms |
| P90 latency | 12.679 ms |
| 吞吐量 | 79.26 images/sec |
性能日志:logs/benchmark.log
由于本模型权重为 sail_in22k(22k 预训练),未提供标准 ImageNet-1k 标签映射,因此未进行官方 Top-1/Top-5 精度评测。工程已通过 CPU-NPU 一致性验证,确认推理结果正确。
见 screenshots/self_verification.png 与 screenshots/self_verification.txt。
| 日志 | 内容 |
|---|---|
logs/env_check.log | NPU 环境信息 |
logs/inference.log | NPU 推理输出与 Top-5 |
logs/accuracy.log | CPU-NPU 一致性对比 |
logs/benchmark.log | 延迟与吞吐量基准 |
logs/paths.txt | 模型与权重本地路径 |
timm.create_model(..., pretrained=True) 触发 HuggingFace 直连下载。#NPU