本仓库是对 timm 框架中 seresnextaa101d_32x8d.sw_in12k_ft_in1k_288 模型在昇腾 NPU 上的适配版本。
模型来源:timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288
图像分类(Image Classification)
PyTorch + timm
[batch_size, 3, 288, 288][batch_size, num_classes],其中 num_classes = 1000(ImageNet)torch>=1.8.0
torch-npu
timm>=0.9.0
Pillow
numpy
modelscope
safetensors本模型通过 ModelScope 下载预训练权重,使用 PyTorch + timm 加载,通过 model.to('npu') 将模型迁移至昇腾 NPU 进行推理。无需修改模型结构。
pip install torch torch-npu timm Pillow numpy modelscope safetensors -i https://mirrors.aliyun.com/pypi/simple/python3 inference.py --device cpupython3 inference.py --device npu| 排名 | 类别 | 概率 |
|---|---|---|
| 1 | 21 | 0.077788 |
| 2 | 22 | 0.057570 |
| 3 | 23 | 0.048028 |
| 4 | 92 | 0.047246 |
| 5 | 127 | 0.031638 |
| 排名 | 类别 | 概率 |
|---|---|---|
| 1 | 21 | 0.071227 |
| 2 | 22 | 0.056111 |
| 3 | 92 | 0.048427 |
| 4 | 23 | 0.043663 |
| 5 | 127 | 0.028533 |
使用相同的测试图像分别在 CPU 和 NPU 上进行推理,对比输出 logits 的各项指标。
| 指标 | 值 |
|---|---|
| 参数量 | 93.59M |
| Logits MAE | 6.25448578e-02 |
| Logits Cosine Similarity | 0.99909153 |
| Probability MAE | 6.19789853e-05 |
| Top-1 Agreement | 100.00% |
| CPU 推理耗时 | 2.7583s |
| NPU 推理耗时 | 0.0166s |
| 加速比 | 166.23x |
NPU 与 CPU 推理结果误差 < 1%,精度满足要求。
#+NPU #+CV #+图像分类 #+timm #+昇腾
本仓库仅进行模型适配和推理验证,模型权重归原作者所有。
| 对比项 | CPU | NPU | 误差 |
|---|---|---|---|
| 余弦相似度 | 1.0 | 0.99952957 | 0.0331% |
| 最大绝对误差 | - | - | 0.003683 |
| 平均绝对误差 | - | - | 0.000253 |
| Top-1 一致 | - | - | 是 |
结论: CPU 与 NPU 精度误差为 0.0331%,小于 1% 精度要求,Top-1 分类结果完全一致。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理。
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpuModel loaded successfully on NPU
Input shape: (1, 3, 224, 224)
Inference completed
Results saved