如何在tensorflow中合并并非所有摘要?

Dim*_*ims 8 python summary tensorflow

我有两个部分的大图,我依次运行.两者都有摘要.

我用节点调用摘要

merged_summary = tf.summary.merge_all()
Run Code Online (Sandbox Code Playgroud)

但是注意到,它会导致图形后半部分的张量在有意义之前被评估.

那么,如何仅合并我的图表的一半的摘要?

小智 8

假设您有第一个和第二个图表的两个摘要列表,即:

summaries_first = [tf.summary.image("my_first_graph_input", image), ...]
summary_second = [tf.summary.scalar("my_second_graph_loss"), ..]
Run Code Online (Sandbox Code Playgroud)

将每个列表合并为一个摘要操作:

first_graph_summary_op = tf.summary.merge(summaries_first)
second_graph_summary_op = tf.summary.merge(summary_second)
Run Code Online (Sandbox Code Playgroud)

现在,无论何时sess.run()在每个图形上执行a ,都要评估它的相应摘要操作并编写它.


Eng*_*ero 8

您可以使用tf.summary.merge,传递要合并的摘要列表.例如,如果您有摘要:

cost_summary = tf.summary.scalar('cost_sum', cost)  # for some 'cost' tensor
grad_summary = tf.summary.scalar('grad_sum', grad)  # for some 'grad' tensor
Run Code Online (Sandbox Code Playgroud)

您可以按名称合并它们:

merged = tf.summary.merge([cost_summary, grad_summary])
Run Code Online (Sandbox Code Playgroud)