code: def compatible_shapes(tf_shape, inf_shape):
      def compare_elem(dt, ds):
          if dt is None or dt < 0:
              return True
          elif dt == ds:
              return True
          else:
              return False
  
      if tf_shape is None or any_variadic(inf_shape):
          return True
      else:
          return all(
              compare_elem(dt, ds)
              for dt, ds in zip(tf_shape, inf_shape)
          )
  
file_path: turicreate/src/external/coremltools_wrap/coremltools/coremltools/converters/mil/frontend/tensorflow/convert_utils.py
imports: import logging
  from .basic_graph_ops import topsort
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic, any_variadic
  from coremltools.converters.mil.mil import types
  from .tf_op_registry import _TF_OPS_REGISTRY
  from coremltools.converters.mil.mil.var import ListVar
  from collections import defaultdict
  from tqdm import tqdm
label_desc: Use image node_id 1 for calling a global function with example usage: compatible_shapes(tf_shape, inf_shape) and returns: True, all, True, True, False