python - Tensorflow (1.4.1) Tensorboard 可视化图可以追溯到过去吗?

标签 python tensorflow tensorboard

我在整个图表中创建了一些摘要操作,如下所示:

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)

当我加载张量板时,我得到了一些奇怪的结果:

graph

这很奇怪有几个原因:

  1. cross_entropy 图表上的 Y 轴没有增加(或不同)的刻度线
  2. 线图似乎会自行折回或回到过去

我确实检查过 - 我的训练摘要文件夹中有一些以前的事件文件:

$ 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/

相关文章:

python - Groupby ID Pandas

python - 如何在 Python 中执行包含 Python 代码的字符串?

python - 为什么使用 numpy.save 从数组中保存切片会根据切片的方向变慢?

Tensorflow:计算 TFRecord 文件中示例的数量——不使用已弃用的 `tf.python_io.tf_record_iterator`

python - 无法在张量板上可视化图形

linux - 如何在 Linux 中打开一个 tensorboard 端口?

python - pip 拒绝升级

python - Tensorflow Restore() 缺少 1 个必需的位置参数 : 'save_path'

python - 在内存中序列化和反序列化 Tensorflow 模型并继续训练

tensorflow - 如何使用TensorBoard分析结果并降低均方误差