# tf.keras.utils.to_categorical

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/utils/np_utils.py#L23-L77) |

Converts a class vector (integers) to binary class matrix.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

\`tf.compat.v1.keras.utils.to_categorical\`

<br />

    tf.keras.utils.to_categorical(
        y, num_classes=None, dtype='float32'
    )

E.g. for use with `categorical_crossentropy`.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `y` | Array-like with class values to be converted into a matrix (integers from 0 to `num_classes - 1`). |
| `num_classes` | Total number of classes. If `None`, this would be inferred as `max(y) + 1`. |
| `dtype` | The data type expected by the input. Default: `'float32'`. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A binary matrix representation of the input as a NumPy array. The class axis is placed last. ||

<br />

#### Example:

    a = tf.keras.utils.to_categorical([0, 1, 2, 3], num_classes=4)
    print(a)
    [[1. 0. 0. 0.]
     [0. 1. 0. 0.]
     [0. 0. 1. 0.]
     [0. 0. 0. 1.]]

    b = tf.constant([.9, .04, .03, .03,
                     .3, .45, .15, .13,
                     .04, .01, .94, .05,
                     .12, .21, .5, .17],
                    shape=[4, 4])
    loss = tf.keras.backend.categorical_crossentropy(a, b)
    print(np.around(loss, 5))
    [0.10536 0.82807 0.1011  1.77196]

    loss = tf.keras.backend.categorical_crossentropy(a, a)
    print(np.around(loss, 5))
    [0. 0. 0. 0.]