gpt4 book ai didi

python - 使用相同的图在 TensorFlow 中显示训练和验证的准确性

转载 作者:IT老高 更新时间:2023-10-28 22:11:35 26 4
gpt4 key购买 nike

我有一个 TensorFlow 模型,该模型的一部分会评估准确性。 accuracy 只是 tensorflow 图中的另一个节点,它接受 logitslabels

当我想绘制训练精度时,这很简单:我有类似的东西:

tf.scalar_summary("Training Accuracy", accuracy)
tf.scalar_summary("SomethingElse", foo)
summary_op = tf.merge_all_summaries()
writer = tf.train.SummaryWriter('/me/mydir/', graph=sess.graph)

然后,在我的训练循环中,我有类似的东西:

for n in xrange(1000):
...
summary, ..., ... = sess.run([summary_op, ..., ...], feed_dict)
writer.add_summary(summary, n)
...

同样在 for 循环中,每说 100 次迭代,我想评估 validation 的准确性。我为此有一个单独的 feed_dict,我能够在 python 中很好地评估验证准确性。

但是,这是我的问题:我想通过使用 accuracy 节点制作另一个验证准确性摘要。我不清楚如何做到这一点。由于我有 accuracy 节点,因此我应该能够重新使用它是有道理的,但我不确定如何准确地做到这一点,这样我也可以将验证准确性写成单独的 scalar_summary...

这怎么可能?

最佳答案

您可以重复使用准确度节点,但需要使用两种不同的 SummaryWriter,一种用于训练运行,另一种用于测试数据。此外,您必须将标量摘要分配给变量以确保准确性。

accuracy_summary = tf.scalar_summary("Training Accuracy", accuracy)
tf.scalar_summary("SomethingElse", foo)
summary_op = tf.merge_all_summaries()
summaries_dir = '/me/mydir/'
train_writer = tf.train.SummaryWriter(summaries_dir + '/train', sess.graph)
test_writer = tf.train.SummaryWriter(summaries_dir + '/test')

然后在您的训练循环中,您将进行正常训练并使用 train_writer 记录您的摘要。此外,您每 100 次迭代都在测试集上运行图表,并使用 test_writer 仅记录准确度摘要。

# Record train set summaries, and train
summary, _ = sess.run([summary_op, train_step], feed_dict=...)
train_writer.add_summary(summary, n)
if n % 100 == 0: # Record summaries and test-set accuracy
summary, acc = sess.run([accuracy_summary, accuracy], feed_dict=...)
test_writer.add_summary(summary, n)
print('Accuracy at step %s: %s' % (n, acc))

然后您可以将 TensorBoard 指向父目录 (summaries_dir),它将同时加载两个数据集。

这也可以在 TensorFlow HowTo 的 https://www.tensorflow.org/versions/r0.11/how_tos/summaries_and_tensorboard/index.html 中找到。

关于python - 使用相同的图在 TensorFlow 中显示训练和验证的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40146428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com