e
gcw_GSiqzzLf/mixer_b16_224_miil_in21k-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

mixer_b16_224.miil_in21k 昇腾 NPU 适配

1. 模型简介

  • 模型名称:mixer_b16_224.miil_in21k
  • 模型架构:MLP-Mixer架构(纯MLP)
  • 任务类型:图像分类
  • 模型参数量:67.7M
  • 数据集:在ImageNet-21K预训练
  • 原始地址:https://www.modelscope.cn/models/timm/mixer_b16_224.miil_in21k

2. 验证环境

组件版本
CANN8.5.1
torch2.9.0
torch_npu2.9.0.post1
timm1.0.27
Python3.11.14
NPUAscend 910B

3. 环境准备

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch_npu timm Pillow numpy safetensors modelscope

4. 模型下载

python -c "from modelscope import snapshot_download; snapshot_download('timm/mixer_b16_224.miil_in21k')"

5. 推理命令

# CPU推理
python inference.py --device cpu

# NPU推理
python inference.py --device npu

# CPU vs NPU精度对比
python compare_cpu_npu.py

6. 推理结果

设备推理耗时 (ms)Top-1 标签
CPU485.95Unknown
NPU4.93Unknown

加速比:98.61x

7. 精度测试结果

指标值
Logits 余弦相似度0.99999321
概率最大差异0.0232%
Top-1 匹配是
Top-5 重叠5/5

精度测试结论:NPU与CPU推理结果误差为0.02%,小于1%,精度通过。

8. 核心代码示例

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', 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)

9. 标签

#+NPU #+昇腾 #+图像分类 #+CV #+PyTorch #+timm #+MLPMixer

推理成功证据

以下日志展示了 NPU 推理成功的关键信息:

CPU Top-1: class 3963 (unknown)
NPU Top-1: class 3963 (unknown)
Top-1 Match: True
Top-5 Overlap: 5/5