-
Notifications
You must be signed in to change notification settings - Fork 16
Mgeconvert Python Api Doc
daisycx edited this page Aug 3, 2022
·
10 revisions
tracemodule 系列转换主要负责处理ONNX,CAFFE和TFLITE等后端框架
from mgeconvert.converters.tm_to_onnx import tracedmodule_to_onnx
tracedmodule_to_onnx(
traced_module, # tracemodule 文件
output="out.onnx", # 输出文件路径
graph_name="graph", # graph的名称
opset=8, # 支持的opset 8 -12
outspec=None, # 指定模型的end points, 只转换end points依赖的部分
input_data_type: str = None, # 输入的dtype
input_scales: Union[float, List[float]] = None, # 输入的 scale
input_zero_points: Union[int, List[int]] = None, # 输入的 zero_points
require_quantize=False, # 对于QAT模型是否需要真量化,如果不做真量化则生成量化参数文件
param_fake_quant=False, # 是否需要对weight等常量进行假量化
quantize_file_path="quant_params.json", # 量化文件输出位置
)
执行该段代码后,会在输出out.onnx的onnx文件,转换结束
from mgeconvert.converters.tm_to_caffe import tracedmodule_to_caffe
tracedmodule_to_caffe(
traced_module, # tracemodule 文件
prototxt="out.prototxt", # 输出的caffe proto的文件名
caffemodel="out.caffemodel", # 输出caffemodel 的文件名
outspec=None, # 指定模型的end points, 只转换end points依赖的部分
use_empty_blobs=False, # 是否保存params
input_data_type: str = None, # 输入的类型
input_scales: Union[float, List[float]] = None, # 输入的scales
input_zero_points: Union[int, List[int]] = None, # 输入的zero_points
require_quantize=False, # 对于QAT模型是否需要真量化,如果不做真量化则生成量化参数文件
param_fake_quant=False, # 是否需要对weight等常量进行假量化
split_conv_relu=False, # 是否需要分离 conv 和relu ,将relu去掉
quantize_file_path="quant_params.json", # 输出的量化文件地址
convert_backend: BackEnd = BackEnd.CAFFE, # 使用caffe 格式转换的后端 1 = caffe,2 = snpe,3 = trt
)
from mgeconvert.converters.tm_to_tflite import tracedmodule_to_tflite
tracedmodule_to_tflite(
traced_module, # tracemodule 文件
output="out.tflite", # 输出的名称
input_data_type: str = None, # 输入的dtype
input_scales: Union[float, List[float]] = None, # 输入的scale
input_zero_points: Union[int, List[int]] = None, # 输入的 zero_points
require_quantize=False, # 对于QAT模型是否需要真量化,如果不做真量化则生成量化参数文件
param_fake_quant=False, # 是否需要对weight等常量进行假量化
quantize_file_path="quant_params.json", # 导出的json 文件名称
graph_name="graph", # 图名称
mtk=False, # 是否是mtk 平台
outspec=None, # 指定模型的end points, 只转换end points依赖的部分
)
from mgeconvert.converters.mge_to_onnx import mge_to_onnx
mge_to_onnx(
mge_fpath, #mge 文件
output="out.onnx", # 输出文件名称
graph_name="graph", # graph的名称
opset=8, # opset 的版本
outspec=None # 指定模型的end points, 只转换end points依赖的部分
)
from mgeconvert.converters.mge_to_caffe import mge_to_caffe
mge_to_caffe(
mge_fpath, # mge 文件路径
prototxt="out.prototxt", # 指定的输出文件
caffemodel="out.caffemodel", # caffe的模型文件
outspec=None, # 指定模型的end points, 只转换end points依赖的部分
use_empty_blobs=False, # 是否使用空blob
convert_backend: BackEnd = BackEnd.CAFFE, # 转换的后端
)
from mgeconvert.converters.mge_to_tflite import mge_to_tflite
mge_to_tflite(
mge_fpath, # 指定的mge路径
output="out.tflite", # 指定的输出文件
graph_name="graph", # 图的名称
mtk=False, # 是否mtk 平台
disable_nhwc=False, # 是否禁用nhwc
outspec=None, # 指定模型的end points, 只转换end points依赖的部分
)
see Readme for details