| 组件 | 版本 |
|---|---|
| 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 |
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch_npu timm Pillow numpy safetensors modelscopepython -c "from modelscope import snapshot_download; snapshot_download('timm/mixer_b16_224.miil_in21k_ft_in1k')"# CPU推理
python inference.py --device cpu
# NPU推理
python inference.py --device npu
# CPU vs NPU精度对比
python compare_cpu_npu.py| 设备 | 推理耗时 (ms) | Top-1 标签 |
|---|---|---|
| CPU | 470.47 | Kite |
| NPU | 4.81 | Kite |
加速比:97.79x
| 指标 | 值 |
|---|---|
| Logits 余弦相似度 | 0.99999857 |
| 概率最大差异 | 0.0510% |
| Top-1 匹配 | 是 |
| Top-5 重叠 | 5/5 |
精度测试结论:NPU与CPU推理结果误差为0.05%,小于1%,精度通过。
import torch
import torch_npu
import timm
from PIL import Image
from timm.data import resolve_data_config, create_transform
# 加载模型到NPU
model = timm.create_model('mixer_b16_224.miil_in21k_ft_in1k', pretrained=True).to('npu:0')
model.eval()
# 预处理
transform = create_transform(**resolve_data_config({}, model=model))
img = transform(Image.open('test.jpg').convert('RGB')).unsqueeze(0).to('npu:0')
# 推理
with torch.no_grad():
torch.npu.synchronize()
output = model(img)
torch.npu.synchronize()
probs = torch.nn.functional.softmax(output.cpu()[0], dim=0)#+NPU #+昇腾 #+图像分类 #+CV #+PyTorch #+timm #+MLPMixer
以下日志展示了 NPU 推理成功的关键信息:
CPU Top-1: class 21 (kite)
NPU Top-1: class 21 (kite)
Top-1 Match: True
Top-5 Overlap: 5/5