# TensorFlow | cosine_similarity for vectors

Cosine similarity measures the similarity between vectors by calculating the cosine angle between the two vectors.

`TensorFlow` provides `tf.keras.losses.cosine_similarity` function to compute cosine similarity between labels and predictions.

Cosine similarity is a number number between -1 and 1. Cosine values closer to -1 indicate greater similarity and values closer to 1 indicate greater dissimilarity.

Let's understand `tf.keras.losses.cosine_similarity` with below examples

###### Calculate Cosine similarity between two vectors

``` ```
import tensorflow as tf

y_true = [[1., 1.], [1., 1.]]
y_pred = [[1., 1.], [-1., -1.]]

consine_sim_tensor = tf.keras.losses.cosine_similarity(y_true, y_pred, axis=1)
print(consine_sim_tensor.numpy())

``` ```

Output

``` ```
[-0.99999994  0.99999994]
``` ```

From the above output we can see as the first element in both `y_true` and `y_pred` is same hence cosine similarity is approaching to -1, while second element is opposite in `y_true` and `y_pred` hence cosine similarity value is approaching to 1.

###### Calculate Cosine similarity of one vector with list of vectors

``` ```
import tensorflow as tf

tensor_1 = [.34, .45, .67, .65]
tensor_list = [[.34, .45, .67, .65], [.14, .35, .67, .65],
[.54, .95, .07, .5], [.64, .75, .81, .05], [.34, .45, .67, .65]]

cosine_sim_values = tf.keras.losses.cosine_similarity(
tensor_1,
tensor_list,
axis=-1)

print(cosine_sim_values.numpy())
``` ```

Output

``` ```
[-1.         -0.9804376  -0.74875045 -0.8115672  -1.        ]
``` ```

In the above output first and fifth values are -1 because tensor_1 and first and fifth element of tensor_list are identical.

Similar Articles