Spaces:
Sleeping
Sleeping
for epoch in range(num_epochs): | |
optimizer.zero_grad() | |
anchor_vec = product_model(anchor_data) | |
positive_vec = product_model(positive_data) | |
negative_vec = product_model(negative_data) | |
# 트립렛 손실 계산 | |
positive_distance = F.pairwise_distance(anchor_vec, positive_vec) | |
negative_distance = F.pairwise_distance(anchor_vec, negative_vec) | |
triplet_loss = torch.clamp(positive_distance - negative_distance + margin, min=0).mean() | |
# 역전파와 최적화 | |
triplet_loss.backward() | |
optimizer.step() | |
print(f"Epoch {epoch + 1}, Loss: {triplet_loss.item()}") | |