如何在TensorBoard中显示不同的运行情况?

92

TensorBoard似乎有一个功能可以显示多个不同的运行并切换它们。

在此输入图片描述

我该如何让多个运行显示在此处,如何为它们分配名称以区分它们?

4个回答

158

除了TensorBoard扫描子目录(这样您可以传递包含运行目录的目录),您还可以明确地传递多个目录到TensorBoard并给出自定义名称(示例取自 --help 输出):

tensorboard --logdir=name1:/path/to/logs/1,name2:/path/to/logs/2

更多信息可以在TensorBoard文档中找到。

在最近的TensorBoard版本中,这种方式的别名需要不同的参数,但是使用它是不被鼓励的(引用来自于上面链接的github当前文档):

Logdir & Logdir_spec (Legacy Mode)

您也可以传递一个逗号分隔的日志目录列表,TensorBoard将监视每个目录。您还可以通过在名称和路径之间放置冒号来为单个日志目录分配名称,例如

tensorboard --logdir_spec name1:/path/to/logs/1,name2:/path/to/logs/2

不建议使用此标志(--logdir_spec),通常可以避免使用。TensorBoard会递归地遍历日志目录;对于更细粒度的控制,请优先使用符号链接树。当使用--logdir_spec而不是--logdir时,某些功能可能无法正常工作。


5
注意:主目录快捷方式(~)似乎无法正确解析,请使用完整名称。 - Ben Usman
1
这更多是一个shell的问题,而不是tensorflow的问题 - ~必须位于“shell单词”的开头(例如,在引号外部的空格后面)。在这里,您可以使用$HOME代替。 - etarion
“~” 对我来说可以使用,所以很可能已经在后续的 TensorFlow 版本中修复了。 - Björn Lindqvist
8
针对最近的TensorBoard版本(我目前使用的是2.3,不确定确切的更改时间),请参见下面@Oren的答案,--logdir不再起作用。 - GPhilo
2
为什么特别不建议使用 --logdir_spec?因为它在将新运行与某个基准“当前最佳”运行进行比较时非常强大。 - Daniel
我不确定其他人是否有同样的问题,但是对我来说使用--logdir没有起作用,直到我从运行名称子文件夹中删除了破折号并改用下划线才弄清楚原因。对于遇到这个问题的任何人,希望这可以帮助解决。 - smerkd

93

14
这是答案。 - BigBadMe
将您的日志放在子文件夹中,例如/logs/run1/。如何做到这一点?手动吗? - liang
@liang,如果您创建回调时已经创建了一个LOG文件夹,那么您可能已经拥有了这个子文件夹,只需在此文件夹中按照上述命令运行即可。 - aletelecomm

35

TensorBoard的新版本将logdir更改为logdir_spec

tensorboard --logdir_spec=name1:/path/to/logs/1,name2:/path/to/logs/2

但我的真正建议是使用wandb而不是tensorboard


这似乎是错误的,事实上--logder_spec是不被鼓励的(请查看已接受答案中在Github上的文档链接)。 - drevicko
3
嗨,他特别要求手动插入不同的运行结果。logdir是告诉TensorBoard迭代搜索所有运行结果的。如果您想为每个运行结果设置名称并限制目录,则需要使用logdir_spec。我同意这写得有点奇怪...也许不鼓励这样做,但这就是他要求的... - Oren
4
这对我有效!显然,“--logdir”不再可用,需要使用“logdir_spec”代替! - yuqli

3

似乎只需像这样声明即可:

writer = SummaryWriter(logdir='/runs/you_tag')

然后tensorboard会在runs/下创建一个you_tag文件夹,与此同时,web应用将刷新并找到you_tag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接