2017-07-27 88 views
6

Czy istnieje sposób, aby Tensorflow drukuje dodatkowe dane treningowe (np. Dokładność wsadu) podczas korzystania z interfejsu API Estimatora?Drukowanie dodatkowych danych treningowych za pomocą Tensorflow Estimator

Można dodawać streszczenia i wyświetlać wyniki w Tensorboard (patrz kolejny wpis), ale zastanawiałem się, czy istnieje elegancki sposób na uzyskanie skalarnych wartości podsumowania wydrukowanych podczas treningu. Zdarza się to już w przypadku utraty treningu, np .:

loss = 0.672677, step = 2901 (52.995 sec) 

ale byłoby miło mieć np.

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

bez większych problemów. Mam świadomość, że przez większość czasu jest bardziej użyteczne wykreślić dokładność zestawu testów (już to robię z monitorem sprawdzania poprawności), ale w tym przypadku jestem również zainteresowany szkoleniem dokładności partii.

Odpowiedz

4

Z tego, co przeczytałem, nie można go zmienić, przekazując parametr. Możesz spróbować zrobić, tworząc hak do logowania i przekazując go do uruchomienia estymatora.

W ciele model_fn funkcji dla estymatora:

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:

Aby zobaczyć wyjście należy również ustawić zalogowaniu gadatliwość wystarczająco wysokie (o ile jego domyślny): tf.logging.set_verbosity(tf.logging.INFO)

+0

To działa dobrze dla mnie, ale musiałem dodać tf.logging.set_verbosity (tf.logging.INFO), aby zobaczyć wyjście – head7