.. 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. .. 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 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 } 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. .. code-block:: default from onnx import ModelProto model = ModelProto() with open(example1, 'rb') as fid: content = fid.read() model.ParseFromString(content) We convert it into a graph. .. 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") Then into an image .. code-block:: default import os os.system('dot -O -Tpng graph.dot') .. rst-class:: sphx-glr-script-out Out: .. code-block:: none 0 Which we display... .. code-block:: default import matplotlib.pyplot as plt image = plt.imread("graph.dot.png") plt.imshow(image) .. image:: /auto_examples/images/sphx_glr_plot_pipeline_001.png :alt: plot pipeline :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.434 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 `_