Go to file
sui 969eb090f2 Merge pull request 'netrans 251204 更新' (#2) from dev into master 2025-12-04 15:08:29 +08:00
docs docs:更新文档中python版本的描述 2025-12-03 14:30:37 +08:00
examples docs:更新不同框架的模型进行转换的说明文档 2025-12-03 15:04:39 +08:00
script refactor(netrans) 2025-11-25 20:22:51 +08:00
src/netrans refactor(netrans) 2025-11-25 20:22:51 +08:00
test test:更新集成测试 2025-12-01 11:19:15 +08:00
README.md docs(README): 修改python版本描述 2025-12-02 14:06:27 +08:00
requirements_py3.10.txt feature(netrnas):适配3.10.12 2025-11-18 10:38:03 +08:00
setup.sh 更新文档适配whl版本号 2025-11-21 16:20:06 +08:00

README.md

Netrans 简介

Netrans 是 Pnna NPU 配套的AI编译器提供命令行工具 Netrans_cli 和 python API, 其功能是将模型权重转换成在 Pnna NPU 上运行的 nbgnetwork binary graph格式文件.nb 后缀)。 Nbg 文件用于后续模型部署和推理工程的交叉编译。

工程结构

Netrans 目录结构如下:

netrans/ 
├── bin  # binary file
├── docs  # 文档,包括用户指南和命令行工具的详细说明
├── examples  # 示例代码展示不同框架如何使用netrans进行模型转换
├── README.md  # 说明文档,通常包含项目概述、安装指南等
├── script  # 命令行工具
├── setup.sh  # 用于设置环境或安装依赖的Shell脚本
└── test  # 测试代码

安装指南

系统依赖

  • CPU Intel® Core™ i5-6500 CPU @ 3.2 GHz x4 支持 the Intel® Advanced Vector Extensions.
  • RAM 至少8GB
  • 硬盘 160GB
  • 操作系统 Ubuntu 20.04 LTS 64-bit with Python 3.10,不推荐使用其他版本

安装步骤

  • 安装依赖
sudo apt update
sudo apt install build-essential

# 安装 mamba ,本项目使用 mamba 创建虚拟环境,演示安装过程

# 下载 mamba 安装脚本
 wget "https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease//Miniforge3-$(uname)-$(uname -m).sh"
 # 创建 mamba 的安装目录
 mkdir -p ~/app 
 # 安装 mamba 到 ~/app/ 
 bash Miniforge3-Linux-x86_64.sh -b -p ${HOME}/app/miniforge3
 # 添加 mamba 的初始化脚本到环境配置文件
 echo "source " ${HOME}/app/miniforge3/etc/profile.d/mamba.sh"" >> ${HOME}/.bashrc
 # 重新加载 ~/.bashrc 文件,使 mamba 初始化生效
 source ${HOME}/.bashrc
 # 创建一个名为 netrans 的虚拟环境,并安装 Python 3.10
 mamba create -n netrans python=3.10 -y
 # 激活 netrans 虚拟环境
 mamba activate netrans
  • 下载 Netrans
# 下载 Netrans 到 /app
cd ~/app
git clone https://gitlink.org.cn/nudt_dsp/netrans.git
  • 运行配置脚本
cd ~/app/netrans
bash setup.sh

Netrans 使用说明

Netrans 提供 Tensorflow、Caffe、Darknet、ONNX 和 Pytorch 的模型转换示例,请参考目录 ~/app/netrans/examples

命令行工具

Netrans 提供了简单的命令行接口,用于编译和优化模型。

# 以 转成 ONNX 格式的 YOLOv8s 模型为例,演示使用 Netrans 命令行工具完成转换的全过程。
# 1. 定义模型路径,模型路径默认为工作路径。
work_path='~/app/netrans/examples/infer_with_pre_post_process/yolov8s'
cd ${work_path}
# 2. 激活环境
mamba activate netrans
# 3. 模型导入
netrans load ./ --mean 0 0 0 --scale 1 1 1
# 4. 模型量化
netrans quantize ./ asymu8 
# 5. 将前后处理加入推理网络
netrans add_pre_post ./ asymu8
# 6. 导出 nbg 文件
netrans export ./ asymu8 

详细说明请参考netrans 命令行使用说明

Python接口

通过Netrans Python接口可以方便地在Python脚本中调用编译器。 示例代码:

from netrans import Netrans

# 定义模型路径,模型路径默认为工作路径。
model_path='~/app/netrans/examples/infer_with_pre_post_process/yolov8s'
import sys
model_path=sys.argv[1]

# 初始化netrans
net = Netrans()
# 模型载入,同时配置 mean 和 scale  
net.load(model_path,  mean=[128,128,128] ,scale=[1,1,1] )
# 模型量化
net.quantize("asymu8", pre = False, post= False)
# 前后处理添加进推理
net.add_pre_post("asymu8")
# 模型导出
net.export("asymu8")

详细说明请参考netrans api 使用说明