如何在 TensorBoard 中显示不同的运行?
Posted
技术标签:
【中文标题】如何在 TensorBoard 中显示不同的运行?【英文标题】:How do display different runs in TensorBoard? 【发布时间】:2016-07-10 23:49:06 【问题描述】:TensorBoard 似乎具有显示多个不同运行并切换它们的功能。
如何在此处显示多个运行以及如何为它们分配名称以区分它们?
【问题讨论】:
【参考方案1】:除了 TensorBoard 扫描子目录(因此您可以传递包含运行目录的目录),您还可以将多个目录显式传递给 TensorBoard 并提供自定义名称(示例取自 --help 输出):
tensorboard --logdir=name1:/path/to/logs/1,name2:/path/to/logs/2
更多信息请访问TensorBoard documentation。
在最近版本的 TensorBoard 中,这种别名需要一个不同的参数,但是不鼓励使用它(引用 github 上的当前文档 - 上面链接):
Logdir 和 Logdir_spec(传统模式)
您还可以传递以逗号分隔的日志目录列表,并且 TensorBoard 将监视每个目录。您还可以将名称分配给 通过在名称和目录之间放置一个冒号来单独的日志目录 路径,如
tensorboard --logdir_spec name1:/path/to/logs/1,name2:/path/to/logs/2
不鼓励使用此标志 (--logdir_spec),通常可以避免使用。 TensorBoard 递归遍历日志目录;对于细粒度 控制,更喜欢使用符号链接树。某些功能可能在以下情况下无法使用 使用 --logdir_spec 而不是 --logdir。
【讨论】:
注意:主目录快捷方式(~
)显然没有正确解析,使用全名
这更像是一个 shell 的东西而不是 tensorflow 的东西 - ~ 必须位于“shell 单词”的开头(例如,在引号之外的空格之后)。在这里,您可以使用 $HOME 代替。
~
对我有用,所以它很可能已在以后的 tensorflow 版本中得到修复。
对于最近的 TensorBoard 版本(我目前使用的是 2.3,不确定更改的确切时间),请参阅下面的 @Oren's answer,--logdir
不再工作了。
为什么不鼓励--logdir_spec
,具体来说?在将新运行与一些基本的“当前最佳”运行进行比较时,它非常强大。【参考方案2】:
我在 github (https://github.com/tensorflow/tensorflow/issues/1548) 上找到了我自己的问题的答案。
您需要将日志放在子文件夹中,例如/logs/run1/ 然后在根文件夹上运行 tensorboard,例如/日志/。
【讨论】:
这应该是答案put your logs in a subfolder e.g. /logs/run1/
- 怎么做?手动?【参考方案3】:
新版本的张量板将 logdir 更改为 logdir_spec:
tensorboard --logdir_spec=name1:/path/to/logs/1,name2:/path/to/logs/2
【讨论】:
这似乎是错误的,而且确实不鼓励 --logder_spec (按照接受的答案中 github 上的文档链接)。 嗨,他特别要求手动插入不同的运行。 logdir 用于告诉 tensorboard 迭代搜索所有运行。如果要为每次运行命名并限制目录,则需要使用 logdir_spec。我同意它写得有点奇怪..也许是气馁,但这就是他要求的...... 这对我有用!显然--logdir
不再有效,需要logdir_spec
!【参考方案4】:
好像这样声明就可以了:
writer = SummaryWriter(logdir='/runs/you_tag')
然后tensorboard会在runs/
下面创建一个you_tag
文件夹,同时web应用会刷新并找到you_tag
。
【讨论】:
以上是关于如何在 TensorBoard 中显示不同的运行?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Tensorboard 中显示自定义图像(例如 Matplotlib Plots)?