分布式tensorflow注意事项
版本 tensorflow0.11.0
适用于 between-graph
&synchronous
(1) 一定要指定 chief task
(2) chief task
要增加两个op
:
init_token_op = opt.get_init_tokens_op()
chief_queue_runner = opt.get_chief_queue_runner()
(3) chief task
要执行上面两个op
:
sv.start_queue_runners(sess, [chief_queue_runner])
sess.run(init_token_op)
(4) 使用 sv.prepare_or_wait_for_session
创建sess
的时候,一定不要使用with block
# wrong
with sv.prepare_or_wait_for_session(server.target) as sess:
...
会出现错误: 只有chief task
在训练,other task
一直打印start master session...
,不知是什么原因.
# right
sess = sv.prepare_or_wait_for_session(server.target)
(5) opt.minimize()
或opt.apply_gradients()
的时候一定要传入global_step
(用来同步的)
(6) 创建sv
的时候,一定要传入logdir
(共享文件夹).简便方法:传入log_dir = tempfile.mktemp()