Metric Learning: nn.TripletMarginLoss și CosineEmbeddingLoss în PyTorch & Deep Learning Practic

Sintaxă & invocare Python
criterion = nn.TripletMarginLoss(margin=1.0, p=2)

În problemele de metric learning, recunoaștere facială și antrenare a modelelor de căutare vectorială (dense retrieval), obiectivul este ca vectorul de ancoră (Anchor) să fie mai aproape de exemplul pozitiv (Positive) decât de exemplul negativ (Negative) cu cel puțin o margine specificată (margin):

Loss = max(0, d(a, p) - d(a, n) + margin)

import torch
import torch.nn as nn

triplet_loss = nn.TripletMarginLoss(margin=1.0, p=2)

anchor = torch.randn(10, 128, requires_grad=True)
positive = torch.randn(10, 128, requires_grad=True)
negative = torch.randn(10, 128, requires_grad=True)

loss = triplet_loss(anchor, positive, negative)
loss.backward()
print("Gradiente ancoră calculate:", anchor.grad is not None)

O variantă frecvent utilizată este nn.CosineEmbeddingLoss, care utilizează unghiul cosinus în loc de distanța euclidiană L2.

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Metric Learning: nn.TripletMarginLoss și CosineEmbeddingLoss

Ai o întrebare despre Metric Learning: nn.TripletMarginLoss și CosineEmbeddingLoss sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.