【发布时间】:2018-05-11 11:52:10
【问题描述】:
想象以下场景,其中我有一个模型计算图非常大,不适合单台机器。因此,我想在两台机器之间拆分计算图。此外,我希望进行计算的机器也存储他们修改/读取的变量(我不想设置额外的参数服务器,我假设模型图分区访问的变量集是不相交的)。
您能否提供一个示例,我可以使用分布式 Tensorflow 实现此配置,例如使用原语 tf.device()?
【问题讨论】:
标签: tensorflow
想象以下场景,其中我有一个模型计算图非常大,不适合单台机器。因此,我想在两台机器之间拆分计算图。此外,我希望进行计算的机器也存储他们修改/读取的变量(我不想设置额外的参数服务器,我假设模型图分区访问的变量集是不相交的)。
您能否提供一个示例,我可以使用分布式 Tensorflow 实现此配置,例如使用原语 tf.device()?
【问题讨论】:
标签: tensorflow
查看 tensorflow 网站 (https://www.tensorflow.org/deploy/distributed) 上的说明。
使用tf.device('/job:worker/task:1') 将节点放置在一台或另一台机器上。您可以随意放置它们,只需注意放置在不同机器上的输入将需要通过网络发送数据。
据我所知,您无法摆脱参数服务器。参数服务器只是一个处理变量更新的作业。没有什么可以阻止您在与 tensorflow 相同的机器上运行该作业。因此,您的设置是在两台机器上启动 tensorflow,并在每台机器上放置一个参数服务器。只需确保将变量放置在本地参数服务器上(同样使用 tf.device)。
【讨论】: