本项目将 ModelScope 模型 timm/tf_efficientnet_b1.in1k 适配到华为昇腾 NPU(Ascend910)运行。模型通过 timm.create_model(pretrained=False) 创建结构,并使用 ModelScope snapshot_download 下载的本地权重进行加载,避免 HuggingFace 直连下载。
pip install -r requirements.txt
python inference.py推理结果 (NPU Top-5):
日志保存在 logs/inference.log。
python eval_accuracy.py对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.003880 |
| mean_abs_error | 0.000628 |
| relative_error | 0.1033% |
| cosine_similarity | 1.000000 |
| threshold | 1.0% |
| 结果 | PASS |
运行 python benchmark.py(warmup=2, runs=10):
| 指标 | 数值 |
|---|---|
| avg latency | 9.777 ms |
| min latency | 9.642 ms |
| max latency | 9.900 ms |
| p50 latency | 9.816 ms |
| p90 latency | 9.900 ms |
| throughput | 102.28 images/sec |
本项目未在完整 ImageNet 验证集上运行官方精度评测。eval_accuracy.py 提供的 CPU-NPU smoke 一致性检查表明:在相同输入下,NPU 推理结果与 CPU 结果高度一致,Top-1 与 Top-5 完全一致。
见 screenshots/self_verification.png 与 screenshots/self_verification.txt。
| 日志 | 说明 |
|---|---|
logs/env_check.log | NPU 环境信息 |
logs/inference.log | NPU 推理结果 |
logs/accuracy.log | CPU-NPU 一致性对比 |
logs/benchmark.log | 性能基准测试结果 |
logs/paths.txt | ModelScope 下载路径记录 |
.bin, .safetensors, .pth, .pt, .ckpt, .onnx)不提交到 Git 仓库,由 .gitignore 排除。timm.create_model(..., pretrained=True),以避免 HuggingFace 自动下载。#NPU