class_docstr: The function can be instantiated but only at execution time.
  An instance of OpFunction is created everytime to node is executed.
  This is needed when the schema of an operator defines a context dependant function.
class_docstr_tok: ["The","function","can","be","instantiated","but","only","at","execution","time",".","An","instance","of","OpFunction","is","created","everytime","to","node","is","executed",".","This","is","needed","when","the","schema","of","an","operator","defines","a","context","dependant","function","."]
code: def _run(self, *inputs, **kwargs):
      # Input types are known. They are used to properly
      # created the body for this operator.
      types = []
      for t in inputs:
          try:
              ttype = np_dtype_to_tensor_dtype(t.dtype)
          except KeyError as e:
              if t.dtype == float8e4m3fn:
                  ttype = TensorProto.FLOAT8E4M3FN  # type: ignore[attr-defined]
              elif t.dtype == float8e4m3fnuz:
                  ttype = TensorProto.FLOAT8E4M3FNUZ  # type: ignore[attr-defined]
              elif t.dtype == float8e5m2:
                  ttype = TensorProto.FLOAT8E5M2  # type: ignore[attr-defined]
              elif t.dtype == float8e5m2fnuz:
                  ttype = TensorProto.FLOAT8E5M2FNUZ  # type: ignore[attr-defined]
              elif t.dtype == bfloat16:
                  ttype = TensorProto.BLOFAT16  # type: ignore[attr-defined]
              elif t.dtype == uint4:
                  ttype = TensorProto.UINT4  # type: ignore[attr-defined]
              elif t.dtype == int4:
                  ttype = TensorProto.INT4  # type: ignore[attr-defined]
              else:
                  raise e
          types.append(make_tensor_type_proto(ttype, t.shape))
      cl = self.parent._load_impl(self.onnx_node, types)
      inst = cl(self.onnx_node, self.run_params)
      return self._run_impl(inst.impl_, *inputs, **kwargs)
  
imports: from __future__ import annotations
  import abc
  from typing import Any, ClassVar, Iterable
  import numpy
  from onnx import TensorProto
  from onnx.defs import get_all_schemas_with_history, get_schema, onnx_opset_version
  from onnx.helper import make_node, make_tensor_type_proto, np_dtype_to_tensor_dtype
  from onnx.numpy_helper import to_array, unpack_int4
  from onnx.onnx_pb import AttributeProto, GraphProto, NodeProto, TypeProto
  from onnx.reference.custom_element_types import bfloat16, float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4, uint4
label_desc: Use image node_id 2 for calling the OpFunctionContextDependant obj's underlying member method code with example usage: obj._run() and returns: self