e
gcw_GSiqzzLf/dla34.in1k-npu
模型介绍文件和版本Pull Requests讨论分析

dla34 Ascend NPU 适配

模型概述

dla34 是一个 DLA(Deep Layer Aggregation)架构的图像分类模型,在 ImageNet-1K 数据集上预训练,支持 1000 类分类。

  • 模型架构: dla34
  • 输入尺寸: 3 x 224 x 224
  • 类别数: 1000
  • 框架: PyTorch (timm)
  • 原始模型: timm/dla34

精度对比

在 Ascend 910 NPU 和 CPU 上对模型进行对比测试,使用随机输入张量, 统计 CPU 与 NPU 输出的一致性。

指标数值
Top-1 匹配率3/3
平均 MAE1.243966e-03
平均相对误差0.0117%
平均余弦相似度0.99999959
误差 < 1%✅

精度测试结论:NPU 与 CPU 推理结果误差为 0.0117,小于 1%,符合精度要求。

测试详情

测试CPU Top-1NPU Top-1Top-5 重叠MAE相对误差余弦相似度状态
18858855/51.0480e-030.0104%1.000000✅
28858855/51.4532e-030.0136%0.999999✅
38858855/51.2307e-030.0111%1.000000✅

性能对比

设备平均推理时间(首次)平均推理时间(后续)
CPU160.7ms144.6ms
NPU184.9ms4.9ms

环境要求

  • Python 3.11+
  • PyTorch 2.9.0
  • torch-npu 2.9.0
  • timm 1.0.27
  • Ascend CANN 8.5.1
  • Ascend 910 NPU

模型下载

# 方式一:通过 ModelScope
from modelscope.hub.snapshot_download import snapshot_download
snapshot_download('timm/dla34', cache_dir='./model')

# 方式二:通过 GitCode(推荐国内用户)
git clone https://gitcode.com/ascend_community_models/dla34-npu.git

使用方法

方式一:直接推理(NPU/CPU)

python3 inference.py --device npu

方式二:CPU vs NPU 精度对比

python3 compare_cpu_npu.py --num_tests 5

Python 推理示例

import torch
import timm
from common_utils import get_device

# 加载模型
device = get_device(use_npu=torch.npu.is_available())
model = timm.create_model('dla34', pretrained=False, num_classes=1000)
state_dict = torch.load("pytorch_model.bin", map_location="cpu", weights_only=True)
model.load_state_dict(state_dict, strict=True)
model = model.to(device)
model.eval()

# 推理
input_tensor = torch.randn(1, 3, 224, 224).to(device)
with torch.no_grad():
    output = model(input_tensor)
probs = torch.nn.functional.softmax(output[0], dim=0)
top5 = torch.topk(probs, k=5)
for i in range(5):
    print(f"{top5.indices[i].item()}: {top5.values[i].item():.4f}")

文件结构

dla34-npu/
├── README.md               # 本文件
├── inference.py            # NPU/CPU 推理脚本
├── compare_cpu_npu.py      # CPU vs NPU 精度对比脚本
├── accuracy_report.json    # 精度报告
├── requirements.txt        # 依赖
└── terminal_screenshot.png # 运行截图

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:

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

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

推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。

运行截图

运行截图

许可证

本项目基于 Apache-2.0 许可证开源。模型权重基于 timm 的 Original License。

下载使用量0