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]
参数¶
:::{table} topsideas onnx fold_constant 参数列表
:widths: 8 32 20 45
short |
long |
default |
help |
---|---|---|---|
|
|
show this help message and exit |
|
|
|
Provide the original onnx file. |
|
|
|
Export the modified onnx file. |
|
|
|
Check whether the output is correct with n random inputs. |
|
|
|
Overwrite input shapes if not set –dynamic-input-shape, otherwise used for generating random inputs in checking. Format: –input_shape |
|
|
|
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. Shape inference causes segfault on some large models. |
||
|
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
:::{figure-md}
onnx常量折叠示例 :::
API¶
使用方法¶
from topsideas.onnx import FoldConstant
result = FoldConstant.run(input_mp)
参数¶
:::{table} topsideas.onnx.FoldConstant 参数列表
:widths: 25 40 35
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 |
custom_lib |
str |
None |
input_data_path |
str |
None |
RETURN |
onnx.onnx_ml_pb2.ModelProto |
:::