2017-05-03 135 views
0

所以我在看這example from Google,他們利用MonitoredSession,這似乎是一個非常方便的類,每n步保存摘要。根據文檔,以下片段:Tensorflow hook after_run not called

with tf.train.MonitoredTrainingSession(master=target, 
              is_chief=is_chief, 
              checkpoint_dir=job_dir, 
              save_checkpoint_secs=None, 
              save_summaries_steps=20) as session: 
     while True: 
     // do training 

應保存我的摘要每20個步驟。而且它幾乎可以做到,但有時候,我的摘要沒有被保存,這確實是一個問題。

在內部,MonitoredSession創建一個SummarySaverHook類,我們希望它的before_run/after_run回調每n個global_step被調用一次。似乎是這樣。

我注意到,回調並沒有被相同的線程調用,所以我認爲這可能是問題的根源,但我真的不知道發生了什麼,它很難調試。

對於我的問題缺乏清晰度,我很抱歉,但我真的很難理解發生了什麼。有沒有人遇到類似的情況或知道這是從哪裏來的?

謝謝

+0

您能否提供更多的上下文?你能否可靠地重現這一點?如果是這樣,請在github上提交錯誤消息!謝謝! – saeta

回答

1

你嘗試使用hooks參數同時使用MonitoredTrainingSession

with tf.train.MonitoredTrainingSession(master=target, hooks=[<your hooks>], 
              is_chief=is_chief, 
              checkpoint_dir=job_dir, 
              save_checkpoint_secs=None, 
              save_summaries_steps=20) as session: 
     while True: 
     // do training