View source on GitHub |
Outputs a Summary
protocol buffer with images.
tf.compat.v1.summary.image(
name, tensor, max_outputs=3, collections=None, family=None
)
Migrate to TF2
For compatibility purposes, when invoked in TF2 where the outermost context is
eager mode, this API will check if there is a suitable TF2 summary writer
context available, and if so will forward this call to that writer instead. A
"suitable" writer context means that the writer is set as the default writer,
and there is an associated non-empty value for step
(see
tf.summary.SummaryWriter.as_default
, tf.summary.experimental.set_step
or
alternatively tf.compat.v1.train.create_global_step
). For the forwarded
call, the arguments here will be passed to the TF2 implementation of
tf.summary.image
, and the return value will be an empty bytestring tensor,
to avoid duplicate summary writing. This forwarding is best-effort and not all
arguments will be preserved. Additionally:
- The TF2 op does not do any of the normalization steps described above. Rather than rescaling data that's outside the expected range, it simply clips it.
- The TF2 op just outputs the data under a single tag that contains multiple samples, rather than multiple tags (i.e. no "/0" or "/1" suffixes).
To migrate to TF2, please use tf.summary.image
instead. Please check
Migrating tf.summary usage to
TF 2.0 for concrete
steps for migration.
How to Map Arguments
TF1 Arg Name | TF2 Arg Name | Note |
---|---|---|
name |
name |
- |
tensor |
data |
- |
- | step
|
Explicit int64-castable monotonic step
value. If omitted, this defaults to
tf.summary.experimental.get_step() . |
max_outputs |
max_outputs |
- |
collections |
Not Supported | - |
family
|
Removed | Please use tf.name_scope instead
to manage summary name prefix. |
- | description
|
Optional long-form str description
for the summary. Markdown is supported.
Defaults to empty. |
Description
The summary has up to max_outputs
summary values containing images. The
images are built from tensor
which must be 4-D with shape [batch_size,
height, width, channels]
and where channels
can be:
- 1:
tensor
is interpreted as Grayscale. - 3:
tensor
is interpreted as RGB. - 4:
tensor
is interpreted as RGBA.
The images have the same number of channels as the input tensor. For float
input, the values are normalized one image at a time to fit in the range
[0, 255]
. uint8
values are unchanged. The op uses two different
normalization algorithms:
If the input values are all positive, they are rescaled so the largest one is 255.
If any input value is negative, the values are shifted so input value 0.0 is at 127. They are then rescaled so that either the smallest value is 0, or the largest one is 255.
The tag
in the outputted Summary.Value protobufs is generated based on the
name, with a suffix depending on the max_outputs setting:
- If
max_outputs
is 1, the summary value tag is 'name/image'. - If
max_outputs
is greater than 1, the summary value tags are generated sequentially as 'name/image/0', 'name/image/1', etc.
Returns | |
---|---|
A scalar Tensor of type string . The serialized Summary protocol
buffer.
|