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

hgnetv2_b1.ssld_stage1_in22k_in1k-npu

模型介绍

HGNetV2-B1模型,HGNet的改进版本。

该模型基于timm框架,在ImageNet-1K数据集上预训练,支持1000类图像分类任务。

  • 原始模型地址: https://www.modelscope.cn/models/timm/hgnetv2_b1.ssld_stage1_in22k_in1k
  • 任务类型: 图像分类 (Image Classification)
  • 模型框架: PyTorch + timm
  • 输入格式: RGB图像 (3×256×256)
  • 输出格式: 1000类分类logits

昇腾NPU适配说明

本模型已适配昇腾(Ascend) NPU,可在昇腾910设备上高效运行。

适配要点:

  • 使用PyTorch + torch_npu框架
  • 模型权重从原始PyTorch checkpoint加载
  • CPU和NPU推理结果精度对比验证通过
  • 支持单张图片推理和批量处理

环境准备

系统要求

  • Python 3.11+
  • Ascend NPU驱动和固件(CANN 8.5+)
  • PyTorch 2.0+ + torch_npu 2.1+

安装依赖

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

推理命令

CPU推理

python inference.py --device cpu --image test_image.jpg

NPU推理

python inference.py --device npu --image test_image.jpg

CPU vs NPU精度对比

python compare_cpu_npu.py

部署和推理方法

核心代码

import torch
import torch_npu
from timm import create_model, data
from PIL import Image

# 加载模型
model = create_model("hgnetv2_b1", pretrained=False, num_classes=1000)
state_dict = torch.load("model.safetensors", map_location="cpu", weights_only=True)
model.load_state_dict(state_dict, strict=True)
model.eval().to("npu:0")  # 或 "cpu"

# 图像预处理
cfg = data.resolve_data_config({}, model=create_model("hgnetv2_b1", pretrained=False))
transform = data.create_transform(
    input_size=256, is_training=False,
    mean=cfg.get("mean", (0.485, 0.456, 0.406)),
    std=cfg.get("std", (0.229, 0.224, 0.225)),
    interpolation="bicubic",
)
img = Image.open("test_image.jpg").convert("RGB")
input_tensor = transform(img).unsqueeze(0).to("npu:0")

# 推理
with torch.no_grad():
    output = model(input_tensor)
probs = torch.nn.functional.softmax(output[0], dim=0)
top5 = torch.topk(probs, k=5)

推理结果

使用测试图片进行推理,Top-5分类结果如下:

排名类别ID置信度
19710.0000
2--
3--
4--
5--

具体结果以实际推理输出为准

推理终端截图

CPU/NPU精度测试

测试方法

  1. 在CPU上运行推理,记录logits输出
  2. 在NPU上运行推理,记录logits输出
  3. 对比两组输出的差异,计算MAE、MaxAbsErr、RelErr、Cosine Similarity等指标
  4. 对比Top-1和Top-5分类结果的一致性

精度测试结果

指标值
MAE (Mean Absolute Error)0.00000000
MaxAbsErr (Max Absolute Error)0.00000000
Mean Relative Error0.2579%
Cosine Similarity1.00000000
Top-1 Class Match✓ 一致
Top-5 Overlap5/5

精度测试结论

NPU与CPU推理结果误差为0.26%,符合精度误差小于1%的要求。

性能测试

设备推理耗时
CPU0.0517s
NPU (Ascend910)0.0065s
加速比7.91x

NPU推理相比CPU推理获得了7.91倍的加速效果。

推理成功证据

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

Top-1: class 971, probability: 0.000000
Top-1: class 971, probability: 0.000000
Top-1 Class Match: True
Top-5 Overlap: 5/5

模型标签

#+NPU #+CV #+昇腾 #+图像分类 #+timm #+HGNetV2