mindspore_lite.Converter
- class mindspore_lite.Converter(fmk_type, model_file, output_file, weight_file='', config_file='', section='', config_info=None, weight_fp16=False, input_shape=None, input_format=Format.NHWC, input_data_type=DataType.FLOAT32, output_data_type=DataType.FLOAT32, export_mindir=False, decrypt_key='', decrypt_mode='AES-GCM', enable_encryption=False, encrypt_key='', infer=False, train_model=False, no_fusion=False)[source]
Converter is used to convert third-party models.
Note
If the default value of the parameter is none, it means the parameter is not set.
- Parameters
fmk_type (FmkType) – Input model framework type. Options: FmkType.TF | FmkType.CAFFE | FmkType.ONNX | FmkType.MINDIR | FmkType.TFLITE.
model_file (str) – Path of the input model. e.g. “/home/user/model.prototxt”. Options: TF: “*.pb” | CAFFE: “*.prototxt” | ONNX: “*.onnx” | MINDIR: “*.mindir” | TFLITE: “*.tflite”.
output_file (str) – Path of the output model. The suffix .ms can be automatically generated. e.g. “/home/user/model.prototxt”, it will generate the model named model.prototxt.ms in /home/user/
weight_file (str, optional) – Input model weight file. Required only when fmk_type is FmkType.CAFFE. e.g. “/home/user/model.caffemodel”. Default: “”.
config_file (str, optional) – Configuration for post-training, offline split op to parallel, disable op fusion ability and set plugin so path. e.g. “/home/user/model.cfg”. Default: “”.
section (str, optional) –
The category of the configuration parameter. Set the individual parameters of the configFile together with config_info. e.g. for section = “common_quant_param”, config_info = {“quant_type”:”WEIGHT_QUANT”}. Default: “”. For the configuration parameters related to post training quantization, please refer to quantization. For the configuration parameters related to extension, please refer to extension.
”common_quant_param”: Common quantization parameter. One of configuration for quantization.
”mixed_bit_weight_quant_param”: Mixed bit weight quantization parameter. One of configuration for quantization.
”full_quant_param”: Full quantization parameter. One of configuration for quantization.
”data_preprocess_param”: Data preprocess parameter. One of configuration for quantization.
”registry”: Extension configuration parameter. One of configuration for extension.
config_info (dict{str, str}, optional) –
List of configuration parameters. Set the individual parameters of the configFile together with section. e.g. for section = “common_quant_param”, config_info = {“quant_type”:”WEIGHT_QUANT”}. Default: None. For the configuration parameters related to post training quantization, please refer to quantization. For the configuration parameters related to extension, please refer to extension.
weight_fp16 (bool, optional) – Serialize const tensor in Float16 data type, only effective for const tensor in Float32 data type. Default: False.
input_shape (dict{str, list[int]}, optional) – Set the dimension of the model input, the order of input dimensions is consistent with the original model. For some models, the model structure can be further optimized, but the transformed model may lose the characteristics of dynamic shape. e.g. {“inTensor1”: [1, 32, 32, 32], “inTensor2”: [1, 1, 32, 32]}. Default: {}.
input_format (Format, optional) – Assign the input format of exported model. Only Valid for 4-dimensional input. Options: Format.NHWC | Format.NCHW. Default: Format.NHWC.
input_data_type (DataType, optional) – Data type of input tensors. The default type is same with the type defined in model. Default: DataType.FLOAT32.
output_data_type (DataType, optional) – Data type of output tensors. The default type is same with the type defined in model. Default: DataType.FLOAT32.
export_mindir (bool, optional) – Whether to export MindIR pb. Default: False.
decrypt_key (str, optional) – The key used to decrypt the file, expressed in hexadecimal characters. Only valid when fmk_type is FmkType.MINDIR. Default: “”.
decrypt_mode (str, optional) – Decryption method for the MindIR file. Only valid when dec_key is set. Options: “AES-GCM” | “AES-CBC”. Default: “AES-GCM”.
enable_encryption (bool, optional) – Whether to export the encryption model. Default: False.
encrypt_key (str, optional) – The key used to encrypt the file, expressed in hexadecimal characters. Only support decrypt_mode is “AES-GCM”, the key length is 16. Default: “”.
infer (bool, optional) – Whether to do pre-inference after convert. Default: False.
train_model (bool, optional) – whether the model is going to be trained on device. Default: False.
no_fusion (bool, optional) – Avoid fusion optimization, fusion optimization is allowed by default. Default: False.
- Raises
TypeError – fmk_type is not a FmkType.
TypeError – model_file is not a str.
TypeError – output_file is not a str.
TypeError – weight_file is not a str.
TypeError – config_file is not a str.
TypeError – section is not a str.
TypeError – config_info is not a dict.
TypeError – config_info is a dict, but the keys are not str.
TypeError – config_info is a dict, the keys are str, but the values are not str.
TypeError – weight_fp16 is not a bool.
TypeError – input_shape is neither a dict nor None.
TypeError – input_shape is a dict, but the keys are not str.
TypeError – input_shape is a dict, the keys are str, but the values are not list.
TypeError – input_shape is a dict, the keys are str, the values are list, but the value’s elements are not int.
TypeError – input_format is not a Format.
TypeError – input_data_type is not a DataType.
TypeError – output_data_type is not a DataType.
TypeError – export_mindir is not a bool.
TypeError – decrypt_key is not a str.
TypeError – decrypt_mode is not a str.
TypeError – enable_encryption is not a bool.
TypeError – encrypt_key is not a str.
TypeError – infer is not a bool.
TypeError – train_model is not a bool.
TypeError – no_fusion is not a bool.
ValueError – input_format is neither Format.NCHW nor Format.NHWC when it is a Format.
ValueError – decrypt_mode is neither “AES-GCM” nor “AES-CBC” when it is a str.
RuntimeError – model_file does not exist.
RuntimeError – weight_file is not “”, but weight_file does not exist.
RuntimeError – config_file is not “”, but config_file does not exist.
Examples
>>> # Download the model package and extract it, model download link: >>> # https://download.mindspore.cn/model_zoo/official/lite/quick_start/micro/mobilenetv2.tar.gz >>> import mindspore_lite as mslite >>> converter = mslite.Converter(mslite.FmkType.kFmkTypeTflite, "./mobilenetv2/mobilenet_v2_1.0_224.tflite", ... "mobilenet_v2_1.0_224.tflite") >>> print(converter) config_file: , config_info: {}, weight_fp16: False, input_shape: {}, input_format: Format.NHWC, input_data_type: DataType.FLOAT32, output_data_type: DataType.FLOAT32, export_mindir: False, decrypt_key: , decrypt_mode: AES-GCM, enable_encryption: False, encrypt_key: , infer: False, train_model: False, no_fusion: False.
- converter()[source]
Perform conversion, and convert the third-party model to the mindspire model.
- Raises
RuntimeError – converter model failed.
Examples
>>> # Download the model package and extract it, model download link: >>> # https://download.mindspore.cn/model_zoo/official/lite/quick_start/micro/mobilenetv2.tar.gz >>> import mindspore_lite as mslite >>> converter = mslite.Converter(mslite.FmkType.kFmkTypeTflite, "./mobilenetv2/mobilenet_v2_1.0_224.tflite", ... "mobilenet_v2_1.0_224.tflite") >>> converter.converter() CONVERT RESULT SUCCESS:0