Package: sbi4onnx
sbi4onnxA very simple script that only initializes the batch size of ONNX.SimpleBatchsizeInitialization forONNX.https://github.com/PINTO0309/simple-onnx-processing-toolsKey conceptInitializes the ONNX batch size with the specified characters.This tool is not a panacea and may fail to initialize models with very complex structures. For example, there is an ONNX that contains aReshapethat involves a batch size, or aGemmthat contains a batch output other than 1 in the output result.AReshapein a graph cannot contain more than two undefined shapes, such as-1orNorNoneorunk_*. Therefore, before initializing the batch size with this tool, make sure that theReshapedoes not already contain one or more-1dimensions. If it already contains undefined dimensions, it may be possible to successfully initialize the batch size by pre-writing the undefined dimensions of the relevantReshapeto static values usingsam4onnx.1. Setup1-1. HostPC### option$echoexportPATH="~/.local/bin:$PATH">>~/.bashrc\&&source~/.bashrc### run$pipinstall-Uonnx\&&python3-mpipinstall-Uonnx_graphsurgeon--index-urlhttps://pypi.ngc.nvidia.com\&&pipinstall--no-deps-Uonnx-simplifier\&&pipinstall-Usbi4onnx1-2. Dockerhttps://github.com/PINTO0309/simple-onnx-processing-tools#docker2. CLI Usage$ sbi4onnx -h

usage:
  sbi4onnx [-h]
  -if INPUT_ONNX_FILE_PATH
  -of OUTPUT_ONNX_FILE_PATH
  -ics INITIALIZATION_CHARACTER_STRING
  [-dos]
  [-n]

optional arguments:
  -h, --help
      show this help message and exit.

  -if INPUT_ONNX_FILE_PATH, --input_onnx_file_path INPUT_ONNX_FILE_PATH
      Input onnx file path.

  -of OUTPUT_ONNX_FILE_PATH, --output_onnx_file_path OUTPUT_ONNX_FILE_PATH
      Output onnx file path.

  -ics INITIALIZATION_CHARACTER_STRING, --initialization_character_string INITIALIZATION_CHARACTER_STRING
      String to initialize batch size. "-1" or "N" or "xxx", etc...
      Default: '-1'

  -dos, --disable_onnxsim
      Suppress the execution of onnxsim on the backend and dare to leave redundant processing.

  -n, --non_verbose
      Do not show all information logs. Only error logs are displayed.3. In-script Usage>>>fromsbi4onnximportinitialize>>>help(initialize)Helponfunctioninitializeinmodulesbi4onnx.onnx_batchsize_initialize:initialize(input_onnx_file_path:Union[str,NoneType]='',onnx_graph:Union[onnx.onnx_ml_pb2.ModelProto,NoneType]=None,output_onnx_file_path:Union[str,NoneType]='',initialization_character_string:Union[str,NoneType]='-1',non_verbose:Union[bool,NoneType]=False,disable_onnxsim:Union[bool,NoneType]=False,)->onnx.onnx_ml_pb2.ModelProtoParameters----------input_onnx_file_path:Optional[str]Inputonnxfilepath.Eitherinput_onnx_file_pathoronnx_graphmustbespecified.Default:''onnx_graph:Optional[onnx.ModelProto]onnx.ModelProto.Eitherinput_onnx_file_pathoronnx_graphmustbespecified.onnx_graphIfspecified,ignoreinput_onnx_file_pathandprocessonnx_graph.output_onnx_file_path:Optional[str]Outputonnxfilepath.Ifnotspecified,noONNXfileisoutput.Default:''initialization_character_string:Optional[str]Stringtoinitializebatchsize."-1"or"N"or"xxx",etc...Default:'-1'disable_onnxsim:Optional[bool]Suppresstheexecutionofonnxsimonthebackendanddaretoleaveredundantprocessing.Default:Falsenon_verbose:Optional[bool]Donotshowallinformationlogs.Onlyerrorlogsaredisplayed.Default:FalseReturns-------changed_graph:onnx.ModelProtoChangedonnxModelProto.4. CLI Execution$sbi4onnx\--input_onnx_file_pathwhenet_224x224.onnx\--output_onnx_file_pathwhenet_Nx224x224.onnx\--initialization_character_stringN

$sbi4onnx\--input_onnx_file_pathwhenet_224x224.onnx\--output_onnx_file_pathwhenet_Nx224x224.onnx\--initialization_character_string-1

$sbi4onnx\--input_onnx_file_pathwhenet_224x224.onnx\--output_onnx_file_pathwhenet_Nx224x224.onnx\--initialization_character_stringabcdefg5. In-script Executionfromsbi4onnximportinitializeonnx_graph=initialize(input_onnx_file_path="whenet_224x224.onnx",output_onnx_file_path="whenet_Nx224x224.onnx",initialization_character_string="abcdefg",)# oronnx_graph=initialize(onnx_graph=graph,initialization_character_string="abcdefg",)6. SampleBeforeAfter7. Referencehttps://github.com/onnx/onnx/blob/main/docs/Operators.mdhttps://docs.nvidia.com/deeplearning/tensorrt/onnx-graphsurgeon/docs/index.htmlhttps://github.com/NVIDIA/TensorRT/tree/main/tools/onnx-graphsurgeonhttps://github.com/PINTO0309/simple-onnx-processing-toolshttps://github.com/PINTO0309/PINTO_model_zoo8. Issueshttps://github.com/PINTO0309/simple-onnx-processing-tools/issues