# tf.keras.losses.cosine_similarity

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.14.0/keras/losses.py#L2797-L2840) |

Computes the cosine similarity between labels and predictions.

#### View aliases


**Main aliases**

[`tf.losses.cosine_similarity`](https://www.tensorflow.org/api_docs/python/tf/keras/losses/cosine_similarity)

<br />

    tf.keras.losses.cosine_similarity(
        y_true, y_pred, axis=-1
    )

Note that it is a number between -1 and 1. When it is a negative number
between -1 and 0, 0 indicates orthogonality and values closer to -1
indicate greater similarity. The values closer to 1 indicate greater
dissimilarity. This makes it usable as a loss function in a setting
where you try to maximize the proximity between predictions and
targets. If either `y_true` or `y_pred` is a zero vector, cosine
similarity will be 0 regardless of the proximity between predictions
and targets.

`loss = -sum(l2_norm(y_true) * l2_norm(y_pred))`

#### Standalone usage:

    y_true = [[0., 1.], [1., 1.], [1., 1.]]
    y_pred = [[1., 0.], [1., 1.], [-1., -1.]]
    loss = tf.keras.losses.cosine_similarity(y_true, y_pred, axis=1)
    loss.numpy()
    array([-0., -0.999, 0.999], dtype=float32)

<br />

<br />

<br />

| ## Args ||
|---|---|
| `y_true` | Tensor of true targets. |
| `y_pred` | Tensor of predicted targets. |
| `axis` | Axis along which to determine similarity. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Cosine similarity tensor. ||

<br />