6.4. TopsIDEAS onnx fold_constant¶
描述¶
onnx模型常量折叠,来源于onnxsim中的常量折叠方法
命令行¶
使用方法¶
usage: topsideas onnx fold_constant [-h] --input_onnx INPUT_ONNX [--output_onnx OUTPUT_ONNX] [--check_n CHECK_N] [--input_shape INPUT_SHAPE [INPUT_SHAPE ...]]
[--input-data-path INPUT_DATA_PATH [INPUT_DATA_PATH ...]] [--skip-shape-inference] [--dynamic-input-shape]
参数¶
| short | long | default | help |
|---|---|---|---|
-h |
--help |
show this help message and exit | |
--input_onnx |
None |
Provide the original onnx file. | |
--output_onnx |
fold.onnx |
Export the modified onnx file. | |
--check_n |
3 |
Check whether the output is correct with n random inputs. | |
--input_shape |
[] |
Overwrite input shapes if not set --dynamic-input-shape, otherwise used for generating random inputs in checking. Format: --input_shape name:shape. For example: --input_shape input1:[1,3,224,224] input2:[4] input3:[]. If omitted, uses the current model inputs. |
|
--input-data-path |
None |
input data, The value should be 'input_name1:xxx1.bin' 'input_name2:xxx2.bin ...', input data should be a binary data file. | |
--skip-shape-inference |
Skip shape inference. Shape inference causes segfault on some large models. | ||
--dynamic-input-shape |
This option enables dynamic input shape support.'Shape' ops will not be eliminated in this case.Note that '--input_shape' is also needed for generating random inputs and checking equality. If 'dynamic_input_shape' is False, the input shape in simplified model will be overwritten by the value of 'input_shapes' param. |
示例¶
topsideas onnx fold_constant --input_onnx=demo.onnx --output_onnx=demo_fold.onnx

API¶
使用方法¶
from topsideas.onnx import FoldConstant
result = FoldConstant.run(input_mp)
参数¶
| argument | type | default |
|---|---|---|
| input_mp | onnx.onnx_ml_pb2.ModelProto | |
| check_n | int | 3 |
| dynamic_input_shape | bool | None |
| input_shape | str | None |
| skip_shape_inference | bool | False |
| input_data_path | str | None |
| RETURN | onnx.onnx_ml_pb2.ModelProto |