Merge pull request ‘netrans 251204 更新’ (#2) from dev into master
Netrans 是 Pnna NPU 配套的AI编译器,提供命令行工具 Netrans_cli 和 python API, 其功能是将模型权重转换成在 Pnna NPU 上运行的 nbg(network binary graph)格式文件(.nb 后缀)。 Nbg 文件用于后续模型部署和推理工程的交叉编译。
Netrans 目录结构如下:
netrans/ ├── bin # binary file ├── docs # 文档,包括用户指南和命令行工具的详细说明 ├── examples # 示例代码,展示不同框架如何使用netrans进行模型转换 ├── README.md # 说明文档,通常包含项目概述、安装指南等 ├── script # 命令行工具 ├── setup.sh # 用于设置环境或安装依赖的Shell脚本 └── test # 测试代码
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 到 ~/app cd ~/app git clone https://gitlink.org.cn/nudt_dsp/netrans.git
cd ~/app/netrans bash setup.sh
Netrans 提供 Tensorflow、Caffe、Darknet、ONNX 和 Pytorch 的模型转换示例,请参考目录 ~/app/netrans/examples
~/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 命令行使用说明。
通过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 使用说明。
netrans 是一套针对pnna 芯片的模型处理工具,提供命令行工具 netrans_cli 和 python api netrans_py, 其核心功能是将模型权重转换成在pnna芯片上运行的 nbg(network binary graph)格式(.nb 为后缀)。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Netrans 简介
Netrans 是 Pnna NPU 配套的AI编译器,提供命令行工具 Netrans_cli 和 python API, 其功能是将模型权重转换成在 Pnna NPU 上运行的 nbg(network binary graph)格式文件(.nb 后缀)。 Nbg 文件用于后续模型部署和推理工程的交叉编译。
工程结构
Netrans 目录结构如下:
安装指南
系统依赖
安装步骤
Netrans 使用说明
Netrans 提供 Tensorflow、Caffe、Darknet、ONNX 和 Pytorch 的模型转换示例,请参考目录
~/app/netrans/examples命令行工具
Netrans 提供了简单的命令行接口,用于编译和优化模型。
详细说明请参考netrans 命令行使用说明。
Python接口
通过Netrans Python接口,可以方便地在Python脚本中调用编译器。 示例代码:
详细说明请参考netrans api 使用说明。