Netrans 简介
Netrans 是 PNNA NPU 配套的 AI 编译器,提供命令行工具和 Python API,将模型权重转换成在 PNNA NPU 上运行的 NBG(Network Binary Graph)格式文件(.nb 后缀)。NBG 文件用于后续模型部署和推理工程的交叉编译。
工程结构
1netrans/
2├── src/netrans # Python 源码
3├── script # 命令行工具
4├── docs # 文档
5├── examples # 示例代码
6├── vendor # 第三方依赖(acuity whl)
7├── tests # 单元测试
8├── test # 集成测试
9├── setup.py # Python 包配置
10├── setup.sh # 安装脚本(一键安装)
11├── requirements.txt # Python 依赖
12└── README.md # 本文件
安装指南
系统依赖
CPU: Intel® Core™ i5-6500 CPU @ 3.2 GHz x4 或同等性能
RAM: 至少 8GB
硬盘: 160GB 剩余空间
操作系统: Ubuntu 20.04 LTS 64-bit with Python 3.10
安装步骤
1. 克隆仓库
1git clone https://gitlink.org.cn/nudt_dsp/netrans.git ~/app/netrans
2cd ~/app/netrans
2. 创建并激活 Python 3.10 环境
1# 使用 mamba(推荐)
2# 下载并安装 miniforge(包含 mamba)
3wget https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh
4bash Miniforge3-Linux-x86_64.sh -b -p $HOME/app/miniforge3
5echo "export MAMBA_ROOT_PREFIX=${HOME}/app/miniforge3" >> ${HOME}/.bashrc
6echo "source " ${HOME}/app/miniforge3/etc/profile.d/mamba.sh"" >> ${HOME}/.bashrc
7source "$HOME/app/miniforge3/etc/profile.d/mamba.sh"
8
9# 创建并激活环境
10mamba create -n netrans python=3.10 -y
11mamba activate netrans
3. 一键安装
1make install
2source ~/.bashrc
4. 验证安装
1# 验证 Python 包
2mamba activate netrans
3python -c "import netrans; print(netrans.__version__)"
4
5# 验证命令行工具
6netrans --help
7netrans-dump --help
快速开始
命令行工具
1# 进入示例目录
2cd ~/app/netrans/examples/infer_with_pre_post_process/yolov8s
3
4# 激活环境
5mamba activate netrans
6
7# 完整转换流程
8netrans load ./ --mean 0 0 0 --scale 255 255 255
9netrans quantize ./ asymu8
10netrans add_pre_post ./ asymu8
11netrans export ./ asymu8
Python API
from netrans import Netrans
# 初始化
net = Netrans()
# 加载模型
net.load('./yolov8s', mean=[0, 0, 0], scale=[255])
# 量化
net.quantize('asymu8')
# 导出(集成前后处理,推荐方式)
net.export('asymu8', platform='pnna', preprocess=True, postprocess=True)
# 或者分步添加前后处理
# net.add_pre_post('asymu8')
# net.export('asymu8', platform='pnna')
文档
实用指南 - 常见操作、FAQ、故障排查
命令行参考 - 完整 CLI 参数说明
Python API 参考 - API 详细文档
版本发布记录 - 版本变更历史
许可证
与 Netrans 主项目相同。