class_docstr: Model run with Microsoft's onnxruntime using a tensorflow interface.
  
  Attributes:
      network_parameters (ModelParams): The model parameters as batch
              size, input and output sizes.
      onnx_path (str or Path): Path to the onnx model.
      input_names (List[str]): Input names used when the onnx model
          was produced.
      output_names (List[str]): Output names used when the onnx model
          was produced.
class_docstr_tok: ["Model","run","with","Microsoft","'s","onnxruntime","using","a","tensorflow","interface",".","Attributes",":","network_parameters","(","ModelParams",")",":","The","model","parameters","as","batch","size",",","input","and","output","sizes",".","onnx_path","(","str","or","Path",")",":","Path","to","the","onnx","model",".","input_names","(","List","[","str","]",")",":","Input","names","used","when","the","onnx","model","was","produced",".","output_names","(","List","[","str","]",")",":","Output","names","used","when","the","onnx","model","was","produced","."]
docstr: Predict on the input tensors.
  
  Note that the input tensors must be on the same batch. If a sequence
  of tensors is given when the model is expecting a single input tensor
  (with batch size >= 1) an error is raised.
  
  Args:
      input_tensors (Tuple[Tensor]): Input tensors belonging to the same
          batch. The tensors are expected having dimensions
          (batch_size, dim1, dim2, ...).
  
  Returns:
      Tuple[Tensor]: Output tensors. Note that the output tensors does
          not correspond to the prediction on the input tensors with a
          1 to 1 mapping. In fact the output tensors are produced as the
          multiple-output of the model given a (multi-) tensor input.
code: def run(self, *input_tensors: tf.Tensor) -> Tuple[tf.Tensor, ...]:
      """Predict on the input tensors.
  
      Note that the input tensors must be on the same batch. If a sequence
      of tensors is given when the model is expecting a single input tensor
      (with batch size >= 1) an error is raised.
  
      Args:
          input_tensors (Tuple[Tensor]): Input tensors belonging to the same
              batch. The tensors are expected having dimensions
              (batch_size, dim1, dim2, ...).
  
      Returns:
          Tuple[Tensor]: Output tensors. Note that the output tensors does
              not correspond to the prediction on the input tensors with a
              1 to 1 mapping. In fact the output tensors are produced as the
              multiple-output of the model given a (multi-) tensor input.
      """
      if self.device.type is DeviceType.GPU and not self._is_gpu_ready:
          self.set_model_on_gpu()
      input_arrays = (
          input_tensor.numpy()
          if not isinstance(input_tensor, np.ndarray)
          else input_tensor
          for input_tensor in input_tensors
      )
      outputs = self._predict_arrays(input_arrays)
      # noinspection PyTypeChecker
      return tuple(tf.convert_to_tensor(output) for output in outputs)
  
imports: import multiprocessing
  import os
  import shutil
  from abc import ABC
  from pathlib import Path
  from typing import Union, List, Generator, Tuple, Dict, Type
  import cpuinfo
  import numpy
  from loguru import logger
  from nebullvm.config import ONNX_FILENAMES, ONNX_PROVIDERS
  from nebullvm.core.models import QuantizationType, Device, DeviceType, ModelParams, DeepLearningFramework
  from nebullvm.operations.inference_learners.base import BaseInferenceLearner, LearnerMetadata, PytorchBaseInferenceLearner, TensorflowBaseInferenceLearner, NumpyBaseInferenceLearner
  from nebullvm.operations.optimizations.compilers.utils import tensorrt_is_available
  from nebullvm.optional_modules.onnx import onnx
  from nebullvm.optional_modules.onnxruntime import onnxruntime
  from nebullvm.optional_modules.tensorflow import tensorflow
  from nebullvm.optional_modules.torch import torch
  from nebullvm.tools.transformations import MultiStageTransformation
label_desc: Use image node_id 1 for calling the TensorflowONNXInferenceLearner obj's underlying member method code with example usage: obj.run() and returns: tuple