# tf.compat.v1.summary.histogram

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/summary/summary.py#L256-L345) |

Outputs a `Summary` protocol buffer with a histogram.

    tf.compat.v1.summary.histogram(
        name, values, collections=None, family=None
    )

<br />

## Migrate to TF2

<br />

> [!CAUTION]
> **Caution:** This API was designed for TensorFlow v1. Continue reading for details on how to migrate from this API to a native TensorFlow v2 equivalent. See the [TensorFlow v1 to TensorFlow v2 migration guide](https://www.tensorflow.org/guide/migrate) for instructions on how to migrate the rest of your code.

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`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/summary/SummaryWriter#as_default), `tf.summary.experimental.set_step` or
alternatively [`tf.compat.v1.train.create_global_step`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/compat/v1/train/create_global_step)). For the forwarded
call, the arguments here will be passed to the TF2 implementation of
[`tf.summary.histogram`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/summary/histogram), 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.

To migrate to TF2, please use [`tf.summary.histogram`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/summary/histogram) instead. Please check
[Migrating tf.summary usage to
TF 2.0](https://www.tensorflow.org/tensorboard/migrate#in_tf_1x) for concrete
steps for migration.

#### How to Map Arguments

| TF1 Arg Name | TF2 Arg Name | Note |
|---|---|---|
| `name` | `name` | - |
| `values` | `data` | - |
| - | `step` | Explicit int64-castable monotonic step value. If omitted, this defaults to `tf.summary.experimental.get_step()` |
| - | `buckets` | Optional positive `int` specifying the histogram bucket number. |
| `collections` | Not Supported | - |
| `family` | Removed | Please use [`tf.name_scope`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/name_scope) instead to manage summary name prefix. |
| - | `description` | Optional long-form `str` description for the summary. Markdown is supported. Defaults to empty. |

<br />

<br />

## Description

Adding a histogram summary makes it possible to visualize your data's
distribution in TensorBoard. You can see a detailed explanation of the
TensorBoard histogram dashboard
[here](https://www.tensorflow.org/get_started/tensorboard_histograms).

The generated
[`Summary`](https://www.tensorflow.org/code/tensorflow/core/framework/summary.proto)
has one summary value containing a histogram for `values`.

This op reports an `InvalidArgument` error if any value is not finite.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `name` | A name for the generated node. Will also serve as a series name in TensorBoard. |
| `values` | A real numeric `Tensor`. Any shape. Values to use to build the histogram. |
| `collections` | Optional list of graph collections keys. The new summary op is added to these collections. Defaults to `[GraphKeys.SUMMARIES]`. |
| `family` | Optional; if provided, used as the prefix of the summary tag name, which controls the tab name used for display on Tensorboard. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A scalar `Tensor` of type `string`. The serialized `Summary` protocol buffer. ||

<br />