class_docstr: Information required to execute torch.fx.GraphModule using onnxruntime.InferenceSession
class_docstr_tok: ["Information","required","to","execute","torch.fx.GraphModule","using","onnxruntime.InferenceSession"]
code: def __init__(
      self,
      session: "onnxruntime.InferenceSession",
      input_names: Tuple[str, ...],
      input_value_infos: Tuple["onnx.ValueInfoProto", ...],  # type: ignore[name-defined]
      output_names: Tuple[str, ...],
      output_value_infos: Tuple["onnx.ValueInfoProto", ...],  # type: ignore[name-defined]
      input_devices: Tuple["ORTC.OrtDevice", ...],
      output_devices: Tuple["ORTC.OrtDevice", ...],
      example_outputs: Union[Tuple[torch.Tensor, ...], torch.Tensor],
  ):
      # Carrier of ONNX model and its executor.
      self.session: onnxruntime.InferenceSession = session
      # For the ONNX model stored in self.session, self.input_names[i] is the
      # name of the i-th positional input.
      self.input_names: Tuple[str, ...] = input_names
      # self.input_name[i]'s type information is stored in self.input_value_infos[i].
      self.input_value_infos: Tuple[onnx.ValueInfoProto, ...] = input_value_infos  # type: ignore[name-defined]
      # Similar to self.input_names, but for outputs.
      self.output_names: Tuple[str, ...] = output_names
      # Similar to self.input_value_infos but for outputs.
      self.output_value_infos: Tuple[onnx.ValueInfoProto, ...] = output_value_infos  # type: ignore[name-defined]
      # For the ONNX model stored in self.session, self.input_devices[i] is the
      # i-th positional input's device.
      self.input_devices: Tuple["ORTC.OrtDevice", ...] = input_devices
      # Similar to self.input_devices, but for outputs.
      self.output_devices: Tuple["ORTC.OrtDevice", ...] = output_devices
      # This is the outputs of executing the original torch.fx.GraphModule with example inputs
      # (i.e., args passed into OrtBackend._ort_acclerated_call).
      self.example_outputs: Union[
          Tuple[torch.Tensor, ...], torch.Tensor
      ] = example_outputs
  
imports: import dataclasses
  import importlib
  import logging
  from typing import Any, Dict, Final, List, Mapping, Optional, Sequence, Set, Tuple, Union
  from typing_extensions import TypeAlias
  import torch
  import torch._C
  import torch._ops
  import torch._prims.executor
  import torch.fx
  from torch._subclasses.fake_tensor import FakeTensor
  from torch.fx._compatibility import compatibility
  from torch.fx.passes.fake_tensor_prop import FakeTensorProp
  from torch.fx.passes.operator_support import OperatorSupport
  from torch.fx.passes.tools_common import CALLABLE_NODE_OPS
  from torch.utils import _pytree
label_desc: Use image node_id 1 to create a new OrtExecutionInfoPerSession object  with example: obj = OrtExecutionInfoPerSession(session, input_names, input_value_infos, output_names, output_value_infos, input_devices, output_devices, example_outputs)