我试图用张量流训练一个模型,然后得到一个损失图。我正在使用以下代码段:
for step in range(NUM_BATCHES):
img, lbl = sess.run([batch_images, batch_labels])
_, loss_value = sess.run([train_op, cost], feed_dict={X: img, Y: lbl, p_keep_conv: 0.8, p_keep_hidden: 0.5})
print("Step %d, loss %1.5f" % (step, loss_value))
sys.stdout.flush()
tf.summary.scalar('loss', loss_value)
summary_writer.add_summary(sess.run(tf.summary.merge_all()), step)
当我在TensorBoard中打开日志目录时,我看不到loss函数的运行图。事实上,我甚至没有看到Events部分,但是我有一个标量部分,它显示LOSS_xx
值(xx
对于每个批)。你知道吗
我错过了什么?你知道吗
这里的错误是,摘要是用TensorFlow操作创建的,
tf.summary
命名空间中的函数(如tf.summary.scalar
)也使用张量。您的代码在每个迭代中创建一个新的、独立的摘要图表,而不是将所有标量损失值作为同一摘要的一部分。你知道吗要解决这个问题,您必须只创建一次摘要操作,通常是在进行培训之前。使用此方法,每个步骤只需运行一次:
相关问题 更多 >
编程相关推荐