code: def tensors_blocked_by_false(ops):
      
      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
docs: 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.).