tf.compat.v1.summary.merge

Merges summaries.

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

This op creates a Summary protocol buffer that contains the union of all the values in the input summaries.

When the Op is run, it reports an InvalidArgument error if multiple values in the summaries to merge use the same tag.

inputs A list of string Tensor objects containing serialized Summary protocol buffers.
collections Optional list of graph collections keys. The new summary op is added to these collections. Defaults to [].
name A name for the operation (optional).

A scalar Tensor of type string. The serialized Summary protocol buffer resulting from the merging.

RuntimeError If called with eager mode enabled.