tensorflow分布式异步培训:两名工人打印同一全局步骤的日志

tensorflow分布式异步培训:两名工人打印同一全局步骤的日志,tensorflow,Tensorflow,我将按照此链接创建分布式异步多gpu培训 每10个培训步骤,我都会打印出带有损失值、全局步骤值等的培训日志。然而,我在日志中发现,有时两名员工会打印出相同的全局步骤,从日志下方可以看出,我没想到会发生这种情况 expr_dist_async_b32.worker1.log:2018-06-12 00:09:59 Worker 1: step 13 (global step 50), sample prob 0.100000, train loss = 3.033742, lrate=0.000

我将按照此链接创建分布式异步多gpu培训

每10个培训步骤,我都会打印出带有损失值、全局步骤值等的培训日志。然而,我在日志中发现,有时两名员工会打印出相同的全局步骤,从日志下方可以看出,我没想到会发生这种情况

expr_dist_async_b32.worker1.log:2018-06-12 00:09:59 Worker 1: step 13 (global step 50), sample prob 0.100000, train loss = 3.033742, lrate=0.000107, norm=1.311264
expr_dist_async_b32.worker2.log:2018-06-12 00:09:59 Worker 2: step 13 (global step 50), sample prob 0.100000, train loss = 3.060724, lrate=0.000107, norm=1.311264
expr_dist_async_b32.worker3.log:2018-06-12 00:10:08 Worker 3: step 16 (global step 60), sample prob 0.100000, train loss = 2.913497, lrate=0.000108, norm=1.034301
expr_dist_async_b32.worker2.log:2018-06-12 00:10:15 Worker 2: step 18 (global step 70), sample prob 0.100000, train loss = 2.913340, lrate=0.000109, norm=0.895563
expr_dist_async_b32.worker3.log:2018-06-12 00:10:25 Worker 3: step 21 (global step 80), sample prob 0.100000, train loss = 2.924278, lrate=0.000111, norm=1.006683
有人知道为什么会这样吗


谢谢

我相信在这个例子中会发生以下情况

全局_步骤变量是在参数服务器上创建的。每个worker在启动时,将其与所有其他变量一起使用。每个worker都有一个优化器,在运行时,该优化器计算全局步长的梯度和增量。梯度和增量操作被发送到参数服务器。这些操作在ps上执行,工人获得结果值

在此设置中,如果您不选择同步培训,您可以在workers上看到几乎任何内容。如果两个工人同时发送他们的更新,他们都可以返回全局_步骤的相同结果值