Where all of the losses are situated.

batch_hard_triplet_loss[source]

batch_hard_triplet_loss(labels, embeddings, margin, squared=False)

Build the triplet loss over a batch of embeddings.

For each anchor, we get the hardest positive and hardest negative to form a triplet.

Args: labels: labels of the batch, of size (batch_size,) embeddings: tensor of shape (batch_size, embed_dim) margin: margin for triplet loss squared: Boolean. If true, output is the pairwise squared euclidean distance matrix. If false, output is the pairwise euclidean distance matrix.

Returns: triplet_loss: scalar tensor containing the triplet loss

batch_all_triplet_loss[source]

batch_all_triplet_loss(labels, embeddings, margin, squared=False)

Build the triplet loss over a batch of embeddings.

We generate all the valid triplets and average the loss over the positive ones.

Args: labels: labels of the batch, of size (batch_size,) embeddings: tensor of shape (batch_size, embed_dim) margin: margin for triplet loss squared: Boolean. If true, output is the pairwise squared euclidean distance matrix. If false, output is the pairwise euclidean distance matrix.

Returns: triplet_loss: scalar tensor containing the triplet loss