xception71.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 | 883.73 ms | 1.13 |
| NPU | 9.56 ms | 104.60 |
NPU 相比于 CPU 加速比:92.46 倍
| 指标 | 值 |
|---|---|
| Logits MAE | 0.00125826 |
| Logits MaxAE | 0.00583148 |
| 概率 MAE | 0.00000144 |
| 概率 MaxAE | 0.00003962 |
| Cosine Similarity | 0.9999988079 |
| Top-1 类别一致 | 是 |
| Top-5 类别一致 | 是 |
NPU 与 CPU 推理结果误差 < 1%(最大概率误差:0.004%),满足精度要求。
| 设备 | 平均延迟 |
|---|---|
| CPU | 883.73 ms |
| NPU(Ascend910B) | 9.56 ms |
| 加速比 | 92.46× |
from modelscope.hub.snapshot_download import snapshot_download
model_path = snapshot_download('timm/xception71.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('xception71.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.9999988079 | 0.0001% |
结论: CPU 与 NPU 精度误差为 0.0001%,小于 1% 精度要求。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理。
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpuModel loaded successfully on NPU
Inference completed
Results saved