【问题标题】:Is Tensorflow's Between-graph replication an example of data parallelism?Tensorflow 的图之间复制是数据并行的一个例子吗?
【发布时间】:2018-11-30 01:40:07
【问题描述】:

我已阅读distributed tensorflow documentationthis answer

根据this,在数据并行方法中:

  • 该算法在各个内核之间分配数据。
  • 每个核心独立地尝试估计相同的参数
  • 然后,核心相互交换它们的估计值,以便为该步骤得出正确的估计值。

在模型并行方法中:

  • 算法向所有内核发送相同的数据。
  • 每个核心负责估计不同的参数
  • 然后核心相互交换它们的估计值,以得出所有参数的正确估计值。

In-graph replicationBetween-graph replication 与这些方法有何关联?

This article 说:

例如,网络中的不同层可以并行训练 在不同的 GPU 上。这种训练过程通常被称为“模型 并行”(或 TensorFlow 中的“图内复制” 文档)。

还有:

在“数据并行”(或“图间复制”)中 TensorFlow 文档),您对每个设备使用相同的模型, 但是使用不同的训练样本在每个设备中训练模型。

准确吗?

来自 tensorflow 文档页面中链接的 Tensorflow DevSummit video 看起来数据被拆分并分发给每个工作人员。那么In-graph replication 不是遵循数据并行方法吗?

【问题讨论】:

  • 在我的理解中,图内和图间的区别在于您在一台服务器或集群中的所有服务器上运行代码来构建依赖关系图(也就是您的模型)的位置。在大型集群中,图之间不会在单个服务器上出现瓶颈,并且是首选。这两种方法都允许您(用户)运行您定义的任何操作,无论是数据并行方法、分布式模型还是介于两者之间的东西。由于我没有对此进行编码,因此我会让其他人回答,以防我的理解有误。

标签: python tensorflow distributed


【解决方案1】:

图内复制和图间复制与数据并行性和模型并行性没有直接关系。数据并行性和模型并行性是将并行化算法分为两类的术语,如您链接的 quora 答案中所述。但是图内复制和图间复制是在 tensorflow 中实现并行的两种方式。例如,数据并行可以通过图内复制和图间复制来实现。

如视频所示,图内复制是通过将单个图的不同部分分配给不同的设备来实现的。在图之间的复制中,有多个图并行运行,这是通过使用分布式张量流来实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多