Last active
July 19, 2023 10:30
-
-
Save weiliu620/52d140b22685cf9552da4899e2160183 to your computer and use it in GitHub Desktop.
Dice coefficient loss function in PyTorch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def dice_loss(pred, target): | |
"""This definition generalize to real valued pred and target vector. | |
This should be differentiable. | |
pred: tensor with first dimension as batch | |
target: tensor with first dimension as batch | |
""" | |
smooth = 1. | |
# have to use contiguous since they may from a torch.view op | |
iflat = pred.contiguous().view(-1) | |
tflat = target.contiguous().view(-1) | |
intersection = (iflat * tflat).sum() | |
A_sum = torch.sum(tflat * iflat) | |
B_sum = torch.sum(tflat * tflat) | |
return 1 - ((2. * intersection + smooth) / (A_sum + B_sum + smooth) ) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@weiliu620 how to enable autograd fr this?