|
|
||
|---|---|---|
| devtools/support/260304_yolov5s | ||
| docs | ||
| examples | ||
| script | ||
| src/netrans | ||
| test | ||
| vendor | ||
| Makefile | ||
| README.md | ||
| requirements.txt | ||
| setup.py | ||
| setup.sh | ||
README.md
Netrans 简介
Netrans 是 PNNA NPU 配套的 AI 编译器,提供命令行工具和 Python API,将模型权重转换成在 PNNA NPU 上运行的 NBG(Network Binary Graph)格式文件(.nb 后缀)。NBG 文件用于后续模型部署和推理工程的交叉编译。
工程结构
netrans/
├── src/netrans # Python 源码
├── script # 命令行工具
├── docs # 文档
├── examples # 示例代码
├── vendor # 第三方依赖(acuity whl)
├── devtools/packing # 离线打包配置
├── devtools # 开发工具(调试脚本等,不提交)
├── tests # 单元测试
├── test # 集成测试
├── setup.py # Python 包配置
├── setup.sh # 安装脚本(一键安装)
├── requirements.txt # Python 依赖
└── 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. 克隆仓库
git clone https://gitlink.org.cn/nudt_dsp/netrans.git ~/app/netrans
cd ~/app/netrans
2. 创建并激活 Python 3.10 环境
# 使用 mamba(推荐)
# 下载并安装 miniforge(包含 mamba)
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -p $HOME/app/miniforge3
echo "export MAMBA_ROOT_PREFIX=${HOME}/app/miniforge3" >> ${HOME}/.bashrc
echo "source " ${HOME}/app/miniforge3/etc/profile.d/mamba.sh"" >> ${HOME}/.bashrc
source "$HOME/app/miniforge3/etc/profile.d/mamba.sh"
# 创建并激活环境
mamba create -n netrans python=3.10 -y
mamba activate netrans
3. 一键安装
make install
source ~/.bashrc
setup.sh 会依次完成:
- 安装 acuity(vendor/ 目录中的 whl)
- 安装 Python 依赖(requirements.txt)
- 安装 netrans(pip install -e .)
- 添加 script 目录到 PATH
4. 验证安装
# 验证 Python 包
python -c "import netrans; print(netrans.__version__)"
# 验证命令行工具
netrans --help
netrans-dump --help
快速开始
命令行工具
# 进入示例目录
cd ~/app/netrans/examples/infer_with_pre_post_process/yolov8s
# 激活环境
mamba activate netrans
# 完整转换流程
netrans load ./ --mean 0 0 0 --scale 255 255 255
netrans quantize ./ asymu8
netrans add_pre_post ./ asymu8
netrans export ./ asymu8
Python API
from netrans import Netrans
# 初始化
net = Netrans()
# 加载模型
net.load('./yolov8s', mean=[0, 0, 0], scale=[255])
# 量化
net.quantize('asymu8')
# 添加前后处理
net.add_pre_post('asymu8')
# 导出
net.export('asymu8')
文档
开发安装
如需开发调试,可直接使用 Makefile:
make install # 执行 setup.sh 的完整安装
make setup # 仅配置环境变量
make clean # 清理临时文件
make package # 构建离线安装包
离线安装
如需在无网络环境安装,请参考 devtools/packing/README.md。
许可证
与 Netrans 主项目相同。