code: def tensors_blocked_by_false(ops):
      """Follows a set of ops assuming their value is False and find blocked Switch paths.
  
      This is used to prune away parts of the model graph that are only used during the training
      phase (like dropout, batch norm, etc.).
      """
      blocked = []
  
      def recurse(op):
          if op.type == "Switch":
              blocked.append(
                  op.outputs[1]
              )  # the true path is blocked since we assume the ops we trace are False
          else:
              for out in op.outputs:
                  for c in out.consumers():
                      recurse(c)
  
      for op in ops:
          recurse(op)
  
      return blocked
  
imports: import warnings
  import numpy
  from packaging import version
  from ...utils._exceptions import DimensionError
  from .._explainer import Explainer
  from ..tf_utils import _get_graph, _get_model_inputs, _get_model_output, _get_session
  from .deep_utils import _check_additivity
label_desc: Use image node_id 2 for calling a global function with example usage: tensors_blocked_by_false(ops) and returns: blocked