本工程将 ModelScope 模型 timm/mobilenetv4_conv_small.e2400_r224_in1k 适配为可在单卡昇腾 NPU(Ascend910)上运行的图片分类推理工程。模型通过 ModelScope snapshot_download 下载,使用 timm.create_model(..., pretrained=False) 创建结构并加载本地权重,不依赖 HuggingFace 自动下载,不 fallback。
python inference.py模型会加载本地权重到 npu:0,对 assets/test.jpg 进行推理并输出 Top-5 分类结果。推理日志写入 logs/inference.log。
python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.018332 |
| mean_abs_error | 0.009473 |
| relative_error | 0.0487% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
python benchmark.py预热 2 次后测量 10 次迭代,统计 latency 与吞吐量。日志写入 logs/benchmark.log。
参考结果(单卡 batch=1):
本项目仅提供 Smoke Consistency 验证(CPU vs NPU 输出一致性),未在完整 ImageNet 验证集上跑官方 Top-1/Top-5 精度。如需完整精度评测,请自行准备 ImageNet 数据集并扩展 eval 脚本。
screenshots/self_verification.txt: 验证摘要文本screenshots/self_verification.png: 验证摘要图片logs/env_check.log: 环境检查结果logs/inference.log: 推理输出logs/accuracy.log: 精度一致性对比logs/benchmark.log: 性能基准logs/paths.txt: 模型下载路径记录source CANN 环境变量(如 /usr/local/Ascend/cann-8.5.1/set_env.sh)。#NPU