Awesome
ssc4onnx
Checker with simple ONNX model structure. Simple Structure Checker for ONNX.
https://github.com/PINTO0309/simple-onnx-processing-tools
<p align="center"> <img src="https://user-images.githubusercontent.com/33194443/170718388-a30d9c72-be08-4d13-b3e6-d089fe3f93da.png" /> </p>Key concept
- Analyzes and displays the structure of huge size models that cannot be displayed by Netron.
1. Setup
1-1. HostPC
### option
$ echo export PATH="~/.local/bin:$PATH" >> ~/.bashrc \
&& source ~/.bashrc
### run
$ pip install -U onnx rich onnxruntime \
&& pip install -U ssc4onnx \
&& python -m pip install onnx_graphsurgeon \
--index-url https://pypi.ngc.nvidia.com
1-2. Docker
https://github.com/PINTO0309/simple-onnx-processing-tools#docker
2. CLI Usage
$ ssc4onnx -h
usage:
ssc4onnx [-h]
-if INPUT_ONNX_FILE_PATH
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.
3. In-script Usage
>>> from ssc4onnx import structure_check
>>> help(structure_check)
Help on function structure_check in module ssc4onnx.onnx_structure_check:
structure_check(
input_onnx_file_path: Union[str, NoneType] = '',
onnx_graph: Union[onnx.onnx_ml_pb2.ModelProto, NoneType] = None
) -> Tuple[Dict[str, int], int]
Parameters
----------
input_onnx_file_path: Optional[str]
Input onnx file path.
Either input_onnx_file_path or onnx_graph must be specified.
Default: ''
onnx_graph: Optional[onnx.ModelProto]
onnx.ModelProto.
Either input_onnx_file_path or onnx_graph must be specified.
onnx_graph If specified, ignore input_onnx_file_path and process onnx_graph.
Returns
-------
op_num: Dict[str, int]
Num of every op
model_size: int
Model byte size
4. CLI Execution
$ ssc4onnx -if deqflow_b_things_opset12_192x320.onnx
5. In-script Execution
from ssc4onnx import structure_check
structure_check(
input_onnx_file_path="deqflow_b_things_opset12_192x320.onnx",
)
6. Sample
https://github.com/PINTO0309/ssc4onnx/releases/download/1.0.6/deqflow_b_things_opset12_192x320.onnx
https://github.com/PINTO0309/ssc4onnx/assets/33194443/fd6a4aa2-9ed5-492b-82ae-1f8306af5119
7. Reference
- https://github.com/onnx/onnx/blob/main/docs/Operators.md
- https://docs.nvidia.com/deeplearning/tensorrt/onnx-graphsurgeon/docs/index.html
- https://github.com/NVIDIA/TensorRT/tree/main/tools/onnx-graphsurgeon
- https://github.com/PINTO0309/simple-onnx-processing-tools
- https://github.com/PINTO0309/PINTO_model_zoo
8. Issues
https://github.com/PINTO0309/simple-onnx-processing-tools/issues