2017-05-03 8 views
0

私はこのexample from Googleを見ていて、MonitoredSessionを利用しています。これは、nステップごとに要約を保存するのに便利なクラスのようです。ドキュメントによれば、次のスニペットが表示されます。Tensorflowフックafter_runが呼び出されていない

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クラスを作成します.n global_stepごとにbefore_run/after_runコールバックが1回呼び出されることが期待されます。それは事実のようです。

私が気づいたことは、コールバックが同じスレッドによって呼び出されていないことです。だから私はこれが問題の原因になると思っていますが、実際に何が起こっているのか分かりません。 。

私の質問には明確さが欠けて申し訳ありませんが、実際に何が起こっているのかを理解するのに苦労しています。誰もこれまでに似たような状況に陥っているのですか?

+0

もう少しコンテキストを提供できますか?これを確実に再現できますか?もしそうなら、githubにバグを報告してください!ありがとう! – saeta

答えて

1

あなたがMonitoredTrainingSessionを使用しながらhooks引数を使用しようとしましたありがとう!

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 
関連する問題