docstr: Args:
      gpus (list[int]): list of GPU ids.
      server (tf.train.Server): the server with ps and workers.
docstr_tok: ["Args",":","gpus","(","list","[","int","]",")",":","list","of","GPU","ids",".","server","(","tf.train.Server",")",":","the","server","with","ps","and","workers","."]
code: def __init__(self, gpus, server):
      """
      Args:
          gpus (list[int]): list of GPU ids.
          server (tf.train.Server): the server with ps and workers.
      """
      super(DistributedTrainerReplicated, self).__init__(gpus, server)
      assert self.job_name in ["ps", "worker"], self.job_name
      if self.job_name == "ps":
          self.join()
  
      self._builder = DistributedReplicatedBuilder(gpus, server)
      self.is_chief = self._builder.is_chief
  
imports: import multiprocessing
  import os
  import sys
  import tensorflow
  from tensorpack.compat import tfv1
  from ..callbacks import CallbackFactory, RunOp
  from ..graph_builder.distributed import DistributedParameterServerBuilder, DistributedReplicatedBuilder
  from ..graph_builder.training import AsyncMultiGPUBuilder, SyncMultiGPUParameterServerBuilder, SyncMultiGPUReplicatedBuilder
  from ..graph_builder.utils import override_to_local_variable
  from ..input_source import FeedfreeInput, QueueInput
  from ..tfutils import get_global_step_var
  from ..tfutils.common import get_tf_version_tuple
  from ..tfutils.distributed import get_distributed_session_creator
  from ..tfutils.sesscreate import NewSessionCreator
  from ..tfutils.tower import TrainTowerContext
  from ..utils import logger
  from ..utils.argtools import map_arg
  from ..utils.develop import HIDE_DOC, deprecated
  from .tower import SingleCostTrainer
label_desc: Use image node_id 1 to create a new DistributedTrainerReplicated object from inherited base classes: DistributedTrainerBase with example: obj = DistributedTrainerReplicated(gpus, server)