From 7e7641d95c6c9b7e46b129c10ec7a965fb2f848d Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Tue, 18 Aug 2020 22:08:10 -0700 Subject: [PATCH] Fixes GitHub #42458 Reference PR #37905 PiperOrigin-RevId: 327372634 Change-Id: I3bdcbffca4818f62b0c5227e065f896541c6b377 --- tensorflow/python/keras/losses.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tensorflow/python/keras/losses.py b/tensorflow/python/keras/losses.py index f75e6af6e30..bda32897fc5 100644 --- a/tensorflow/python/keras/losses.py +++ b/tensorflow/python/keras/losses.py @@ -1728,12 +1728,13 @@ def cosine_similarity(y_true, y_pred, axis=-1): class CosineSimilarity(LossFunctionWrapper): """Computes the cosine similarity between labels and predictions. - Note that it is a negative quantity between -1 and 0, where 0 indicates - orthogonality and values closer to -1 indicate greater similarity. 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. + 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))`