class_docstr: CoreML internal representation of a torch IR graph. A torch._C.Graph
  object is not an ideal structure to use in converting to CoreML. Conversion
  to an InternalTorchIRGraph is inserted between the original graph and the
  final CoreML model to address several issues:
      1. A torch._C.graph is hard to work with. For example, its .inputs()
        and .outputs() functions return iterators, so the only way to
        determine the number of inputs/outputs is by counting to the end.
        There are other examples of why the torch structure is hard to work
        with, and this structure alleviates those issues.
      2. torch._C.graph is an internal API and so we can't count on its
        stability. By inserting a layer in between, we can handle any changes
        to torch._C.graph here and isolate the ops code that processes the
        graph.
      3. torch._C.graph does not expose a Python constructor. This makes
        it impossible to write unit tests that isolate specific ops since
        they have to come from actually converting a PyTorch graph. With an
        internal structure, we can directly build the test cases we need for
        unit testing.
code: def __repr__(self):
      return str(self)
  
imports: from collections import OrderedDict
  import torch
  from torch.fx.node import Node
  from coremltools import _logger
  from .edgeir_utils import extract_inputs_from_edge_program
  from .torchscript_utils import _expand_and_optimize_ir
label_desc: Use image node_id 6 for calling the InternalTorchIRGraph obj's underlying member method code with example usage: obj.__repr__() and returns: str