'Args:
tower_name (str): The name scope of the tower.
is_training (bool): if None, automatically determine from tower_name.
index (int): index of this tower, only used in training.
use_vs (bool): Open a variable scope with this name.'

def __init__(self, tower_name, is_training=None, index=0, use_vs=False):

    self._name = tower_name
    self._is_training = bool(is_training)
    if (not self._is_training):
        assert ((index == 0) and (not use_vs)), 'use_vs    and    index    are    only    used    in    training!'
    self._index = int(index)
    if use_vs:
        self._vs_name = self._name
    else:
        self._vs_name = ''
    if self.has_own_variables:
        assert (not tf.get_variable_scope().reuse), 'reuse=True    in    tower    {}!'.format(tower_name)
