keras (TF) 如何知道如何区分我的自定义损失?

数据挖掘 喀拉斯 张量流 损失函数
2022-02-12 19:50:11

假设我有这个自定义损失:

def custom_loss(y_true, y_pred): out = K.clip(y_pred, 1e-8, 1-1e-8) log_lik = y_true*K.log(out) return K.sum(-log_lik*advantages)

keras(以 TF 作为后端)如何知道如何根据输入进行区分,而忽略“优势”作为系数?它是在数字上做到的吗?如果是这样,它与它自己的损失函数相同还是仅与自定义相同?

1个回答

keras 将通过查看您用作自定义损失函数的一部分的操作图来自动区分。由于您仅使用 keras“知道”的操作,也就是作为 TensorFlow 中的操作存在的操作,因此 keras 将自动生成要反向传播的操​​作图。

但是,如果您有一个使用 TF 不知道的操作的自定义损失函数,您必须编写一个自定义操作,以便 TF 知道如何反向传播