class_docstr: Data-parallel training with async update.
  It builds one tower on each GPU with shared variable scope.
  Every tower computes the gradients and independently applies them to the
  variables, without synchronizing and averaging across towers.
class_docstr_tok: ["Data-parallel","training","with","async","update",".","It","builds","one","tower","on","each","GPU","with","shared","variable","scope",".","Every","tower","computes","the","gradients","and","independently","applies","them","to","the","variables",",","without","synchronizing","and","averaging","across","towers","."]
docstr: Args:
      towers(list[int]): list of GPU ids.
      scale_gradient (bool): if True, will scale each gradient by ``1.0/nr_gpu``.
docstr_tok: ["Args",":","towers","(","list","[","int","]",")",":","list","of","GPU","ids",".","scale_gradient","(","bool",")",":","if","True",",","will","scale","each","gradient","by","``","1.0\/nr_gpu","``","."]
code: def __init__(self, towers, scale_gradient=True):
      """
      Args:
          towers(list[int]): list of GPU ids.
          scale_gradient (bool): if True, will scale each gradient by ``1.0/nr_gpu``.
      """
      super(AsyncMultiGPUBuilder, self).__init__(towers)
      self._scale_gradient = scale_gradient
  
imports: import copy
  import pprint
  import re
  from abc import ABCMeta, abstractmethod
  from contextlib import contextmanager
  import six
  import tensorflow
  from ..compat import tfv1
  from ..tfutils.common import get_tf_version_tuple
  from ..tfutils.gradproc import ScaleGradient
  from ..tfutils.tower import TrainTowerContext
  from ..utils import logger
  from ..utils.develop import HIDE_DOC
  from .utils import GradientPacker, LeastLoadedDeviceSetter, aggregate_grads_colocate, allreduce_grads_naive, allreduce_grads, allreduce_grads_hierarchical, merge_grad_list, override_to_local_variable, split_grad_list
label_desc: Use image node_id 1 to create a new AsyncMultiGPUBuilder object from inherited base classes: DataParallelBuilder with example: obj = AsyncMultiGPUBuilder(towers, scale_gradient)