.. 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_backend.py: .. _l-example-backend-api: ONNX Runtime Backend for ONNX ============================= *ONNX Runtime* extends the `onnx backend API `_ to run predictions using this runtime. Let's use the API to compute the prediction of a simple logistic regression model. .. code-block:: python import numpy as np from onnxruntime import datasets from onnxruntime.capi.onnxruntime_pybind11_state import InvalidArgument import onnxruntime.backend as backend from onnx import load name = datasets.get_example("logreg_iris.onnx") model = load(name) rep = backend.prepare(model, 'CPU') x = np.array([[-1.0, -2.0]], dtype=np.float32) try: label, proba = rep.run(x) print("label={}".format(label)) print("probabilities={}".format(proba)) except (RuntimeError, InvalidArgument) as e: print(e) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Got invalid dimensions for input: float_input for the following indices index: 0 Got: 1 Expected: 3 Please fix either the inputs or the model. The device depends on how the package was compiled, GPU or CPU. .. code-block:: python from onnxruntime import get_device print(get_device()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none CPU The backend can also directly load the model without using *onnx*. .. code-block:: python rep = backend.prepare(name, 'CPU') x = np.array([[-1.0, -2.0]], dtype=np.float32) try: label, proba = rep.run(x) print("label={}".format(label)) print("probabilities={}".format(proba)) except (RuntimeError, InvalidArgument) as e: print(e) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Got invalid dimensions for input: float_input for the following indices index: 0 Got: 1 Expected: 3 Please fix either the inputs or the model. The backend API is implemented by other frameworks and makes it easier to switch between multiple runtimes with the same API. **Total running time of the script:** ( 0 minutes 0.025 seconds) .. _sphx_glr_download_auto_examples_plot_backend.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download :download:`Download Python source code: plot_backend.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: plot_backend.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_