xception65.tf_in1k 是 Xception(Extreme Inception)架构的图像分类模型。该模型在 TensorFlow 中训练于 ImageNet-1k 数据集,并由 Ross Wightman 移植到 PyTorch(timm 库)。
模型详细信息:
图像分类(Image Classification)
torch>=2.0.0
torchvision>=0.15.0
timm>=1.0.0
Pillow>=10.0.0
safetensors>=0.4.0
modelscope>=1.35.0本模型已在华为昇腾 NPU(Ascend910B)上完成适配和验证。适配要点:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torchvision timm Pillow safetensors modelscopepython3 inference.pypython3 inference.py脚本会自动检测并使用 NPU 设备(若可用)。
python3 compare_cpu_npu.py| 设备 | 平均延迟(10 次) | 每秒处理数(FPS) |
|---|---|---|
| CPU | 690.07 ms | 1.45 |
| NPU | 8.68 ms | 115.21 |
NPU 相比于 CPU 加速比:79.50 倍
| 指标 | 值 |
|---|---|
| Logits MAE | 0.00209508 |
| Logits MaxAE | 0.01159286 |
| 概率 MAE | 0.00000294 |
| 概率 MaxAE | 0.00014716 |
| Cosine Similarity | 0.9999972582 |
| Top-1 类别一致 | 是 |
| Top-5 类别一致 | 是 |
NPU 与 CPU 推理结果误差 < 1%(最大概率误差:0.015%),满足精度要求。
| 设备 | 平均延迟 |
|---|---|
| CPU | 690.07 ms |
| NPU(Ascend910B) | 8.68 ms |
| 加速比 | 79.50× |
from modelscope.hub.snapshot_download import snapshot_download
model_path = snapshot_download('timm/xception65.tf_in1k')import os
import torch
import timm
from safetensors.torch import load_file
ckpt = os.path.join(model_path, "model.safetensors")
state_dict = load_file(ckpt)
model = timm.create_model('xception65.tf_in1k', pretrained=False)
model.load_state_dict(state_dict, strict=True)
model = model.eval().to("npu:0")from PIL import Image
from timm.data import resolve_model_data_config, create_transform
img = Image.new("RGB", (299, 299), color=(128, 128, 128))
config = resolve_model_data_config(model)
transform = create_transform(**config, is_training=False)
input_tensor = transform(img).unsqueeze(0).to("npu:0")
with torch.no_grad():
output = model(input_tensor)
probs = torch.softmax(output, dim=1)| 对比项 | CPU | NPU | 误差 |
|---|---|---|---|
| 余弦相似度 | 1.0 | 0.9999972582 | 0.0003% |
结论: CPU 与 NPU 精度误差为 0.0003%,小于 1% 精度要求。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理。
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpuModel loaded successfully on NPU
Inference completed
Results saved