tf.compat.v1.summary.merge_all

Merges all summaries collected in the default graph.

Migrate to TF2

This API is not compatible with eager execution or tf.function. To migrate to TF2, this API can be omitted entirely, because in TF2 individual summary ops, like tf.summary.scalar(), write directly to the default summary writer if one is active. Thus, it's not necessary to merge summaries or to manually add the resulting merged summary output to the writer. See the usage example shown below.

For a comprehensive tf.summary migration guide, please follow Migrating tf.summary usage to TF 2.0.

TF1 & TF2 Usage Example

TF1:

dist = tf.compat.v1.placeholder(tf.float32, [100])
tf.compat.v1.summary.histogram(name="distribution", values=dist)
writer = tf.compat.v1.summary.FileWriter("/tmp/tf1_summary_example")
summaries = tf.compat.v1.summary.merge_all()

sess = tf.compat.v1.Session()
for step in range(100):
  mean_moving_normal = np.random.normal(loc=step, scale=1, size=[100])
  summ = sess.run(summaries, feed_dict={dist: mean_moving_normal})
  writer.add_summary(summ, global_step=step)

TF2:

writer = tf.summary.create_file_writer("/tmp/tf2_summary_example")
for step in range(100):
  mean_moving_normal = np.random.normal(loc=step, scale=1, size=[100])
  with writer.as_default(step=step):
    tf.summary.histogram(name='distribution', data=mean_moving_normal)

Description

key GraphKey used to collect the summaries. Defaults to GraphKeys.SUMMARIES.
scope Optional scope used to filter the summary ops, using re.match.
name A name for the operation (optional).

If no summaries were collected, returns None. Otherwise returns a scalar Tensor of type string containing the serialized Summary protocol buffer resulting from the merging.

RuntimeError If called with eager execution enabled.