mindsponge.metrics.MultiClassFocal
- class mindsponge.metrics.MultiClassFocal(num_class, beta=0.99, gamma=2.0, e=0.1, neighbors=2, not_focal=False, reducer_flag=False)[源代码]
计算多分类中预测值和真实值之间的焦点损失,详细实现过程参考: Lin, Tsung-Yi, et al. ‘Focal loss for dense object detection’ 。
- 参数:
num_class (int) - 分类类别数。
beta (float) - 滑动平均的系数。默认值:
0.99
。gamma (float) - 超参数。默认值:
2.0
。e (float) - 比例系数,focal误差占比。默认值:
0.1
。neighbors (int) - 标签中需要mask的邻居数。默认值:
2
。not_focal (bool) - 是否使用focal误差。默认值:
False
。reducer_flag (bool) - 是否对多卡的标签值做聚合。默认值:
False
。
- 输入:
prediction (Tensor) - 模型预测值,shape为 \((batch\_size, ndim)\) 。
target (Tensor) - 标签值,shape为 \((batch\_size, ndim)\) 。
- 输出:
Tensor。shape为 \((batch\_size, )\) 。
- 支持平台:
Ascend
GPU
样例:
>>> import numpy as np >>> from mindspore import Tensor >>> from mindsponge.metrics import MultiClassFocal >>> net = MultiClassFocal(10) >>> prediction = Tensor(np.random.randn(32, 10).astype(np.float32)) >>> target = Tensor(np.random.randn(32, 10).astype(np.float32)) >>> out = net(prediction, target) >>> print(out.shape) (32,)