【发布时间】:2016-08-14 06:10:55
【问题描述】:
我使用两个工人/副本和一个参数服务器。喜欢
--ps_hosts='hosta.com:2222' --worker_hosts='hosta.com:2223,hostb.com:2223'
使用 tf.train.SyncReplicasOptimizer 喜欢
opt = tf.train.SyncReplicasOptimizer(
opt,
replicas_to_aggregate=2,
replica_id=FLAGS.task_id,
total_num_replicas=2,
variables_to_average=variables_to_average)
由于跨机器网络通信,从日志中我看到 worker0(hosta.com:2223) 比 worker1(hostb.com:2223) 快得多。 看起来 worker0 没有等待 worker1 的渐变。即使我杀死了worker1的工作,worker0仍在处理中。而且worker0有很多重复的日志,比如
INFO:tensorflow:Worker 0: 2016-04-21 03:24:02.659749: step 29010, loss = 0.40(812.0 examples/sec; 0.315 sec/batch)
INFO:tensorflow:Worker 0: 2016-04-21 03:24:02.990509: step 29010, loss = 0.59(775.3 examples/sec; 0.330 sec/batch)
INFO:tensorflow:Worker 0: 2016-04-21 03:24:04.650522: step 29013, loss = 0.56(774.0 examples/sec; 0.331 sec/batch)
INFO:tensorflow:Worker 0: 2016-04-21 03:24:04.989555: step 29013, loss = 0.47(756.3 examples/sec; 0.338 sec/batch)
INFO:tensorflow:Worker 0: 2016-04-21 03:24:06.549120: step 29016, loss = 0.49(816.6 examples/sec; 0.313 sec/batch)
INFO:tensorflow:Worker 0: 2016-04-21 03:24:06.867229: step 29016, loss = 0.48(806.1 examples/sec; 0.318 sec/batch)
那么,tf.train.SyncReplicasOptimizer 不应该挂断并等待所有的 replicas_to_aggregate 工作人员吗?
【问题讨论】:
标签: distributed tensorflow synchronized