.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/plot_pipeline.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_plot_pipeline.py: Draw a pipeline =============== There is no other way to look into one model stored in ONNX format than looking into its node with *onnx*. This example demonstrates how to draw a model and to retrieve it in *json* format. Retrieve a model in JSON format +++++++++++++++++++++++++++++++ That's the most simple way. .. GENERATED FROM PYTHON SOURCE LINES 19-31 .. code-block:: Python from onnxruntime.datasets import get_example example1 = get_example("mul_1.onnx") import onnx # noqa: E402 model = onnx.load(example1) # model is a ModelProto protobuf message print(model) .. rst-class:: sphx-glr-script-out .. code-block:: none ir_version: 3 producer_name: "chenta" graph { node { input: "X" input: "W" output: "Y" name: "mul_1" op_type: "Mul" } name: "mul test" initializer { dims: 3 dims: 2 data_type: 1 float_data: 1 float_data: 2 float_data: 3 float_data: 4 float_data: 5 float_data: 6 name: "W" } input { name: "X" type { tensor_type { elem_type: 1 shape { dim { dim_value: 3 } dim { dim_value: 2 } } } } } output { name: "Y" type { tensor_type { elem_type: 1 shape { dim { dim_value: 3 } dim { dim_value: 2 } } } } } } opset_import { domain: "" version: 7 } .. GENERATED FROM PYTHON SOURCE LINES 32-38 Draw a model with ONNX ++++++++++++++++++++++ We use `net_drawer.py `_ included in *onnx* package. We use *onnx* to load the model in a different way than before. .. GENERATED FROM PYTHON SOURCE LINES 38-47 .. code-block:: Python from onnx import ModelProto # noqa: E402 model = ModelProto() with open(example1, "rb") as fid: content = fid.read() model.ParseFromString(content) .. GENERATED FROM PYTHON SOURCE LINES 48-49 We convert it into a graph. .. GENERATED FROM PYTHON SOURCE LINES 49-56 .. code-block:: Python from onnx.tools.net_drawer import GetOpNodeProducer, GetPydotGraph # noqa: E402 pydot_graph = GetPydotGraph( model.graph, name=model.graph.name, rankdir="LR", node_producer=GetOpNodeProducer("docstring") ) pydot_graph.write_dot("graph.dot") .. GENERATED FROM PYTHON SOURCE LINES 57-58 Then into an image .. GENERATED FROM PYTHON SOURCE LINES 58-62 .. code-block:: Python import os # noqa: E402 os.system("dot -O -Tpng graph.dot") .. rst-class:: sphx-glr-script-out .. code-block:: none 0 .. GENERATED FROM PYTHON SOURCE LINES 63-64 Which we display... .. GENERATED FROM PYTHON SOURCE LINES 64-68 .. code-block:: Python import matplotlib.pyplot as plt # noqa: E402 image = plt.imread("graph.dot.png") plt.imshow(image) .. image-sg:: /auto_examples/images/sphx_glr_plot_pipeline_001.png :alt: plot pipeline :srcset: /auto_examples/images/sphx_glr_plot_pipeline_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.115 seconds) .. _sphx_glr_download_auto_examples_plot_pipeline.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_pipeline.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_pipeline.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_pipeline.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_