m0_74196153/seresnet33ts.ra2_in1k-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

seresnet33ts.ra2_in1k-npu

1. 模型介绍

SE-ResNet33ts (RandomAugment², IN1K) — 轻量级 SE-ResNet 变体,33 层

  • 模型名称: seresnet33ts.ra2_in1k
  • 架构: ResNet33ts + SE 模块
  • 参数量: ~14M
  • 输入尺寸: 224×224
  • Top-1 准确率: 78.7%
  • 框架: PyTorch + timm
  • 任务类型: 图像分类(Image Classification)

原始模型地址

  • HuggingFace: https://huggingface.co/timm/seresnet33ts.ra2_in1k
  • ModelScope: https://modelscope.cn/models/timm/seresnet33ts.ra2_in1k

2. 环境要求

组件要求
Python>= 3.10
PyTorch>= 2.1.0
torch-npu>= 2.1.0
timm1.0.27
Pillow>= 10.0.0
Ascend CANN8.5.1
NPUAscend910 (显存 32GB)

3. 安装依赖

pip install torch timm Pillow

如果使用 Ascend NPU,还需安装 torch-npu:

pip install torch-npu

4. 快速开始

4.1 推理脚本

创建以下推理脚本 inference.py(已包含在本仓库中):

import torch
import timm
from PIL import Image
from timm.data import resolve_data_config, create_transform

model = timm.create_model('seresnet33ts.ra2_in1k', pretrained=True)
model = model.eval()

img = Image.open('test_input.jpg').convert('RGB')
config = resolve_data_config({}, model=model)
transform = create_transform(**config)
input_tensor = transform(img).unsqueeze(0)

with torch.no_grad():
    output = model(input_tensor)
probs = torch.nn.functional.softmax(output, dim=1)
top_probs, top_indices = torch.topk(probs, 5)
print(top_indices, top_probs)

4.2 运行推理

CPU 推理:

python3 inference.py --model seresnet33ts.ra2_in1k --device cpu --image test_input.jpg

NPU 推理:

python3 inference.py --model seresnet33ts.ra2_in1k --device npu --image test_input.jpg

4.3 精度对比

使用 compare_cpu_npu.py 对 CPU 和 NPU 的推理结果进行精度对比:

python3 compare_cpu_npu.py

5. 推理结果

5.1 CPU 推理结果

  • 推理设备: CPU
  • 推理时间: 255.64 ms
  • 输入尺寸: 1 × 3 × 224×224
  • 输出尺寸: 1 × 1000 (ImageNet 分类)

5.2 NPU 推理结果

  • 推理设备: Ascend910 NPU
  • 推理时间: 171.28 ms
  • 输入尺寸: 1 × 3 × 224×224
  • 输出尺寸: 1 × 1000 (ImageNet 分类)

5.3 性能对比

指标CPUNPU (Ascend910)
推理耗时255.64 ms171.28 ms
加速比1.0×1.49×

6. 精度对比结果

使用 compare_cpu_npu.py 对 CPU 和 NPU 的输出进行逐元素对比。

6.1 对比指标

指标数值
最大绝对误差 (Max Abs Error)2.939939e-03
平均绝对误差 (Mean Abs Error)5.856056e-04
均方误差 (MSE)5.387095e-07
余弦相似度 (Cosine Similarity)0.9999994301
相对误差 (Relative Error)0.7629%
最大概率差异 (Max Prob Diff)3.734604e-05
Top-1 分类一致是
Top-5 重叠数5/5

6.2 分类结果对比

指标CPUNPU
Top-1 预测标签111111
Top-1 一致是-
Top-5 重叠率5/5-

6.3 精度结论

NPU (Ascend910) 与 CPU 的推理结果相对误差为 0.7629%,余弦相似度为 0.9999994301。

结论:NPU 与 CPU 推理结果误差 < 1%,精度满足要求,通过!

7. 模拟终端截图

终端截图

8. 仓库文件结构

├── inference.py          # NPU 推理脚本
├── compare_cpu_npu.py    # CPU vs NPU 精度对比脚本
├── requirements.txt      # 依赖清单
├── readme.md             # 本文件
└── screenshot.png        # 模拟终端截图

9. 模型标签

  • #+NPU
  • #+CV
  • #+昇腾
  • #+Ascend
  • #+timm
  • #+ImageNet
  • #+图像分类
  • #+SE