- 前言
- Dice系数
- Dice Loss
- 代码
本篇记录一个语义分割的常用损失函数,Dice Loss
Dice系数Dice系数用于衡量两个样本之间的点的相似度,公式如下: S = 2 ∣ X ∩ Y ∣ ∣ X ∣ + ∣ Y ∣ S=\frac{2|X\cap Y|}{|X| + |Y|} S=∣X∣+∣Y∣2∣X∩Y∣ 其中, X ∩ Y X\cap Y X∩Y表示XY样本之间的交集,||表示元素个数,分子的系数为2,因为分母的计算实际上把交集重复计算了两次。
Dice LossDice Loss实际上就是Dice系数的负数: l o s s = 1 − S = 1 − 2 ∣ X ∩ Y ∣ ∣ X ∣ + ∣ Y ∣ loss=1-S=1-\frac{2|X\cap Y|}{|X| + |Y|} loss=1−S=1−∣X∣+∣Y∣2∣X∩Y∣ Dice系数越大,Loss越小,表示两个样本越相似。
代码paddle中直接给出了一个api计算Dice Loss,可以计算二分类和多分类的Dice Loss:
pred = paddle.ones([b, h, w, n])
label = paddle.ones([b, h, w, 1])
paddle.nn.functional.dice_loss(pred, label)
其中,pred表示模型的多分类输入,shape=[b, h, w, n],n表示多分类的分数,label表示标签mask,shape=[b, h, w, 1]