# tf.math.count_nonzero

<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/ops/math_ops.py#L2530-L2595) |

Computes number of nonzero elements across dimensions of a tensor.

    tf.math.count_nonzero(
        input,
        axis=None,
        keepdims=None,
        dtype=https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/dtypes#int64,
        name=None
    )

Reduces `input` along the dimensions given in `axis`.
Unless `keepdims` is true, the rank of the tensor is reduced by 1 for each
entry in `axis`. If `keepdims` is true, the reduced dimensions
are retained with length 1.

If `axis` has no entries, all dimensions are reduced, and a
tensor with a single element is returned.

> [!NOTE]
> **Note:** Floating point comparison to zero is done by exact floating point equality check. Small values are **not** rounded to zero for purposes of the nonzero check.

#### For example:

    x = tf.constant([[0, 1, 0], [1, 1, 0]])
    tf.math.count_nonzero(x)  # 3
    tf.math.count_nonzero(x, 0)  # [1, 2, 0]
    tf.math.count_nonzero(x, 1)  # [1, 2]
    tf.math.count_nonzero(x, 1, keepdims=True)  # [[1], [2]]
    tf.math.count_nonzero(x, [0, 1])  # 3

> [!NOTE]
> **Note:** Strings are compared against zero-length empty string `""`. Any string with a size greater than zero is already considered as nonzero.

#### For example:

    x = tf.constant(["", "a", "  ", "b", ""])
    tf.math.count_nonzero(x) # 3, with "a", "  ", and "b" as nonzero strings.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `input` | The tensor to reduce. Should be of numeric type, `bool`, or `string`. |
| `axis` | The dimensions to reduce. If `None` (the default), reduces all dimensions. Must be in the range `[-rank(input), rank(input))`. |
| `keepdims` | If true, retains reduced dimensions with length 1. |
| `dtype` | The output dtype; defaults to [`tf.int64`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf#int64). |
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| The reduced tensor (number of nonzero values). ||

<br />