我在整个图表中创建了一些摘要操作,如下所示:
tf.summary.scalar('cross_entropy', cross_entropy)
tf.summary.scalar('accuracy', accuracy)
当然合并并得到了一个作者:
sess = tf.InteractiveSession()
summaries = tf.summary.merge_all()
train_writer = tf.summary.FileWriter(TENSORBOARD_TRAINING_DIR, sess.graph)
tf.global_variables_initializer().run()
我在每次训练迭代中写下这些:
summary, acc = sess.run([summaries, accuracy], feed_dict={...})
train_writer.add_summary(summary, i)
当我加载张量板时,我得到了一些奇怪的结果:
这很奇怪有几个原因:
- cross_entropy 图表上的 Y 轴没有增加(或不同)的刻度线
- 线图似乎会自行折回或回到过去
我确实检查过 - 我的训练摘要文件夹中有一些以前的事件文件:
$ ls /tmp/tv_train/
events.out.tfevents.1517210066.xxxxxxx.local
events.out.tfevents.1517210097.xxxxxxx.local
...
events.out.tfevents.1517210392.xxxxxxx.local
我想我一定是在某个时候重新启动了训练循环,导致在 (0、1 等) 索引处记录了多个摘要。
如何附加到旧的训练日志?我能否将作者指向特定的 tfevents 文件以“从我离开的地方开始”?
最佳答案
您不能(轻松地)重新打开并“附加”到现有的事件文件,但这不是必需的。
Tensorboard 会很好地显示顺序事件文件,只要记录中的步长值一致。
保存摘要时,您指定了一个 step
值,该值指示应在 x
轴上的哪个点绘制摘要。
图表会“回到过去”,因为在每次新的运行中,您都会从 0 重新启动计步器。要使其在多次运行中保持一致,您应该定义一个 global_step
变量,该变量保存到保存网络时的检查点。这样,当您在下一次训练运行中恢复网络时,您的全局步骤将从它离开的地方开始,您的图表将不再看起来很奇怪。
关于python - Tensorflow (1.4.1) Tensorboard 可视化图可以追溯到过去吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48496479/