【问题标题】:Tensorflow (1.4.1) Tensorboard visualization plot goes back in time?Tensorflow (1.4.1) Tensorboard 可视化图可以追溯到过去?
【发布时间】:2023-03-29 15:10:02
【问题描述】:

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

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)

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

这很奇怪有几个原因:

  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 文件以“从我离开的地方重新开始”吗?

【问题讨论】:

  • 我很久以前就遇到过这个问题......我找到的唯一解决方案是删除旧的,只保留最新的。
  • 看来你不能追加到旧的,所以也许你需要检查你的代码以确保在整个训练过程中只创建一个日志文件。

标签: python tensorflow tensorboard


【解决方案1】:

您不能(轻松)重新打开并“附加”到现有事件文件,但这不是必需的。 Tensorboard 将很好地显示顺序事件文件,只要记录中的步长值一致。 保存摘要时,您指定一个 step 值,该值指示应在 x 轴上的哪个点绘制摘要。

图表会“回到过去”,因为在每次新运行时,您都会从 0 重新启动计步器。要使其在多次运行中保持一致,您应该定义一个 global_step 变量,当您保存网络。这样,当您在下一次训练运行中恢复网络时,您的全局步骤将从其离开的位置开始,您的图表将不再看起来很奇怪。

【讨论】:

  • 你是说有一个内置的方法来保存这样一个 global_step,还是只是意味着将你自己的保存为泡菜并确保你从那里开始?
  • 有一个内置的方式来定义一个全局步骤变量,不需要酸洗东西。看看 tf.train.get_or_create_global_step
猜你喜欢
  • 2019-03-15
  • 1970-01-01
  • 2021-11-30
  • 2020-08-26
  • 2020-01-22
  • 2018-04-13
  • 2020-01-26
  • 2018-05-25
  • 2015-01-26
相关资源
最近更新 更多