2017-07-27 65 views
6

使用Estimator API時,有什麼方法讓Tensorflow打印額外的訓練指標(例如批處理精度)?使用Tensorflow估算器打印額外的訓練指標

可以添加摘要並在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]) 

編輯:

要見你還必須設置日誌詳細程度足夠高的輸出(除非其默認): tf.logging.set_verbosity(tf.logging.INFO)

+0

這對我來說很好,但我不得不添加tf.logging.set_verbosity(tf.logging.INFO)才能看到輸出 – head7