hgnet_tiny.paddle_in1k 是一个基于 HGNet 架构的图像分类模型,在 ImageNet 数据集上预训练。该模型适用于 ImageNet 1000 类分类任务。
本仓库实现了 hgnet_tiny.paddle_in1k 在华为昇腾 NPU (Ascend910) 上的推理适配。
适配内容:
torch>=2.0.0
torch_npu>=2.1.0
timm>=1.0.0
safetensors>=0.4.0
numpy>=1.24.0
pillow>=10.0.0pip install torch torch_npu timm safetensors numpy pillow
# 或使用清华镜像
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch_npu timm safetensors numpy pillow# 同时运行 CPU 和 NPU 推理
python3 inference.py --device both --runs 10
# 仅运行 NPU 推理
python3 inference.py --device npu --runs 10
# 仅运行 CPU 推理
python3 inference.py --device cpu --runs 10
# 精度对比
python3 compare_cpu_npu.py| 设备 | 平均推理耗时 (ms) | 标准差 (ms) |
|---|---|---|
| CPU | 198.2 | 0.83 |
| NPU (Ascend910) | 4.6 | 0.15 |
NPU 推理加速比:43.0x(相比 CPU)

| 排名 | CPU 预测 | CPU 概率 | NPU 预测 | NPU 概率 |
|---|---|---|---|---|
| 1 | class 539 | 0.054232 | class 539 | 0.054298 |
| 2 | class 741 | 0.014076 | class 741 | 0.014138 |
| 3 | class 305 | 0.012479 | class 305 | 0.012438 |
| 4 | class 911 | 0.008579 | class 911 | 0.008595 |
| 5 | class 45 | 0.007380 | class 45 | 0.007372 |
| 指标 | 数值 |
|---|---|
| Max Abs Diff (Logits) | 4.592419e-03 |
| Mean Abs Diff (Logits) | 6.784404e-04 |
| Normalized L2 Diff | 0.1139% |
| Cosine Similarity (Logits) | 0.999999 |
| Max Rel Diff (Probabilities) | 0.1220% |
| Top-1 分类一致性 | 一致 |
| Top-5 重叠率 | 100% |
NPU 与 CPU 推理结果误差为 0.12%,符合精度误差小于 1% 的要求。
精度测试通过:NPU 输出与 CPU 输出在概率分布上高度一致(余弦相似度 0.999999),Top-1 和 Top-5 分类结果完全一致。
以下日志展示了 NPU 推理成功的关键信息:
NPU: Ascend910_9362
Top-5 predictions:
[INFO] NPU: avg 4.6ms over 5 runs
Top-5 predictions:
Top-1 match: YES