gcresnet50t.ra2_in1k 是一个基于 gcresnet50t 架构的图像分类模型,在 ImageNet-1K 数据集上预训练,支持 1000 类分类任务。
| 组件 | 版本 |
|---|---|
| CANN | 8.5.1 |
| torch | 2.9.0 |
| torch-npu | 2.9.0.post1 |
| timm | 1.0.27 |
| Python | 3.11.14 |
| NPU | Ascend 910B (64GB HBM) |
| OS | Linux 5.10.0 aarch64 |
pip install torch torch-npu timm numpy Pillowfrom modelscope.hub.snapshot_download import snapshot_download
snapshot_download('timm/gcresnet50t.ra2_in1k', cache_dir='./model')python inference.py --model_path ./model --device npupython inference.py --model_path ./model --device cpupython compare_cpu_npu.pypython inference.py --model_path ./model --device npu --benchmark --num_runs 20本模型基于 PyTorch 框架,使用 torch_npu 完成 Ascend NPU 适配:
torch_npu 替代 CUDA 后端.to(npu) 将参数迁移至 NPUtorch.npu.synchronize() 确保同步在 CPU 和 Ascend NPU 上使用相同随机输入分别推理,对比输出 logits 的差异。 共进行 5 组测试,每组使用不同随机种子。
| 测试 | CPU Top-1 | NPU Top-1 | Top-5 重叠 | MAE | 相对误差 | 余弦相似度 | 状态 |
|---|---|---|---|---|---|---|---|
| 1 | 4 | 4 | 5/5 | 2.5612e-04 | 0.0192% | 0.99999901 | ✅ |
| 2 | 4 | 4 | 5/5 | 3.4986e-04 | 0.0271% | 0.99999834 | ✅ |
| 3 | 701 | 701 | 5/5 | 3.5587e-04 | 0.0225% | 0.99999850 | ✅ |
| 4 | 701 | 701 | 5/5 | 3.8896e-04 | 0.0312% | 0.99999738 | ✅ |
| 5 | 111 | 111 | 5/5 | 2.7989e-04 | 0.0251% | 0.99999827 | ✅ |
| 指标 | 数值 |
|---|---|
| 测试数 | 5 |
| Top-1 匹配率 | 5/5 |
| 平均 MAE | 3.26e-04 |
| 平均相对误差 | 0.0250% |
| 平均余弦相似度 | 0.99999830 |
精度测试结论:NPU 与 CPU 推理结果误差为 0.0250%,符合精度误差小于 1% 的要求。
| 设备 | 平均推理时间 |
|---|---|
| CPU | 245.2ms |
| NPU (Ascend 910B) | 11.5ms |
NPU 推理速度相比 CPU 提升显著,加速比约为 21.3x。

图:模型在昇腾 NPU 上推理运行的终端输出
├── model/ # 模型权重文件
│ ├── config.json
│ ├── model.safetensors
│ └── pytorch_model.bin
├── inference.py # NPU/CPU 推理脚本
├── compare_cpu_npu.py # CPU vs NPU 精度对比脚本
├── common_utils.py # 工具函数
├── accuracy_report.json # 精度测试报告
├── requirements.txt # 依赖列表
└── README.md # 本文档torch.npu.empty_cache()#NPU #Ascend #CV #图像分类 #timm #gcresnet50t #昇腾
适配方: Ascend-SACT
标签: #NPU #Ascend #CV #image-classification