class_docstr: A context where the current model is built in.
  You need to use :func:`TowerContext` to create a :class:`BaseTowerContext`.
class_docstr_tok: ["A","context","where","the","current","model","is","built","in",".","You","need","to","use",":","func",":","`","TowerContext","`","to","create","a",":","class",":","`","BaseTowerContext","`","."]
docstr: Returns the ns and vs for this tower.
docstr_tok: ["Returns","the","ns","and","vs","for","this","tower","."]
code: def _get_scopes(self):
      """
      Returns the ns and vs for this tower.
      """
      if not len(self._name):
          # work around https://github.com/tensorflow/tensorflow/issues/14703
          return [tf.variable_scope(tf.get_variable_scope())]
  
      ret = []
  
      if len(self._vs_name):
          ret.append(tf.variable_scope(self._vs_name))
      else:
          # caller should have handled reuse outside of TowerContext
          ret.append(tf.variable_scope(tf.get_variable_scope()))
  
      # always clear existing ns  # TODO check existing ns
      if len(self._name):
          ret.append(tf.name_scope(self._name + "/"))
      return ret
  
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 8 for calling the BaseTowerContext obj's underlying member method code with example usage: obj._get_scopes() and returns: ret, list