code: def __init__(self, name=None):
      self.name = name if name is not None else ""
      self.context = {}
      self.graphs = {}
  
      # TF loops are represented as functions, so nested loops becomes
      # stacked functions. Stacked functions are translated to nested
      # blocks in Program, like
      #
      # while_loop(loop_vars=(%a, %b))
      #  cond_block1(%a.x, %b.x) {
      #    ...some ops
      #  } -> (%bool_var1)
      #  body_block1(%a.x, %b.x) {
      #    %ret_axx = while_loop(loop_vars=(%a.x,))
      #      cond_block2(%a.x.x) {
      #        ...some ops
      #      } -> (%bool_var2)
      #      body_block2(%a.x.x) {
      #       ...some ops
      #      } -> (%new_a.x.x)
      #    } -> (%ret_axx)
      #    ....some ops using %ret_a
      #  } -> (%ret_ax, %ret_bx)
      #
      # During the translation of cond_block2, we'd have func_input_stack
      #
      # (%a.x.x,)
      # (%a.x, %b.x)
      #
      # where [%a.x.x] would be unstacked once cond_block2 is done.
      self.func_input_stack = []
  
imports: from coremltools import _logger
  from coremltools.converters._profile_utils import _profile
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.input_types import ImageType, InputType, RangeDim
  from coremltools.converters.mil.input_types import Shape
  from coremltools.converters.mil.input_types import TensorType, _get_shaping_class
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Function, Program, get_new_symbol, types
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
  from coremltools.converters.mil.mil.var import Var
  from .._utils import get_output_names
  from .basic_graph_ops import simple_topsort
  from .convert_utils import convert_graph
label_desc: Use image node_id 1 to create a new TranscriptionContext object  with example: obj = TranscriptionContext(name)