gernet_s.idstcv_in1k 是一个基于 gernet_s 架构的图像分类模型,在 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/gernet_s.idstcv_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 | 21 | 21 | 5/5 | 1.5772e-03 | 0.0208% | 0.99999845 | ✅ |
| 2 | 21 | 21 | 5/5 | 1.0019e-03 | 0.0125% | 0.99999930 | ✅ |
| 3 | 21 | 21 | 5/5 | 1.1027e-03 | 0.0134% | 0.99999920 | ✅ |
| 4 | 21 | 21 | 5/5 | 1.2393e-03 | 0.0157% | 0.99999908 | ✅ |
| 5 | 21 | 21 | 5/5 | 1.2586e-03 | 0.0161% | 0.99999881 | ✅ |
| 指标 | 数值 |
|---|---|
| 测试数 | 5 |
| Top-1 匹配率 | 5/5 |
| 平均 MAE | 1.24e-03 |
| 平均相对误差 | 0.0157% |
| 平均余弦相似度 | 0.99999897 |
精度测试结论:NPU 与 CPU 推理结果误差为 0.0157%,符合精度误差小于 1% 的要求。
| 设备 | 平均推理时间 |
|---|---|
| CPU | 57.1ms |
| NPU (Ascend 910B) | 5.6ms |
NPU 推理速度相比 CPU 提升显著,加速比约为 10.2x。

图:模型在昇腾 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 #gernet_s #昇腾
适配方: Ascend-SACT
标签: #NPU #Ascend #CV #image-classification
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。