kol*_*v93 10 distributed tensorflow
简短版本:我们不能将变量存储在其中一个worker中而不能使用参数服务器吗?
长版: 我想在tensorflow中实现神经网络的同步分布式学习.我希望每个工人在培训期间都能获得完整的模型副本.
我已经阅读了分布式tensorflow教程和分布式培训imagenet的代码,但我们不知道为什么我们需要参数服务器.
我看到它们用于存储变量的值,replica_device_setter注意变量在参数服务器之间均匀分布(可能它做了更多的事情,我无法完全理解代码).
问题是:为什么我们不使用其中一个工人来存储变量?如果我使用,我会实现吗?
with tf.device('/job:worker/task:0/cpu:0'):
Run Code Online (Sandbox Code Playgroud)
代替
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
Run Code Online (Sandbox Code Playgroud)
对于变量?如果与使用参数服务器的解决方案相比,这有效吗?
Yar*_*tov 21
使用参数服务器可以为您提供更好的网络利用率,并允许您将模型扩展到更多计算机.
一个具体的例子,假设你有250M参数,每个工人计算梯度需要1秒,并且有10个工人.这意味着每个工作人员必须每秒向9个其他工作人员发送/接收1 GB数据,这对每个工作人员需要72 Gbps全双工网络容量,这是不切实际的.

更现实的是,每个工作人员可以拥有10 Gbps的网络容量.通过使用分割8台计算机的参数服务器来防止网络瓶颈.每个工人机器与每个参数机器通信1/8参数.

| 归档时间: |
|
| 查看次数: |
5867 次 |
| 最近记录: |