70

我正在为我构建的 cnn 模型测试不同的超参数,但是在查看 Tensorboard 中的摘要时我有点烦恼。问题似乎是数据只是在连续运行中“添加”,因此除非我将信息视为“相对”而不是“逐步”,否则这些函数会导致奇怪的叠加。看这里:

X类型:阶梯

X 类型:相对

我试过杀死 tensorboard 的进程并擦除日志文件,但似乎还不够。

所以问题是,我如何重置这些信息?

谢谢!!

4

8 回答 8

43

注意:您发布的解决方案(擦除 TensorBoard 的日志文件并终止进程)会起作用,但不是首选,因为它会破坏有关您的训练的历史信息。

相反,您可以让每个新的训练作业写入一个新的子目录(您的顶级日志目录)。然后,TensorBoard 将每个作业视为一个新的“运行”,并将创建一个很好的比较视图,以便您可以看到模型迭代之间的训练有何不同。

在以下来自https://www.tensorflow.org/tensorboard/get_started的示例中:

model = create_model()
...
model.compile(...)

log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

model.fit(..., callbacks=[tensorboard_callback])
于 2016-05-24T10:52:40.577 回答
30

是的,我相信最终这方面是积极的。
例如,在我的脚本中,我通过以下方式自动化新的运行日志datetime

from datetime import datetime
now = datetime.now()
logdir = "tf_logs/.../" + now.strftime("%Y%m%d-%H%M%S") + "/"

然后在运行 TensorBoard 时,如果您在父目录中运行 TensorBoard,您可以单击打开和关闭不同的运行。

如果您知道自己不关心以前的运行并希望它退出您的生活,那么是的,您需要删除事件文件并重新启动 TensorBoard。

于 2016-10-20T21:28:00.240 回答
24

好的,由于某种原因,它以前不起作用,但现在它起作用了:

您必须删除 Tensorboard 的日志文件并终止其进程

杀死进程后运行fuser 6006/tcp -k释放端口 6006(如果你在 linux 中)并再次启动 tensorboard。

于 2016-01-01T20:46:20.907 回答
6

我有一个类似的问题,但是计算图的重复:当我打电话时它们刚刚添加到张量板中

writer.add_graph(graph=sess.graph)

就我而言,这不是关于日志文件,而是关于 Jupyter Notebook 上下文。

我发现在多次运行带有 Graph 定义的 Jupyter 单元后,该图尚未重置,但在上下文中显示为重复,所以我添加了

tf.reset_default_graph()

在开始构建计算图之前。

希望它会有所帮助。

于 2018-03-10T10:26:07.710 回答
5

我只是想出了解决这个问题的方法。只需将每个 Events.out 文件放在日志目录内的单独文件夹中即可。您将在 tensorboard 中获得很好的可视化效果,每次运行都使用不同的颜色。

于 2016-10-27T14:03:59.437 回答
2

将以下代码段添加到您的代码中,它应该会自动重置您的张量板。

if tf.gfile.Exists(dirpath):
   tf.gfile.DeleteRecursively(dirpath) 

这将删除以前的日志。

于 2017-03-21T08:47:10.793 回答
0

有一个类似的问题,它引发了一个错误:'您必须使用 dtype float 和 shape 为占位符张量'dense_input'提供一个值'。此处讨论了此具体问题。对我有用的建议使用:

from keras.backend import clear_session
# Before instantiating a tf.data.Dataset obj & before model creation, call:
clear_session()

还要确保为每个模型的 TensorBoard log_dir 使用唯一名称。然后查看所有模型,从终端在日志文件的父目录运行 TensorBoard,即:

tensorboard --logdir <projDir>/logs/tf_log
于 2019-08-16T08:30:17.897 回答
-1

这会自动删除日志目录。

import shutil

shutil.rmtree('log_dir', ignore_errors=True)
于 2017-07-13T22:10:18.840 回答