模型名称: microsoft/resnet-34
架构: ResNetForImageClassification
参数量: 21.8M
预训练数据集: ImageNet-1k
输入尺寸: 224 x 224
类别数: 1000
ResNet(Residual Network)由 Microsoft Research 提出,是计算机视觉领域最具影响力的深度学习架构之一。ResNet-34 包含 34 个卷积层,相比 ResNet-18 增加了网络深度,从而具备更强的特征表达能力。通过残差连接(Residual Connection)机制,模型在加深网络的同时保持了梯度的有效传播。该模型在 ImageNet-1k 数据集上预训练,适用于 1000 类图像分类任务。本仓库基于昇腾 Ascend 910B4 NPU 完成模型推理部署与精度验证。
| 组件 | 规格 |
|---|---|
| NPU 加速卡 | Ascend 910B4 |
| 算力单元 | 昇腾 AI 处理器 |
| 软件 | 版本 |
|---|---|
| CANN | 8.5.1 |
| Python | 3.11.14 |
| PyTorch | 2.9.0 |
| torch_npu | 2.9.0.post1 |
| transformers | - |
| Pillow | - |
| NumPy | - |
# 从 HuggingFace 下载模型权重和配置
git lfs install
git clone https://huggingface.co/microsoft/resnet-34 ./modelpip install torch torch_npu transformers pillow requests numpy使用预置的推理脚本,支持从图片文件或 URL 进行推理:
# 使用本地图片
python inference.py --model_path ./model --image /path/to/image.jpg
# 使用网络图片 URL
python inference.py --model_path ./model --image https://example.com/image.jpg
# 显示 Top-10 预测结果
python inference.py --model_path ./model --image /path/to/image.jpg --top_k 10python accuracy_eval.py ./model accuracy_report.jsonpython perf_benchmark.py ./model 100 perf_report.json使用 50 张合成测试图片(224x224,随机像素),对比 NPU(Ascend 910B4)与 CPU(x86)的输出差异。
| 指标 | 结果 |
|---|---|
| 测试样本数 | 50 |
| Top-1 预测匹配率 | 100% (50/50) |
| 平均最大相对误差 (AvgMaxRelErr) | 0.065% |
| 最大相对误差 (MaxRelErr) | 0.095% |
| 平均概率余弦相似度 (AvgCosineSim) | 1.000000 |
| 总体状态 | PASS |
| 样本 | Top-1 匹配 | CPU Top-1 | NPU Top-1 | 最大相对误差 | 余弦相似度 |
|---|---|---|---|---|---|
| 0 | PASS | 885 | 885 | 0.044% | 1.000000 |
| 1 | PASS | 885 | 885 | 0.059% | 1.000000 |
| 2 | PASS | 111 | 111 | 0.068% | 1.000000 |
| 3 | PASS | 885 | 885 | 0.059% | 1.000000 |
| 4 | PASS | 885 | 885 | 0.056% | 1.000000 |
| 5 | PASS | 885 | 885 | 0.061% | 1.000000 |
| 6 | PASS | 885 | 885 | 0.047% | 1.000000 |
| 7 | PASS | 885 | 885 | 0.076% | 1.000000 |
| 8 | PASS | 885 | 885 | 0.049% | 1.000000 |
| 9 | PASS | 885 | 885 | 0.060% | 1.000000 |
| 10 | PASS | 885 | 885 | 0.053% | 1.000000 |
| 11 | PASS | 885 | 885 | 0.051% | 1.000000 |
| 12 | PASS | 885 | 885 | 0.065% | 1.000000 |
| 13 | PASS | 885 | 885 | 0.053% | 1.000000 |
| 14 | PASS | 111 | 111 | 0.077% | 1.000000 |
| 15 | PASS | 885 | 885 | 0.061% | 1.000000 |
| 16 | PASS | 885 | 885 | 0.064% | 1.000000 |
| 17 | PASS | 885 | 885 | 0.047% | 1.000000 |
| 18 | PASS | 885 | 885 | 0.065% | 1.000000 |
| 19 | PASS | 111 | 111 | 0.049% | 1.000000 |
| 20 | PASS | 885 | 885 | 0.058% | 1.000000 |
| 21 | PASS | 111 | 111 | 0.073% | 1.000000 |
| 22 | PASS | 885 | 885 | 0.053% | 1.000000 |
| 23 | PASS | 885 | 885 | 0.062% | 1.000000 |
| 24 | PASS | 885 | 885 | 0.074% | 1.000000 |
| 25 | PASS | 885 | 885 | 0.060% | 1.000000 |
| 26 | PASS | 885 | 885 | 0.064% | 1.000000 |
| 27 | PASS | 111 | 111 | 0.052% | 1.000000 |
| 28 | PASS | 885 | 885 | 0.073% | 1.000000 |
| 29 | PASS | 885 | 885 | 0.065% | 1.000000 |
| 30 | PASS | 111 | 111 | 0.054% | 1.000000 |
| 31 | PASS | 885 | 885 | 0.081% | 1.000000 |
| 32 | PASS | 885 | 885 | 0.071% | 1.000000 |
| 33 | PASS | 111 | 111 | 0.087% | 1.000000 |
| 34 | PASS | 885 | 885 | 0.057% | 1.000000 |
| 35 | PASS | 885 | 885 | 0.065% | 1.000000 |
| 36 | PASS | 885 | 885 | 0.095% | 1.000000 |
| 37 | PASS | 111 | 111 | 0.077% | 1.000000 |
| 38 | PASS | 885 | 885 | 0.054% | 1.000000 |
| 39 | PASS | 885 | 885 | 0.069% | 1.000000 |
| 40 | PASS | 111 | 111 | 0.089% | 1.000000 |
| 41 | PASS | 885 | 885 | 0.085% | 1.000000 |
| 42 | PASS | 885 | 885 | 0.076% | 1.000000 |
| 43 | PASS | 111 | 111 | 0.069% | 1.000000 |
| 44 | PASS | 885 | 885 | 0.077% | 1.000000 |
| 45 | PASS | 111 | 111 | 0.070% | 1.000000 |
| 46 | PASS | 885 | 885 | 0.067% | 1.000000 |
| 47 | PASS | 885 | 885 | 0.071% | 1.000000 |
| 48 | PASS | 111 | 111 | 0.082% | 1.000000 |
| 49 | PASS | 885 | 885 | 0.059% | 1.000000 |
说明: Top-1 类别 ID 包含 111(对应于 "nematode" 线虫类)和 885(对应于 "teddy" 泰迪熊类),由随机输入的自然分布决定。所有样本的最大相对误差最大仅为 0.095%(显著低于 1% 阈值),且余弦相似度均非常接近 1.0,证明 NPU 推理结果与 CPU 基准具有极高的数值一致性,精度无损。
使用 batch size = 1、输入尺寸 224x224 的随机图片,在 Ascend 910B4 NPU 上进行 100 次推理迭代(含 10 轮 warmup)的性能测试。
| 指标 | 结果 |
|---|---|
| 测试设备 | Ascend 910B4 NPU |
| Batch Size | 1 |
| 推理次数 | 100 |
| 平均延迟 | 8.28 ms |
| 最小延迟 | 8.08 ms |
| 最大延迟 | 8.99 ms |
| P50 延迟 | 8.27 ms |
| P90 延迟 | 8.38 ms |
| 吞吐量 | 120.73 img/s |
延迟分布(单位:ms):
8.08 █ (最小)
8.10 █
8.13 ███
8.14 █
8.15 ████
8.17 █
8.19 █
8.20 █
8.21 █████
8.22 ███
8.23 █████
8.24 ██████
8.25 ██████
8.26 ███████
8.27 ████████ (P50)
8.28 ██████ (平均)
8.29 █████
8.30 █████
8.31 ██
8.32 █
8.33 █
8.34 ███
8.35 █████
8.36 ███
8.37 █
8.38 ███ (P90)
8.39 █
8.40 █
8.43 █
8.44 █
8.45 █
8.48 █
8.57 █
8.99 █ (最大)| 统计量 | 数值 (ms) |
|---|---|
| 平均值 | 8.28 |
| 标准差 | ~0.11 |
| 最小值 | 8.08 |
| P25 | 8.22 |
| P50 (中位数) | 8.27 |
| P75 | 8.35 |
| P90 | 8.38 |
| P95 | 8.44 |
| P99 | 8.57 |
| 最大值 | 8.99 |
├── readme.md # 本文件 - 模型说明文档
├── model/ # 模型权重目录(从 HuggingFace 下载)
├── inference.py # 推理脚本 - 支持单张图片推理
├── accuracy_eval.py # 精度验证脚本 - NPU vs CPU 对比
├── accuracy_report.json # 精度验证结果报告
├── perf_benchmark.py # 性能基准测试脚本
├── perf_report.json # 性能测试结果报告
└── fusion_result.json # 算子融合结果报告./model 目录。torch.npu.is_available() 验证 NPU 可用性。#NPU #Ascend #ResNet #ImageClassification #ResNet34 #昇腾 #华为 #模型推理 #边缘计算
基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0%,小于 1% 的精度要求。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。