2017-07-27 14 views
6

Estimator APIを使用しているときに、Tensorflowで追加のトレーニングメトリクス(バッチ精度など)を印刷させる方法はありますか?Tensorflow Estimatorで余分なトレーニングメトリックを印刷

Tensorboard(別の記事を参照)でサマリーを追加して結果を表示することもできますが、トレーニング中にスカラーサマリー値を表示するうまい方法があるかどうかは疑問でした。これは既にトレーニングの喪失のために起こります。例:

loss = 0.672677, step = 2901 (52.995 sec) 

loss = 0.672677, accuracy = 0.54678, step = 2901 (52.995 sec) 

ほとんどの場合、テストセットの精度をプロットする方が便利です(私はすでに検証モニタでこれを行っています)が、この場合はバッチの精度を習得することにも興味があります。

答えて

4

私が読んだところでは、パラメータを渡すことでそれを変更することはできません。 ロギングフックを作成し、それをエスティメータ実行に渡すことで実行できます。あなたの推定のためのmodel_fn関数の本体で

logging_hook = tf.train.LoggingTensorHook({"loss" : loss, 
    "accuracy" : accuracy}, every_n_iter=10) 

# Rest of the function 

return tf.estimator.EstimatorSpec(
    ...params... 
    training_hooks = [logging_hook]) 

EDIT:

あなたも十分に高い冗長性をロギング設定する必要があり、出力を参照するには(をしない限り、そのデフォルト): tf.logging.set_verbosity(tf.logging.INFO)

+0

これはうまく動作しますが、出力を見るためにtf.logging.set_verbosity(tf.logging.INFO)を追加する必要がありました – head7

関連する問題