code: def _is_trainable(tensor):
      """Returns whether the given tensor is trainable."""
      if not backprop_util.IsTrainable(tensor):
          return False
  
      # Special case: untrainable accumulator output. The gradients algorithm
      # doesn't know about tensor lists of untrainable elements. In theory the
      # tensor list gradient functions should return None as appropriate, but
      # because we can't return None from the gradient function we filter out
      # untrainable accumulator output here to avoid computing the gradient at all.
      if (
          tensor.op.type == "TensorListPopBack"
          and tensor.value_index == 0
      ):
          assert tensor.dtype == dtypes.variant
          element_type = tensor.op.get_attr("element_dtype")
          return backprop_util.IsTrainable(element_type)
  
      return True
  
imports: import collections
  from tensorflow.core.framework import attr_value_pb2
  from tensorflow.python.client import pywrap_tf_session
  from tensorflow.python.eager import backprop_util
  from tensorflow.python.framework import auto_control_deps_utils
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import func_graph
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import control_flow_util
  from tensorflow.python.ops import control_flow_util_v2
  from tensorflow.python.ops import default_gradient
  from tensorflow.python.ops import gen_functional_ops
  from tensorflow.python.ops import gen_resource_variable_ops
  from tensorflow.python.ops import gradients_util
  from tensorflow.python.ops import handle_data_util
  from tensorflow.python.ops import list_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import tensor_array_ops
  from tensorflow.python.ops import while_v2_indexed_slices_rewriter
  from tensorflow.python.util import compat
  from tensorflow.python.util import nest
  from tensorflow.python.util import object_identity
  from tensorflow.python.util import variable_utils
label_desc: Use image node_id 7 for calling a global function with example usage: _is_trainable(tensor) and returns: True, False, backprop_util