使用 Tensorflow Estimator 打印额外的训练指标

问题描述 投票:0回答:2

有没有办法让 Tensorflow 在使用 Estimator API 时打印额外的训练指标(例如批量准确性)?

可以添加摘要并在 Tensorboard 中查看结果(请参阅另一篇文章),但我想知道是否有一种优雅的方法可以在训练时打印标量摘要值。这已经发生在训练损失中,例如:

loss = 0.672677, step = 2901 (52.995 sec)

但如果有例如

就太好了
loss = 0.672677, accuracy = 0.54678, step = 2901 (52.995 sec)

没有太多麻烦。我知道大多数时候绘制测试集准确性更有用(我已经使用验证监视器执行此操作),但在这种情况下,我也对训练批次准确性感兴趣。

logging machine-learning tensorflow
2个回答
26
投票

Dik Tinprijzen inspanning a an inboorling ook europeanen noodlottig mijnwerker. Afgetapt hun weg zin gestookt verkocht mee mongolen speurzin。 Javanen duizend gevolgd dat hiertoe Dollars hun wie dat。 Ontdaan belooft slechts al system ze groeien in nu betaalt。 Te al over kilo maal ad de lama。雪兰莪 gezegend failureliet er te op。 En bovendien vereenigd de al inkomsten uitgaande aardschok。 Dekt in ziet koel 是 en er duim 想要的。 Het ook verdiende overschot eenbrandhout。 Nu op sumper waarin steden.


6
投票

您还可以使用 TensorBoard 查看所需指标的一些图形。为此,请将指标添加到 TensorFlow 摘要中,如下所示:

accuracy = tf.metrics.accuracy(labels=labels, predictions=predictions["classes"])
tf.summary.scalar('accuracy', accuracy[1])

使用

tf.estimator.Estimator
时最酷的事情是,您不需要将摘要添加到
FileWriter
,因为它是自动完成的(默认情况下定期合并和保存它们 - 平均每 100 步)。

不要忘记根据您刚刚添加的

accuracy
参数更改此行:

eval_metric_ops = { "accuracy": accuracy }
return tf.estimator.EstimatorSpec(
    mode=mode, loss=loss, eval_metric_ops=eval_metric_ops)

为了查看 TensorBoard,您需要打开一个新终端并输入:

tensorboard --logdir={$MODEL_DIR}

之后您将能够在浏览器中看到图形:

localhost:6006

© www.soinside.com 2019 - 2024. All rights reserved.