将 timm 预训练图片分类模型 mobilenetv3_large_100.miil_in21k_ft_in1k(MobileNetV3-Large,ImageNet-21k 预训练后微调至 ImageNet-1k,1000 类)适配至华为昇腾 NPU(Ascend910B),实现单卡推理。
timm/mobilenetv3_large_100.miil_in21k_ft_in1kpretrained=False + 本地权重加载[batch, 1000]| 项目 | 值 |
|---|---|
| NPU 型号 | Ascend910B |
| npu-smi 版本 | 25.5.2 |
| PyTorch | 2.x + torch_npu |
| Python | 3.11 |
| 关键依赖 | timm, modelscope, safetensors |
详见 logs/env_check.log。
pip install -r requirements.txt
python inference.py推理结果 (NPU Top-5):
日志保存在 logs/inference.log。
python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.016199 |
| mean_abs_error | 0.004038 |
| relative_error | 0.1519% |
| cosine_similarity | 0.999999 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 值 |
|---|---|
| 平均延迟 | 5.68 ms |
| 最小延迟 | 5.61 ms |
| 最大延迟 | 5.79 ms |
| P50 | 5.68 ms |
| P90 | 5.79 ms |
| P95 | 5.79 ms |
| 吞吐量 | 176.13 images/sec |
| 测试次数 | 10(预热 2 次) |
| 输入 shape | [1, 3, 224, 224] |
Smoke consistency check 结果见第 4 节。CPU 与 NPU 输出 Top-1/Top-5 完全一致,logit 和概率差异在浮点误差范围内。
详见 screenshots/self_verification.png。
| 文件 | 说明 |
|---|---|
logs/env_check.log | NPU 环境信息 |
logs/paths.txt | 模型路径记录 |
logs/inference.log | 推理输出 |
logs/accuracy.log | 精度验证 |
logs/benchmark.log | 性能测试 |
*.safetensors、*.bin 等权重文件已通过 .gitignore 排除,不提交至仓库#NPU