本项目将 timm/maxvit_small_tf_224.in1k 图片分类模型适配到单卡昇腾 NPU(Ascend910),支持真实 NPU 推理、CPU-NPU 精度一致性验证以及性能基准测试。
timm.create_model(pretrained=False) + 本地权重加载| 项目 | 版本/信息 |
|---|---|
| NPU | Ascend910 |
| npu-smi | 25.5.2 |
| PyTorch NPU | Available |
| Device Name | Ascend910_9362 |
pip install -r requirements.txt
python inference.pyinference.py 会加载模型到 npu:0,对 assets/test.jpg 进行推理,并输出 Top-5 预测结果到 logs/inference.log。
python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.002170 |
| mean_abs_error | 0.000480 |
| relative_error | 0.1225% |
| cosine_similarity | 0.999999 |
| threshold | 1.0% |
| 结果 | PASS |
python benchmark.py| 指标 | 数值 |
|---|---|
| Avg latency | 23.42 ms |
| Min latency | 22.00 ms |
| Max latency | 24.32 ms |
| P50 latency | 23.29 ms |
| P90 latency | 24.26 ms |
| P95 latency | 24.29 ms |
| Throughput | 42.70 images/sec |
测试条件:warmup 2 次,正式运行 10 次,batch_size=1,输入 224x224。
本项目未在完整 ImageNet-1k 验证集上运行官方精度评测。eval_accuracy.py 提供的是单张测试图的 CPU-NPU 一致性 smoke check,用于验证 NPU 推理结果与 CPU 基线对齐。
自验证摘要见 screenshots/self_verification.txt 和 screenshots/self_verification.png。
logs/env_check.log — NPU 环境信息logs/inference.log — 推理结果与 Top-5 预测logs/accuracy.log — CPU-NPU 一致性对比logs/benchmark.log — 性能基准测试数据snapshot_download 下载,不会提交到本仓库。torch_npu 已正确安装。#NPU #Ascend #timm #maxvit #image-classification