当我想收集和不想收集 TensorBoard 统计信息时,如何创建单个脚本文件?

Posted

技术标签:

【中文标题】当我想收集和不想收集 TensorBoard 统计信息时,如何创建单个脚本文件?【英文标题】:How do I create a single script file for when I do and don't want to collect TensorBoard statistics? 【发布时间】:2016-12-05 08:26:30 【问题描述】:

我想要一个脚本,它要么收集张量板数据,要么不收集,这取决于我如何运行它。我知道我可以传递标志来告诉我的脚本我希望它如何运行。我什至可以在脚本中对其进行硬编码,然后手动更改脚本。

这两种解决方案都有更大的问题。当我想要运行或不运行摘要编写器操作时,我发现自己必须在脚本的任何地方都写一个 if 语句。例如,我发现我必须执行以下操作:

if tb_sys_arg = 'tensorboard':
    merged = tf.merge_all_summaries()

然后根据tb_sys_arg 的值运行摘要与否,如下所示:

if tb_sys_arg = 'tensorboard':
    merged = tf.merge_all_summaries()
else:
    train_writer = tf.train.SummaryWriter(tensorboard_data_dump_train, sess.graph)

这对我来说似乎很愚蠢。我宁愿不必那样做。这是正确的方法吗?我只是不想在每次运行主脚本时都收集统计信息,但我也不想有两个单独的脚本。


作为一个轶事,几个月前我开始使用 TensorBoard,似乎我一直在运行我的主文件,如下所示:

python main.py —logdir=/tmp/mdl_logs

以便它收集张量板数据。但意识到我认为我不需要最后一个标志来收集张量板数据。它已经很久了,现在我忘记了我是否真的需要它。我一直在阅读文档和教程,但似乎我不需要最后一个标志(它只需要像tensorboard --logdir=path/to/log-directory 那样运行网络应用程序,对吗?)我一直做错了吗?

【问题讨论】:

你可以在没有“summary”服务的情况下启动Supervisor,所以它不会运行summary节点:github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/… 您使用的标志不是严格需要的,但它允许指定将日志保存到 TensorBoard 的位置,因此它在训练时确实有一些用处。你也可以用别的名字来命名它。 @YaroslavBulatov 如何使用您的链接和有意义的代码 (sv = Supervisor(logdir='/tmp/mydir', summary_op=None)) 发布答案。你很准。 @YaroslavBulatov 是的!请用一段代码提供答案! :D 【参考方案1】:

您可以在没有“汇总”服务的情况下启动 Supervisor,因此它不会运行汇总节点,请参阅 Supervisor 文档的“启动更少的服务”部分 -- https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/api_docs/python/functions_and_classes/shard6/tf.train.Supervisor.md#launching-fewer-services

【讨论】:

以上是关于当我想收集和不想收集 TensorBoard 统计信息时,如何创建单个脚本文件?的主要内容,如果未能解决你的问题,请参考以下文章

收集没有索引的表的统计信息

并行和并发收集统计信息

oracle 12c 关闭统计信息收集和启用统计信息收集

如何从手动创建的 Firebase 动态链接中收集统计信息?

DBMS_STATS并行和并发收集统计信息

数据库优化之统计分析实战篇