杀死tensorflow实例后如何“重置”张量板数据

时间:2015-12-24 15:10:54

标签: tensorflow tensorboard

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

X Type: Step

X Type: Relative

我已经尝试过删除tensorboard的进程并删除日志文件,但这似乎还不够。

问题是,如何重置此信息?

谢谢!

8 个答案:

答案 0 :(得分:29)

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

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

有关示例,请参阅:https://www.tensorflow.org/tensorboard/

答案 1 :(得分:18)

好的,出于某种原因它之前没有用,但现在它确实有效:

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

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

答案 2 :(得分:15)

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

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

然后在运行TensorBoard时,如果在父目录中运行TensorBoard,则可以单击不同的运行。

如果你知道你不关心以前的运行并希望它不在生活中,那么是的,你需要删除事件文件并忍受异常漫长的杀死和重启过程TensorBoard。

答案 3 :(得分:5)

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

writer.add_graph(graph=sess.graph)

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

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

tf.reset_default_graph()

在开始构建计算图之前。

希望它会有所帮助。

答案 4 :(得分:4)

我刚刚找到了解决这个问题的方法。只需将每个Events.out文件放在日志目录中的单独文件夹中即可。并且您将在tensorboard中获得一个很好的可视化,每次运行都有不同的颜色。

答案 5 :(得分:1)

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

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

这将删除以前的日志。

答案 6 :(得分:0)

有一个类似的问题,它引发了一个错误:'您必须使用dtype float和shape输入占位符张量'dense_input'的值'。 conventional讨论了此特定问题。 对我有用的建议是:

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

答案 7 :(得分:-1)

这会自动删除日志目录。

{{1}}