gpt4 book ai didi

python - 在张量板上记录训练和验证损失

转载 作者:IT老高 更新时间:2023-10-28 21:51:34 26 4
gpt4 key购买 nike

我正在尝试学习如何使用 tensorflow 和 tensorboard。我有一个基于 MNIST neural net tutorial 的测试项目.

在我的代码中,我构建了一个节点,用于计算数据集中正确分类的数字比例,如下所示:

correct = tf.nn.in_top_k(self._logits, labels, 1)
correct = tf.to_float(correct)
accuracy = tf.reduce_mean(correct)

这里,self._logits是图的推理部分,labels是包含正确标签的占位符。

现在,我想做的是在训练进行时评估训练集和验证集的准确性。我可以通过使用不同的 feed_dicts 两次运行准确度节点来做到这一点:

train_acc = tf.run(accuracy, feed_dict={images : training_set.images, labels : training_set.labels})
valid_acc = tf.run(accuracy, feed_dict={images : validation_set.images, labels : validation_set.labels})

这按预期工作。我可以打印这些值,我可以看到,最初,两个准确度都会增加,最终验证准确度会趋于平缓,而训练准确度会不断增加。

但是,我也想在 tensorboard 中获取这些值的图表,但我不知道如何做到这一点。如果我只是将 scalar_summary 添加到 accuracy,则记录的值将无法区分训练集和验证集。

我还尝试创建两个具有不同名称的相同 accuracy 节点,并在训练集和验证集上运行一个。然后,我将 scalar_summary 添加到每个节点。这确实在张量板上给了我两张图,但不是一张显示训练集准确度的图和一张显示验证集准确度的图,它们都显示了与打印到终端中的任何一个都不匹配的相同值。

我可能误解了如何解决这个问题。针对不同输入分别记录单个节点的输出的推荐方法是什么?

最佳答案

有几种不同的方法可以实现这一点,但创建不同的 tf.summary.scalar() 是正确的。节点。由于您必须显式调用 SummaryWriter.add_summary()每次您想将数量记录到事件文件时,最简单的方法可能是每次您想获得训练或验证准确性时获取适当的摘要节点:

accuracy = tf.reduce_mean(correct)

training_summary = tf.summary.scalar("training_accuracy", accuracy)
validation_summary = tf.summary.scalar("validation_accuracy", accuracy)


summary_writer = tf.summary.FileWriter(...)

for step in xrange(NUM_STEPS):

# Perform a training step....

if step % LOG_PERIOD == 0:

# To log training accuracy.
train_acc, train_summ = sess.run(
[accuracy, training_summary],
feed_dict={images : training_set.images, labels : training_set.labels})
writer.add_summary(train_summ, step)

# To log validation accuracy.
valid_acc, valid_summ = sess.run(
[accuracy, validation_summary],
feed_dict={images : validation_set.images, labels : validation_set.labels})
writer.add_summary(valid_summ, step)

或者,您可以创建一个标签为 tf.placeholder(tf.string, []) 的摘要操作。并根据需要输入字符串 "training_accuracy""validation_accuracy"

关于python - 在张量板上记录训练和验证损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34471563/

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