HGNetV2-B1模型,HGNet的改进版本。
该模型基于timm框架,在ImageNet-1K数据集上预训练,支持1000类图像分类任务。
本模型已适配昇腾(Ascend) NPU,可在昇腾910设备上高效运行。
适配要点:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch_npu timm Pillow numpy safetensorspython inference.py --device cpu --image test_image.jpgpython inference.py --device npu --image test_image.jpgpython compare_cpu_npu.pyimport 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 | 置信度 |
|---|---|---|
| 1 | 851 | 0.0000 |
| 2 | - | - |
| 3 | - | - |
| 4 | - | - |
| 5 | - | - |
具体结果以实际推理输出为准

| 指标 | 值 |
|---|---|
| MAE (Mean Absolute Error) | 0.00000000 |
| MaxAbsErr (Max Absolute Error) | 0.00000000 |
| Mean Relative Error | 0.4060% |
| Cosine Similarity | 1.00000000 |
| Top-1 Class Match | ✓ 一致 |
| Top-5 Overlap | 5/5 |
NPU与CPU推理结果误差为0.41%,符合精度误差小于1%的要求。
| 设备 | 推理耗时 |
|---|---|
| CPU | 0.0585s |
| NPU (Ascend910) | 0.1804s |
| 加速比 | 0.32x |
NPU推理相比CPU推理获得了0.32倍的加速效果。
以下日志展示了 NPU 推理成功的关键信息:
Top-1: class 851, probability: 0.000000
Top-1: class 851, probability: 0.000000
Top-1 Class Match: True
Top-5 Overlap: 5/5#+NPU #+CV #+昇腾 #+图像分类 #+timm #+HGNetV2