.. 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 Click :ref:`here ` 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. .. contents:: :local: Retrieve a model in JSON format +++++++++++++++++++++++++++++++ That's the most simple way. .. GENERATED FROM PYTHON SOURCE LINES 22-32 .. code-block:: default from onnxruntime.datasets import get_example example1 = get_example("mul_1.onnx") import onnx model = onnx.load(example1) # model is a ModelProto protobuf message print(model) .. rst-class:: sphx-glr-script-out 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.0 float_data: 2.0 float_data: 3.0 float_data: 4.0 float_data: 5.0 float_data: 6.0 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 33-39 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 39-47 .. code-block:: default from onnx import ModelProto 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-54 .. code-block:: default from onnx.tools.net_drawer import GetPydotGraph, GetOpNodeProducer 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 55-56 Then into an image .. GENERATED FROM PYTHON SOURCE LINES 56-59 .. code-block:: default import os os.system('dot -O -Tpng graph.dot') .. rst-class:: sphx-glr-script-out Out: .. code-block:: none 0 .. GENERATED FROM PYTHON SOURCE LINES 60-61 Which we display... .. GENERATED FROM PYTHON SOURCE LINES 61-70 .. code-block:: default import matplotlib.pyplot as plt 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 Out: .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.258 seconds) .. _sphx_glr_download_auto_examples_plot_pipeline.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_pipeline.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_pipeline.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_