# OMG参数

*   路径：支持大小写字母、数字、下划线。
    
*   文件名：支持大小写字母、数字、下划线和点(.)。
    

| 参数名称 | 参数描述 | 是否必选 | 默认值 |
| --- | --- | --- | --- |
| --h/help | 显示帮助信息。 | 否 | 不涉及 |
| --mode | 运行模式。 0：生成DaVinci模型。 1：模型转json。json可查看模型结构的文本格式。 3：仅做预检，检查模型文件的内容是否合法。 | 否 | 0 |
| --model | 原始框架模型文件路径。 | 是 | 不涉及 |
| --framework | 原始框架类型。 0：Caffe。 3：TensorFlow。 5：ONNX。 6：MindSpore。 说明： - 当mode为1时，该参数可选，可以指定Caffe、TensorFlow、ONNX、MindSpore，不指定时默认为离线模型转json。 - 当mode为0或3时，该参数必选，可以指定Caffe或TensorFlow或ONNX或MindSpore。 - 当原始模型格式为TensorFlow的CheckPoint、SavedModel、TFLite时，推荐使用tf2onnx工具转换成ONNX模型后使用。 | 是 | 不涉及 |
| --weight | 权值文件路径。当原始模型是Caffe时需要指定。当原始模型是其他框架时不需要指定。 | 否 | 不涉及 |
| --output | 存放转换后的离线模型文件的路径（包含文件名），例如"out/caffe_resnet18"。转换后的模型文件，会自动以.om的后缀结尾。 | 是 | 不涉及 |
| --hiai_version | 指定使用OMG的版本，当前支持：v300\|v310\|IR。 | 否 | IR |
| --om | 模型文件路径。当mode为1时必填。 | 否 | 不涉及 |
| --json | 模型文件转换为json格式文件的路径。 | 否 | 不涉及 |
| --input_shape | 输入数据的shape。当input_shape参数为-1时，必须和--dynamic_dims参数联合使用。 例如：“input_name1: n1, c1, h1, w1; input_name2: n2, c2, h2, w2”。input_name必须是转换前的网络模型中的节点名称。 当原始模型是ONNX时，input_name必须是模型转换前的网络模型中input算子的name。 说明： - 当原始模型是ONNX，并且ONNX模型输入维度为动态时，此参数必须指定。 - 当原始模型是TensorFlow，并且TensorFlow模型输入维度为动态时，此参数必须指定。 | 否 | 不涉及 |
| --input_format | 输入数据格式：NCHW和NHWC。 说明： - 当原始框架是Caffe时或ONNX或MindSpore时，此参数不生效。 - 当原始框架是TensorFlow时，绝大多数场景不需要指定，如果转换时提示需要指定，根据实际情况指定。 | 否 | 不涉及 |
| --input_type | 支持设定模型输入格式，支持指定为FP32、FP16、 INT32、UINT8等，包括多输入和单输入。具体是否能成功生成离线模型，取决于原始模型是否支持指定为该格式的输入。模型输入支持场景详见非AIPP场景设定输入类型支持情况和AIPP场景设定输入类型支持情况。 例如："input_name1:FP16;input_name2:UINT8"。 input_name必须是转换前的网络模型中的节点名称。 当原始模型是ONNX时，input_name必须是模型转换前的网络模型中input算子的name。 | 否 | FP32 |
| --input_fp16_nodes | 不支持与--input_type同时设置。 指定数据类型为“fp16nchw”的输入节点名称。 例如：“node_name1;node_name2”。 说明： 当原始框架是ONNX或MindSpore时，此参数不生效。 | 否 | 不涉及 |
| --out_nodes | 指定输出节点。 - 如果原始模型是TensorFlow或者Caffe，按照以下格式指定：“node_name1:0;node_name1:1;node_name2:0”。 node_name必须是模型转换前的网络模型中的节点名称。同一个节点的输出从0开始，如果该节点有多个输出，依次往后累加。 - 如果原始模型是ONNX，按照以下格式指定：“tensor_name1;tensor_name2”。 tensor_name必须是模型转换前的网络模型中的节点输出Tensor名称。 | 否 | 不涉及 |
| --output_type | 支持设定模型的输出数据类型，支持指定为FP32、FP16、INT32、UINT8等，包括多输出和单输出。具体是否能成功生成离线模型，取决于原始模型是否支持指定为该类型的输出。模型输出支持场景详见非AIPP场景设定输入类型支持情况。 例如："output_name1:FP16;output_name2:UINT8"。 output_name必须是转换前的网络模型中的节点名称。 当原始框架是ONNX时，output_name可以是模型转换前的网络模型中output算子的name或者是开发者指定out_nodes中所用到的tensor_name。 | 否 | FP32 |
| --is_output_fp16 | 不支持与--output_type同时设置。 标注输出的数据类型是否为“fp16 nchw”。 例如：false, true, false, true。 说明： 当原始框架是ONNX或MindSpore时，此参数不生效。 | 否 | false |
| --stream_num | 模型使用的stream数量，当前仅支持1。 | 否 | 1 |
| --check_report | 预检结果保存文件路径。若不指定该路径，在模型转换失败或mode为3（仅做预检）时，将预检结果保存在当前路径下。 | 否 | 不涉及 |
| --net_format | 指定网络算子优先选用的数据格式。 说明： 该参数现已不推荐使用，可通过网络推导得出。 | 否 | 不涉及 |
| --insert_op_conf | AIPP配置文件路径。详情参见模型转换AIPP配置文件说明。 | 否 | 不涉及 |
| --op_name_map | 算子映射配置文件路径。包含DetectionOutput网络时需要指定。 例如：不同的网络中DetectionOutput算子的功能不同，指定DetectionOutput到FSRDetectionOutput或者SSDDetectionOutput的映射。 说明： 算子映射配置文件的内容示例如：DetectionOutput:SSDDetectionOutput。 | 否 | 不涉及 |
| --compress_conf | 轻量化配置文件路径。该参数需与轻量化工具搭配使用，由轻量化工具自动生成。具体参见模型轻量化。 | 否 | 不涉及 |
| --weight_data_type | 支持设定模型权值数据类型，支持指定为FP32或FP16。 该参数仅针对模型中权值数据类型为FP32时生效，根据设定将权值数据类型由FP32转为FP16存储或维持FP32不变。该参数默认值为FP16。 例如："weight_data_type:FP16"。 说明： 由于CPUCL不支持FP16的权重进行计算，如果模型需要兼容CPU计算库，需要指定该参数为FP32。 | 否 | FP16 |
| --weight_merge | 离线模型权值归并开关，支持指定在离线模型生成时权值是否进行归并存储操作；该参数为true时，模型权值归并存储。该参数为false时，权值维持非归并存储方式，对性能无影响。该参数默认为true。 | 否 | true |
| --use_origin_format | 支持设定模型的输入输出和原始模型保持一致的format。 说明： 本参数仅支持基于yolo、inception的业务网络转换设置为true，其它网络转换使用默认值false。 | 否 | false |
| --dynamic_dims | 支持同一个原始模型生成能支持不同shape输入档位的Davinci模型，该参数指定可以变化的dim值。和**--input_shape**参数配合使用，在input_shape参数中可以变化的dim使用-1代替。 该参数中每一种可以变化的dims值使用分号分隔（也称为一档），如果一档中有多个维度，每个维度之间使用逗号分隔。举例： - 动态batch --input_shape = "input_name1:-1,c,h,w" --dynamic_dims = "n1;n2;n3" - 动态分辨率 --input_shape = "input_name1:n,-1,-1,c" --dynamic_dims = "h1,w1;h2,w2" 说明： 使用约束：支持可以变化的shape种类最多16种。 | 否 | 不涉及 |
| --platform | 芯片平台，当--target设置为omc时必须设置。 | 否 | 不涉及 |
| --target | 目标模型类型。 - om 硬件无关Davinci模型。 - omc 硬件强相关Davinci模型，仅可在--platform指定的平台部署 | 否 | om |

当前只支持下表列出的情况。

*   非AIPP场景设定输入类型支持情况
    
    | 原始模型实际输入 | 离线模型期望输入（开发者设定） | 针对OMG参数 |
    | --- | --- | --- |
    | FP32 | FP16 | --input_type |
    | FP32 | FP32 | --input_type |
    | FP16 | FP16 | --input_type |
    | UINT8 | UINT8 | --input_type |
    | INT32 | INT32 | --input_type |
    | INT8 | INT8 | --input_type |
    
*   AIPP场景设定输入类型支持情况
    
    | 原始模型实际输入 | 离线模型期望输入 | 是否有AIPP | 针对OMG参数 |
    | --- | --- | --- | --- |
    | FP32 | UINT8 | 有 | --input_type |
    | FP16 | UINT8 | 有 | --input_type |
    | UINT8 | UINT8 | 有 | --input_type |
    
*   设定输出类型支持情况
    
    | 原始模型 | 离线模型输出 | 针对OMG参数 |
    | --- | --- | --- |
    | FP32 | UINT8 | --output_type |
    | FP16 | UINT8 | --output_type |
    | UINT8 | UINT8 | --output_type |
    | FP16 | FP16 | --output_type |
    | FP32 | FP32 | --output_type |
    | FP32 | FP16 | --output_type |
    | FP16 | FP32 | --output_type |
    | INT8 | INT8 | --output_type |
    | INT32 | INT32 | --output_type |
    | INT64 | INT64 | --output_type |