当使用tf_learn.Experiment(...)接口时,我们可以传入train_monitors和eval_hooks,这些钩子只发生在master中吗?
我试图阅读源代码,它表明它应该在每个session.run(..)上运行钩子。我相信不仅是master而且worker也会运行session.run(...)。但是,从cloud ml的日志结果来看,我只看到这个钩子在master中运行。
你能解释一下吗?有没有关于它的文件?
谢谢!
答案 0 :(得分:0)
假设您在脚本中使用learn_runner.run
,则会调用Experiment
上的其他方法,具体取决于节点是主节点还是工作节点:
train_and_evaluate
被调用。train
被调用。 train_and_evaluate
最终会调用train
,因此在这两种情况下,train_monitors
都会传递给Estimator.train
。但是,评估仅在Master上进行,因此eval_hooks
仅在那里运行。