code: def _check_compatible(spec, tensor, ignore_outer_dims=True):
      """Checks if `spec` is compatible with `tensor`, maybe ignoring outer dims."""
      if ignore_outer_dims:
          tensor = tensor_spec.remove_outer_dims_nest(
              tensor, tensor.shape.ndims - spec.shape.ndims
          )
      if not spec.is_compatible_with(tensor):
          raise ValueError(
              "Tensor is incompatible with spec. spec = {0}, tensor = {1}".format(
                  spec, tensor
              )
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import functools
  import os
  from typing import Any, Callable, Dict, Tuple, Optional, Text, cast, Sequence
  from absl import logging
  import tensorflow
  import tensorflow_probability
  from tf_agents.policies import tf_policy
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import nest_utils
  from tensorflow.python.eager import def_function
label_desc: Use image node_id 4 for calling a global function with example usage: _check_compatible(spec, tensor, ignore_outer_dims) without return types