netrans/netrans_py
liangliangou 7642e53a1b add dump.py 2025-04-18 09:03:02 +08:00
..
README.md Align commands with the CLI 2025-04-09 11:27:25 +08:00
config.py Align commands with the CLI 2025-04-09 11:27:25 +08:00
dump.py add dump.py 2025-04-18 09:03:02 +08:00
example.py nertans python api 2025-04-07 11:29:05 +08:00
export.py nertans python api 2025-04-07 11:29:05 +08:00
file_model.py nertans python api 2025-04-07 11:29:05 +08:00
import_model.py nertans python api 2025-04-07 11:29:05 +08:00
infer.py nertans python api 2025-04-07 11:29:05 +08:00
netrans.py Align commands with the CLI 2025-04-09 11:27:25 +08:00
quantize.py nertans python api 2025-04-07 11:29:05 +08:00
quantize_hb.py nertans python api 2025-04-07 11:29:05 +08:00
setup.py nertans python api 2025-04-07 11:29:05 +08:00
utils.py nertans python api 2025-04-07 11:29:05 +08:00

README.md

Python api netrans_py 使用介绍

netrans_py 支持通过 python api 灵活地将模型转换成pnna 支持的格式。 使用 ntrans_py 完成模型转换的步骤如下:

  1. 导入模型
  2. 生成并修改前处理配置文件 *_inputmeta.yml
  3. 量化模型
  4. 导出模型

netrans_py api

Netrans 导入api及创建实例

创建 Netrans

描述: 实例化 Netrans 类。 代码示例:

from netrans import Netrans
yolo_netrans = Netrans("../examples/darknet/yolov4_tiny")

参数

参数名 类型 说明
model_path str 第一位置参数,模型文件的路径
netans str 如果 NETRANS_PATH 没有设置可通过该参数指定netrans的路径

输出返回: 无。

注意: 模型目录准备需要和netrans_cli一致具体数据准备要求见introduction

Netrans.load_model 模型导入

描述: 将模型转换成 pnna 支持的格式。 代码示例:

yolo_netrans.load_model()

参数: 无。

输出返回: 无。 在工程目录下生成 pnna 支持的模型格式,以.json结尾的模型文件和 .data结尾的权重文件。

Netrans.config 预处理配置文件生成

描述: 将模型转换成 pnna 支持的格式。 代码示例:

yolo_netrans.config()

参数:

参数名 类型 说明
inputmeta bool,str, [Fasle, True, "inputmeta_filepath"] 指定 inputmeta, 默认为False。
如果为False则会生成inputmeta模板可使用mean、scale、reverse_channel 配合修改常用参数。
如果已有现成的 inputmeta 文件则可通过该参数进行指定也可使用True, 则会自动索引 model_name_inputmeta.yml
mean float, int, list 设置预处理中 normalize 的 mean 参数
scale float, int, list 设置预处理中 normalize 的 scale 参数
reverse_channel bool 设置预处理中的 reverse_channel 参数

输出返回: 无。

Netrans.quantize 量化模型

描述: 对模型生成量化配置文件。 代码示例:

yolo_netrans.quantize("uint8")

参数:

参数名 类型 说明
quantize_type str 第一位置参数,模型量化类型,仅支持 "uint8", "int8", "int16"

输出返回: 无。

Netrans.export 模型导出

描述: 对模型生成量化配置文件。 代码示例:

yolo_netrans.export()

参数: 无。

输出返回: 无。请在目录 “wksp/*/” 下检查是否生成nbg文件。

Netrans.model2nbg 一键生成nbg文件

描述: 模型导入、量化、及nbg文件生产 代码示例:

# 无预处理
yolo_netrans.model2nbg(quantize_type='uint8')
# 需要对数据进行normlize, menas为128, scale 为 0.0039
yolo_netrans.model2nbg(quantize_type='uint8',mean=128, scale = 0.0039)
# 需要对数据分通道进行normlize, menas为128,127,125,scale 为 0.0039, 且reverse_channel 为 True 
yolo_netrans.model2nbg(quantize_type='uint8'mean=[128, 127, 125], scale = 0.0039, reverse_channel= True)
# 已经进行初始化设置
yolo_netrans.model2nbg(quantize_type='uint8', inputmeta=True)

参数

参数名 类型 说明
quantize_type str, ["uint8", "int8", "int16" ] 量化类型,将模型量化成该参数指定的类型
inputmeta bool,str, [Fasle, True, "inputmeta_filepath"] 指定 inputmeta, 默认为False。
如果为False则会生成inputmeta模板可使用mean、scale、reverse_channel 配合修改常用参数。
如果已有现成的 inputmeta 文件则可通过该参数进行指定也可使用True, 则会自动索引 model_name_inputmeta.yml
mean float, int, list 设置预处理中 normalize 的 mean 参数
scale float, int, list 设置预处理中 normalize 的 scale 参数
reverse_channel bool 设置预处理中的 reverse_channel 参数

输出返回: 请在目录 “wksp/*/” 下检查是否生成nbg文件。

使用实例

from nertans import Netrans
model_path = 'example/darknet/yolov4_tiny'
netrans_path = "netrans/bin" # 如果进行了export定义申明这一步可以不用

# 初始化netrans
net = Netrans(model_path,netrans=netrans_path)
# 模型载入
net.load_model()
# 生成 inputmeta 文件
net.gen_inputmeta()
# 配置预处理 normlize 的参数
net.config(scale=1,mean=0)
# 模型量化
net.quantize("uint8")
# 模型导出
net.export()

# 模型直接量化成 int16 并导出, 直接复用刚配置好的 inputmeta
net.model2nbg(quantize_type = "int16", inputmeta=True)