.. 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_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:: default
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:: default
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:: default
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.
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.047 seconds)
.. _sphx_glr_download_auto_examples_plot_backend.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_backend.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: plot_backend.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
`Gallery generated by Sphinx-Gallery `_