# 分割过程中的评价标准:Dice系数,其是一种集合相似度度量指标,通常用于计算两个样本的相似度,
# 值的范围[0-1],分割结果最好时值为1 ,最差时值为0。
# dice = 2*Intersecton/Union, 也就是2倍的交集除以并集。加smooth是为了防止除0情况的发生。
import numpy as np
import torch.nn as nn
import torch.nn.functional as F
def dice_coeff(pred, target):
smooth = 1.
m1 = pred.view(num, -1)
m2 = target.view(num, -1)
intersection = (m1*m2).sum()
return (2. * intersection + smooth) / (m1.sum()+ m2.sum() + smooth)
class SoftDiceLoss(nn.Module):
def __init__(self, weight=None, size_average=True):
super(SoftDiceLoss,self).__init__()
def forward(self, logits, targets):
num = targets.size(0)
smooth = 1.
probs = F.sigmoid(logits)
m1 = probs.view(num, -1)
m2 = targets.view(num, -1)
intersection = (m1*m2)
score = 2. * (intersection.sum(1) + smooth) / (m1.sum(1) + m2.sum(1) + smooth)
# score = 1 - scor
pytorch 定义dice_coeff, SoftDiceLoss,BCELoss2d损失函数
最新推荐文章于 2024-04-10 19:06:25 发布