【发布时间】:2020-09-28 18:49:39
【问题描述】:
我正在尝试使用分类交叉熵在 Keras 中计算自定义损失函数。 我想为两个输出(我的网络有 1 个输入和 2 个输出)创建一个独特的损失函数,即:
L= lambda*L1+(1-lambda)*L2
其中 lambda 介于 0 和 1 之间,L1 是第一个输出的分类损失熵和第二个输出的 L2... 我试过这样:
def my_loss(y_true, y_pred):
final_loss = (0.8*(losses.binary_crossentropy(y_true[:, 0], y_pred[:, 0])+(0.2)*( losses.categorical_crossentropy(y_true[:, 1:], y_pred[:,1:]))))
return final_loss
然后:
model.compile(optimizer='Adam', loss=[my_loss],metrics=[metrics.categorical_accuracy])
但第一个问题是我的损失仍然是函数的 2 倍,我不知道它是否正确;另外我不能将 lambda 传递给 my_loss。
我该怎么办?
【问题讨论】:
标签: python keras deep-learning loss-function