Go to file
xujiao b2b6161c9a 更新文档适配whl版本号 2025-11-21 16:20:06 +08:00
docs docs:update docs 2025-11-12 14:20:04 +08:00
examples docs(examples):更新example示例说明 2025-11-12 14:05:53 +08:00
script feature(script): 兼容旧版本,支持原调用脚本 2025-11-21 13:41:52 +08:00
src/netrans refactor(netrans): 优化api结构 2025-11-21 15:53:14 +08:00
test refactor(test):测试更新同步export_nbg 2025-11-06 16:36:02 +08:00
README.md 更新tf / acu 的环境变量配置方式,减少无关打印日记。 2025-11-20 15:14:00 +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.8,不推荐使用其他版本

安装步骤

  • 安装依赖
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.8
 mamba create -n netrans python=3.8 -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'
cd ${work_path}
# 2. 激活环境
mamba activate netrans
# 3. 模型导入
netrans load ./ 
# 4. 模型量化
netrans quantize ./ asymu8 
# 5. 将前后处理加入推理网络
netrans add_prepost_to_graph ./ asymu8 --preprocess --postprocess
# 6. 导出 nbg 文件
netrnas export_nbg ./ asymu8 

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

Python接口

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

from nertans import Netrans

# 定义模型路径,模型路径默认为工作路径。
model_path='examples/infer_with_pre_post_process'

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

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