【发布时间】:2017-01-26 07:37:21
【问题描述】:
短版:我们不能在其中一个worker中存储变量而不使用参数服务器吗?
加长版: 我想在tensorflow中实现神经网络的同步分布式学习。我希望每个工人在训练期间都拥有模型的完整副本。
我读过distributed tensorflow tutorial 和code of distributed training imagenet,但不明白我们为什么需要参数服务器。
我看到它们用于存储变量的值,并且 replica_device_setter 负责变量在参数服务器之间均匀分布(可能它做了更多的事情,我无法完全理解代码)。
问题是:我们为什么不使用其中一个工人来存储变量?如果我使用
,我会实现吗?with tf.device('/job:worker/task:0/cpu:0'):
而不是
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
对于变量? 如果这样可行,与使用参数服务器的解决方案相比是否有缺点?
【问题讨论】: