【问题标题】:TensorFlow in-graph replication exampleTensorFlow 图内复制示例
【发布时间】:2016-09-23 10:23:02
【问题描述】:

我想在具有多个 ps 和 worker 的多 GPU 集群中试验 TensorFlow 的图内复制。 CIFAR-10 multi GPU example 显示在单台机器上的图形同步复制。有没有像example trainer program for between-graph training 这样我可以参考的示例?

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    一般来说,对于分布式训练,我们更喜欢图间复制而不是图内复制,因为图间复制比图内复制(当前的实现)更具可扩展性。图内复制的主要问题是,它目前需要您为网络构建图结构的多个副本,并将它们具体化在一个位置(即分布式主节点)。当你有数百个副本时,这会将主服务器变成瓶颈;相比之下,在图间复制中,每个副本只有一个在本地运行的图副本。

    图间复制的缺点是它使同步训练更加困难,因为您现在有多个训练循环要同步,而不是一个循环和一个训练操作。 distributed Inception trainer 中使用的 tf.train.SyncReplicasOptimizer 提供了一种使用图间复制进行同步训练的方法。

    但是,如果您想尝试图内复制,可以通过修改 CIFAR-10 示例中的 the line that assigns a device to each of the towers 来实现。您可以在不同的工作任务中将塔分配给不同的 GPU,而不是将塔分配给同一进程中的不同 GPU。例如:

    worker_devices = ["/job:worker/task:0/gpu:0", ..., "/job:worker/task:7/gpu:0"]
    
    for worker_device in worker_devices:
      with tf.device(worker_device):
        # Execute code for building the model replica.
    

    【讨论】:

    猜你喜欢
    • 2017-08-19
    • 2017-09-15
    • 2020-03-07
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2017-06-11
    相关资源
    最近更新 更多