|View source on GitHub|
Computes the contrastive loss between
tfa.losses.contrastive_loss( y_true, y_pred, margin=1.0 )
This loss encourages the embedding to be close to each other for the samples of the same label and the embedding to be far apart at least by the margin constant for the samples of different labels.
The euclidean distances
y_pred between two embedding matrices
b with shape [batch_size, hidden_size] can be computed
# y_pred = \sqrt (\sum_i (a[:, i] - b[:, i])^2) y_pred = tf.linalg.norm(a - b, axis=1)
y_true: 1-D integer
Tensorwith shape [batch_size] of binary labels indicating positive vs negative pair.
y_pred: 1-D float
Tensorwith shape [batch_size] of distances between two embedding matrices.
margin: margin term in the loss definition.
contrastive_loss: 1-D float
Tensorwith shape [batch_size].