将 timm 的 EfficientNetV2-L (ImageNet-21k 预训练) 模型适配到单卡昇腾 NPU (Ascend910)。使用 ModelScope snapshot_download 下载权重,timm.create_model(pretrained=False) 创建结构并加载本地权重。
cd timm-tf_efficientnetv2_l.in21k-NPU
pip install -r requirements.txt
python inference.py推理日志 logs/inference.log 示例:
Model: timm/tf_efficientnetv2_l.in21k
Output shape: torch.Size([1, 21843])
Device: npu:0
Missing keys: 0, Unexpected keys: 0
Top-5 Predictions:
1. class_11871 (0.93%)
2. class_6255 (0.62%)
3. class_10987 (0.50%)
4. class_8310 (0.40%)
5. class_10323 (0.36%)对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.003940 |
| mean_abs_error | 0.000513 |
| relative_error | 0.0432% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
| 指标 | 数值 |
|---|---|
| 平均延迟 | 30.41 ms |
| 最小延迟 | 29.64 ms |
| 最大延迟 | 31.90 ms |
| P50 延迟 | 30.37 ms |
| P90 延迟 | 30.96 ms |
| P95 延迟 | 31.56 ms |
| 吞吐量 | 32.89 images/sec |
测试条件: batch=1, 输入 224x224, 预热 3 次 + 正式 20 次, 单卡 Ascend 910。
本项目包含单图 smoke consistency 验证,非官方 ImageNet 完整验证集评测。详细指标见第 4 节。
详见 screenshots/self_verification.png。
logs/inference.log — 推理日志logs/accuracy.log — 精度验证日志logs/benchmark.log — 性能基准日志#NPU #Ascend #Ascend910 #EfficientNetV2 #ImageNet21k #ImageClassification