class_docstr: Ancestor to all operators in this subfolder.
  
  Args:
      onnx_node: `onnx` node
      run_params: additional parameters such as `verbose`, `opsets`
          (it can be more than one if the operator has a subgraph),
          `log` for a logging function
      schema: operator schema
class_docstr_tok: ["Ancestor","to","all","operators","in","this","subfolder",".","Args",":","onnx_node",":","`","onnx","`","node","run_params",":","additional","parameters","such","as","`","verbose","`",",","`","opsets","`","(","it","can","be","more","than","one","if","the","operator","has","a","subgraph",")",",","`","log","`","for","a","logging","function","schema",":","operator","schema"]
code: def __init__(
      self,
      onnx_node: NodeProto,
      run_params: dict[str, Any],
      schema: Any = None,
  ):
      if not isinstance(run_params, dict):
          raise TypeError(
              f"run_params must be a dictionary not {type(run_params)}."
          )
      for att in ["opsets", "new_ops"]:
          if att not in run_params:
              raise RuntimeError(
                  f"Attribute {att!r} must be in run_params, only "
                  f"{sorted(run_params)} was found."
              )
      if "log" not in run_params:
          raise KeyError("run_params must contains key 'log'.")
      self.onnx_node = onnx_node
      self.run_params = run_params
      if schema is None:
          if hasattr(self.__class__, "op_schema"):
              self._schema = self.__class__.op_schema
          elif self.__class__.__name__ in _schemas:
              self._schema = _schemas[self.__class__.__name__]
          elif onnx_node.op_type in _schemas:
              self._schema = _schemas[onnx_node.op_type]
          else:
              self._schema = None  # type: ignore
      else:
          self._schema = schema
      self.has_subgraph = False
      self._load_attributes()
  
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 1 to create a new OpRun object from inherited base classes: abc with example: obj = OpRun(onnx_node, run_params, schema)