在分布式培训中,SessionRunHook只发生在master中吗?

时间:2017-11-29 01:32:57

标签: tensorflow tensorflow-gpu google-cloud-ml

当使用tf_learn.Experiment(...)接口时,我们可以传入train_monitors和eval_hooks,这些钩子只发生在master中吗?

我试图阅读源代码,它表明它应该在每个session.run(..)上运行钩子。我相信不仅是master而且worker也会运行session.run(...)。但是,从cloud ml的日志结果来看,我只看到这个钩子在master中运行。

你能解释一下吗?有没有关于它的文件?

谢谢!

1 个答案:

答案 0 :(得分:0)

假设您在脚本中使用learn_runner.run,则会调用Experiment上的其他方法,具体取决于节点是主节点还是工作节点:

train_and_evaluate最终会调用train,因此在这两种情况下,train_monitors都会传递给Estimator.train。但是,评估仅在Master上进行,因此eval_hooks仅在那里运行。