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

mat*_*tes 50 tensorflow tensorboard

我正在为我构建的cnn模型测试不同的超参数,但是在Tensorboard中查看摘要时我有一点小烦恼.这个问题似乎是该数据仅仅是连续运行"添加",这样的功能,导致一个奇怪的叠加,除非我看到的信息是"相对的",而不是"一步".看这里:

X类型:步骤

X类型:相对

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

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

谢谢!!

dan*_*ion 31

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

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

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

  • 确实.你描述的是tensorflow的一个杀戮功能,我已经用了很多.但有时您只需要反复检查一切是否符合您的预期.这就是我需要擦除所有内容并从头开始的原因 (6认同)
  • 链接坏了:( (3认同)

mat*_*tes 19

好吧,出于某种原因,它之前没有用,但现在却做到了:

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

杀死进程后运行fuser 6006/tcp -k到自由端口6006(如果你在linux中)并再次触发tensorboard.

  • 看来你要做的就是删除旧目录(或重命名它)以使其刷新,但是直到你传递给--reload_interval的秒数已经过去才会注意到它. (2认同)
  • 对于 mac,它将是 `lsof -i tcp:6006 | grep -v PID | awk '{print $2}' | xargs 杀死` (2认同)

Sua*_*ris 16

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

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

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

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


小智 5

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


小智 5

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

writer.add_graph(graph=sess.graph)
Run Code Online (Sandbox Code Playgroud)

就我而言,这与日志文件无关,而与Jupyter Notebook上下文有关。

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

tf.reset_default_graph()
Run Code Online (Sandbox Code Playgroud)

在开始建立计算图之前。

希望它会有所帮助。