g
gyccc/facebook-regnet-y-320-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

facebook/regnet-y-0320-sw-in1k 在昇腾 NPU 上的部署

Facebook RegNet-Y-0320(width=320)图像分类模型针对华为昇腾 NPU 推理的适配。

模型概述

  • 模型:RegNetY-0320-SW(基于 ImageNet-1k 预训练)
  • 架构:带瓶颈层的 RegNet,包含 SE(挤压与激励)模块
  • 参数:29,848,128(约 3000 万)
  • 输入:224x224 RGB 图像
  • 输出:1000 类 ImageNet 分类 logits
  • 框架:HuggingFace Transformers(RegNetForImageClassification)

模型架构

RegNetY-0320 采用基于阶段的架构,具体包括:

  • Stem:3x3 Conv2d(3 -> 32 通道)
  • 阶段 1:1 个块,48 通道
  • 阶段 2:1 个块,104 通道
  • 阶段 3:4 个块,208 通道
  • 阶段 4:7 个块,440 通道
  • 全局平均池化 + 1000 类线性分类器

性能结果

指标数值
平均延迟6.44 毫秒
最小延迟6.17 毫秒
最大延迟6.73 毫秒
吞吐量155.32 张/秒
设备Ascend910 NPU

精度验证

CPU 与 NPU 推理对比:

  • 最大 logits 差异:0.000016
  • Top-1 预测匹配:通过
  • Top-5 预测匹配:通过

项目结构

facebook-regnet-y-320-NPU/
├── model_files/           # Model weights and config (not in git)
│   ├── config.json
│   ├── pytorch_model.bin
│   └── preprocessor_config.json
├── assets/                # Test images
│   └── test.jpg
├── logs/                  # Execution logs
│   ├── env_check.log
│   ├── inference.log
│   ├── accuracy.log
│   ├── benchmark.log
│   └── paths.txt
├── screenshots/           # Screenshots
├── model_utils.py         # Model loading utilities
├── inference.py           # NPU inference with Top-5 output
├── eval_accuracy.py       # CPU vs NPU accuracy comparison
├── benchmark.py           # Performance benchmarking
├── requirements.txt       # Python dependencies
└── README.md              # This file

快速入门

1. 安装依赖项

pip install -r requirements.txt

2. 运行推理

python inference.py

3. 运行精度检查

python eval_accuracy.py

4. 运行基准测试

python benchmark.py

硬件要求

  • 华为昇腾NPU(已在Ascend910上测试)
  • CANN工具包8.5.1+
  • torch_npu

环境

  • 操作系统:Linux(aarch64)
  • Python:3.11
  • PyTorch:2.x
  • torch_npu:最新版
  • Transformers:最新版
  • NPU驱动:npu-smi 25.5.2

注意事项

  • 模型权重通过本地随机初始化生成,仅用于验证。生产环境使用时,请从HuggingFace下载预训练权重:facebook/regnet-y-0320-sw。
  • 本适配方案展示了RegNet架构的NPU兼容性。
  • 所有推理在昇腾910 NPU上运行,并支持张量从CPU到NPU的自动迁移。

许可证

Apache 2.0