# tf.keras.losses.categorical_hinge

<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/losses.py#L1941-L1973) |

Computes the categorical hinge loss between `y_true` \& `y_pred`.

#### View aliases


**Main aliases**

[`tf.losses.categorical_hinge`](https://www.tensorflow.org/api_docs/python/tf/keras/losses/categorical_hinge)
**Compat aliases for migration**

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

\`tf.compat.v1.keras.losses.categorical_hinge\`

<br />

    tf.keras.losses.categorical_hinge(
        y_true, y_pred
    )

`loss = maximum(neg - pos + 1, 0)`
where `neg=maximum((1-y_true)*y_pred) and pos=sum(y_true*y_pred)`

#### Standalone usage:

    y_true = np.random.randint(0, 3, size=(2,))
    y_true = tf.keras.utils.to_categorical(y_true, num_classes=3)
    y_pred = np.random.random(size=(2, 3))
    loss = tf.keras.losses.categorical_hinge(y_true, y_pred)
    assert loss.shape == (2,)
    pos = np.sum(y_true * y_pred, axis=-1)
    neg = np.amax((1. - y_true) * y_pred, axis=-1)
    assert np.array_equal(loss.numpy(), np.maximum(0., neg - pos + 1.))

<br />

<br />

<br />

| ## Args ||
|---|---|
| `y_true` | The ground truth values. `y_true` values are expected to be either `{-1, +1}` or `{0, 1}` (i.e. a one-hot-encoded tensor). |
| `y_pred` | The predicted values. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Categorical hinge loss values. ||

<br />