使用Estimator API时,是否可以让Tensorflow打印额外的培训指标(例如批次准确性)?
可以添加摘要并在Tensorboard中查看结果(请参阅另一篇文章),但是我想知道是否有一种优雅的方法来在训练时打印标量摘要值。对于训练损失,这种情况已经发生,例如:
loss = 0.672677, step = 2901 (52.995 sec)
但最好有
loss = 0.672677, accuracy = 0.54678, step = 2901 (52.995 sec)
没有太大的麻烦。我知道在大多数情况下,绘制测试集准确性更为有用(我已经在使用验证监视器了),但是在这种情况下,我也对训练批处理准确性感兴趣。
最佳答案
根据我所读的内容,不可能通过传递参数来更改它。
您可以尝试通过创建日志记录挂钩并将其传递到估算程序运行中来进行操作。
在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)
关于logging - 使用Tensorflow Estimator打印额外的训练指标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45353389/