【问题标题】:tensorflow distributed training hybrid with multi-GPU methodology具有多 GPU 方法的 tensorflow 分布式训练混合
【发布时间】:2017-01-28 11:25:18
【问题描述】:

在使用了当前的分布式训练实现一段时间后,我认为它会将每个 GPU 视为一个单独的 worker。但是,现在一个盒子中有 2~4 个 GPU 很常见。采用单盒多 GPU 方法先计算单盒中的平均梯度,然后跨多个节点同步不是更好吗?这样可以大大减轻 I/O 流量,这一直是数据并行的瓶颈。

有人告诉我,当前的实现可以通过将所有 GPU 作为工作器放在单个盒子中,但我无法弄清楚如何将平均梯度与 SyncReplicasOptimizer 联系起来,因为 SyncReplicasOptimizer 直接将优化器作为输入。

任何人的任何想法?

【问题讨论】:

    标签: machine-learning tensorflow deep-learning distributed multi-gpu


    【解决方案1】:

    分布式 TensorFlow 支持在同一个工作任务中使用多个 GPU。对图像模型执行分布式训练的一种常见方法是在同一个 worker 中跨多个 GPU 执行同步训练,跨 worker 进行异步训练(尽管其他配置也是可能的)。这样你只需将模型参数拉到 Worker 一次,它们就会分布在本地 GPU 中,从而减轻网络带宽的使用。

    为了进行这种训练,许多用户在单个工作器中跨 GPU 执行“图内复制”。这可以在本地 GPU 设备上使用显式循环,例如 the CIFAR-10 example model;或更高级别的库支持,例如 TF-Slim 的 model_deploy() 实用程序。

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2017-04-23
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 2021-01-08
      相关资源
      最近更新 更多