在计算binary_crossentropy损失时,有没有办法使喀拉拉邦忽略标签?

时间:2019-04-05 07:05:42

标签: keras image-segmentation loss-function loss semantic-segmentation

我正在为(多种)语义分割任务编写一个自定义损失函数,其中我为目标(2-d数组)和预测计算二进制交叉熵(使用keras后端)。总损失是4种不同损失函数的总和。

在其中两个函数中,我需要制作一个自定义的目标数组,并使用这些目标和预测来计算二进制交叉熵。在这里,我想忽略而不计算目标数组中label为1(前景)的损失。

在pytorch的nll_loss()中,有一个参数'ignore_index'与我正在尝试的类似。

我正在尝试实现以下目标:

def binary_crossentropy(y_true, y_pred, ignore_label=1):
    if ignore_label == 1:
        return -(1-y_true)*log(1-y_pred)
    if ignore_label == 0:
        return -y_true*log(y_pred)

    return -(y_true*log(y_pred) + (1-y_true)*log(1-y_pred))

但是对于keras自定义损失函数。

0 个答案:

没有答案