简短版本:我们不能将变量存储在其中一个工作者中而不使用参数服务器吗?在分布式张量流学习中使用参数服务器的原因是什么?
长版本: 我想在张量流中实现神经网络的同步分布式学习。我希望每位工作人员在培训期间都有完整的模型副本。
我读过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)):
为Variaibles? 与参数服务器解决方案相比,如果这样做有缺点吗?