在多个损失 keras 上训练具有单一输出的模型

Training a model with single output on multiple losses keras

我正在使用 keras 构建图像分割模型,我想在多个损失函数上训练我的模型。我已经看到 this link 但我正在为这种情况寻找更简单直接的解决方案,因为我的损失函数非常复杂。有人能告诉我如何在 keras 中构建具有多个损失的单输出模型吗?

您可以使用加权损失对一个输出使用多个损失,加权损失是您的损失乘以权重的总和。创建您的自定义损失,它将 return 其他损失与系数的总和,并将其传递给 model.compile。有一个例子 here.

这只是 here 中的一个示例。你可以玩玩它。

def custom_losses(y_true, y_pred):
    alpha = 0.6
    squared_difference = tf.square(y_true - y_pred)
    Huber = tf.keras.losses.huber(y_true, y_pred)
    return tf.reduce_mean(squared_difference, axis=-1) + (alpha*Huber)

model.compile(optimizer='adam', loss=custom_losses,metrics=['MeanSquaredError'])