本项目将 timm/efficientnet_b5.sw_in12k_ft_in1k 模型适配到昇腾 NPU (Ascend910) 上进行单图推理验证。
该模型为 EfficientNet-B5,在 ImageNet-12k 上预训练并在 ImageNet-1k 上微调,输入分辨率为 448x448,输出 1000 类分类结果。
适配要点:
snapshot_download 下载权重,避免 HuggingFace 自动下载timm.create_model(..., pretrained=False) + 本地权重加载timm.data.resolve_model_data_config 自动解析预处理配置npu:0) 真实推理验证| 项目 | 版本 |
|---|---|
| NPU | Ascend910 |
| CANN | 8.5.1 |
| PyTorch | 2.x |
| torch_npu | 适配 CANN 8.5.1 |
| timm | latest |
| modelscope | latest |
环境检查日志:logs/env_check.log
pip install -r requirements.txt
python inference.py推理结果 (NPU Top-5):
日志保存在 logs/inference.log。
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.019810 |
| mean_abs_error | 0.011801 |
| relative_error | 0.3250% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| avg_latency_ms | 19.894 |
| min_latency_ms | 19.443 |
| max_latency_ms | 20.703 |
| p50_latency_ms | 19.790 |
| p90_latency_ms | 20.383 |
| p95_latency_ms | 20.543 |
| images_per_sec | 50.27 |
测试配置:单卡 Ascend910,batch_size=1,输入尺寸 448x448,预热 2 次,正式测试 10 次取平均。
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
见 screenshots/self_verification.png。
| 日志 | 路径 |
|---|---|
| 推理日志 | logs/inference.log |
| 精度验证 | logs/accuracy.log |
| 性能基准 | logs/benchmark.log |
| 环境检查 | logs/env_check.log |
timm.data.resolve_model_data_config 自动解析id2label 映射,推理结果以 class_{index} 形式展示#NPU #Ascend #Ascend910 #EfficientNet #ImageNet