|TensorFlow 1 version||View source on GitHub|
Computes the cosine similarity between labels and predictions.
See Migration guide for more details.
tf.keras.losses.CosineSimilarity( axis=-1, reduction=losses_utils.ReductionV2.AUTO, name='cosine_similarity' )
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.
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))
y_true = [[0., 1.], [1., 1.]]
y_pred = [[1., 0.], [1., 1.]]
# Using 'auto'/'sum_over_batch_size' reduction