class_docstr: When a function is called multiple times under each tower,
  it becomes hard to keep track of the scope and access those tensors
  in each tower.
  This class provides easy access to the tensors as well as the
  inputs/outputs created in each tower.
class_docstr_tok: ["When","a","function","is","called","multiple","times","under","each","tower",",","it","becomes","hard","to","keep","track","of","the","scope","and","access","those","tensors","in","each","tower",".","This","class","provides","easy","access","to","the","tensors","as","well","as","the","inputs\/outputs","created","in","each","tower","."]
docstr: Get a tensor in this tower. The name argument can be:
  
  1. The name of a tensor/variable without any tower prefix.
  
  2. A name in the input signature, if it is used when building the tower.
  
  In the second case, this method will return the tensor that's used as the corresponding
  input to the tower. Note that this tensor may have a different name (e.g. may be an output of a queue).
docstr_tok: ["Get","a","tensor","in","this","tower",".","The","name","argument","can","be",":","1",".","The","name","of","a","tensor\/variable","without","any","tower","prefix",".","2",".","A","name","in","the","input","signature",",","if","it","is","used","when","building","the","tower",".","In","the","second","case",",","this","method","will","return","the","tensor","that","'s","used","as","the","corresponding","input","to","the","tower",".","Note","that","this","tensor","may","have","a","different","name","(","e.g",".","may","be","an","output","of","a","queue",")","."]
code: def get_tensor(self, name):
      """
      Get a tensor in this tower. The name argument can be:
  
      1. The name of a tensor/variable without any tower prefix.
  
      2. A name in the input signature, if it is used when building the tower.
  
      In the second case, this method will return the tensor that's used as the corresponding
      input to the tower. Note that this tensor may have a different name (e.g. may be an output of a queue).
      """
      name = get_op_tensor_name(name)[1]
      if len(self.ns_name):
          name_with_ns = self.ns_name + "/" + name
      else:
          name_with_ns = name
  
      try:
          ret = get_op_or_tensor_by_name(name_with_ns)
      except KeyError:
          if name in self._extra_tensor_names:
              return self._extra_tensor_names[name]
      else:
          if name in self._extra_tensor_names:
              mapped_tensor = self._extra_tensor_names[name]
              logger.info(
                  "'{}' may refer to both the Tensor/Placeholder '{}' or the input to the tower '{}'.".format(
                      name, ret.name, mapped_tensor.name
                  )
                  + " Assuming it is the input '{}'.".format(
                      mapped_tensor.name
                  )
              )
              return mapped_tensor
          return ret
      # should also allow variables in get_tensor
      return self.get_variable(name)
  
imports: from abc import ABCMeta, abstractmethod, abstractproperty
  import six
  from ..compat import tfv1
  from ..utils import logger
  from ..utils.argtools import call_only_once
  from ..utils.develop import HIDE_DOC
  from ..utils.naming import MOVING_SUMMARY_OPS_KEY
  from .collection import CollectionGuard
  from .common import get_op_or_tensor_by_name, get_op_tensor_name
label_desc: Use image node_id 4 for calling the TowerTensorHandle obj's underlying member method code with example usage: obj.get_tensor(name) and returns: self, ret, mapped_tensor, self