mindspore.nn.DiceLoss
- class mindspore.nn.DiceLoss(smooth=1e-05)[源代码]
Dice系数是一个集合相似性loss,用于计算两个样本之间的相似性。当分割结果最好时,Dice系数的值为1,当分割结果最差时,Dice系数的值为0。
Dice系数表示两个对象之间的面积与总面积的比率。 函数如下:
\[dice = 1 - \frac{2 * |pred \bigcap true|}{|pred| + |true| + smooth}\]\(pred\) 表示 logits ,\(true\) 表示 labels 。
- 参数:
smooth (float) - 将添加到分母中,以提高数值稳定性的参数。取值大于0。默认值:
1e-5
。
- 输入:
logits (Tensor) - 输入预测值。数据类型必须为float16或float32。
labels (Tensor) - 输入目标值,一般与 logits 的shape相同。数据类型必须为float16或float32。
- 输出:
Tensor,shape为每样本采样的Dice系数的Tensor。
- 异常:
ValueError - logits 的维度与 labels 不同。
TypeError - logits 或 labels 的类型不是Tensor。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> from mindspore import Tensor, nn >>> import numpy as np >>> loss = nn.DiceLoss(smooth=1e-5) >>> logits = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]), mindspore.float32) >>> labels = Tensor(np.array([[0, 1], [1, 0], [0, 1]]), mindspore.float32) >>> output = loss(logits, labels) >>> print(output) 0.38596618