weixin_72661020/cv_resnet50_live-category
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

cv_resnet50_live-category

1. 简介

本文档记录 iic/cv_resnet50_live-category(ResNet-50 直播分类模型)在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

ResNet-50 直播场景图像分类模型,基于 PyTorch torchvision 框架。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/iic/cv_resnet50_live-category

2. 验证环境

组件版本
torch2.5.1
torch_npu2.5.1
torchvision>=0.20.0
CANN8.5.RC1
  • NPU:Ascend910(单卡)
  • 输入尺寸:224x224
  • 推理框架:PyTorch + torchvision

3. 快速部署

3.1 环境准备

pip install torch torchvision pillow

3.2 推理代码

import torch
import torchvision.models as models
from PIL import Image
from torchvision import transforms

device = torch.device("npu:0" if torch.npu.is_available() else "cpu")

ckpt = torch.load("pytorch_model.pt", map_location="cpu")
num_classes = ckpt['fc.weight'].shape[0] if 'fc.weight' in ckpt else 1000
model = models.resnet50(weights=None, num_classes=num_classes)
model.load_state_dict(ckpt, strict=False)
model = model.to(device).eval()

transform = transforms.Compose([
    transforms.Resize(256), transforms.CenterCrop(224),
    transforms.ToTensor(), transforms.Normalize(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]),
])
img = Image.new("RGB", (224, 224), (128, 128, 128))
input_tensor = transform(img).unsqueeze(0).to(device)

with torch.no_grad():
    output = model(input_tensor)
pred = output.argmax(-1).item()
print(f"Predicted class: {pred}")

4. Smoke 验证

python3 inference.py

5. 性能参考

指标数值
平均推理时间4.81ms
测试次数50

6. 精度评测

指标数值
Top-1 一致性4/4
Top-5 一致性4/4
最大 logits 相对误差0.09%
平均 KL 散度0.000003
结论PASS