Keras的自定义损失

时间:2017-12-06 09:23:18

标签: python keras

我想在Keras中实现自定义丢失,将最后一个仿射层作为输入。这是Hariharan et al. 2017

中描述的SGM损失

这意味着损失函数不仅得到y_true和y_predict作为参数,而且还得到最后的仿射层。如何在keras中实现?

1 个答案:

答案 0 :(得分:0)

您可以创建自己的自定义图层,并在self.add_loss方法中调用call。该值应该是批次中样本的平均标量张量。然后,在编译模型时,这将添加到通常的损失函数(y_truey_pred的函数)。如果不需要,您还可以选择指定loss=None

参见例如https://github.com/fchollet/keras/blob/master/examples/variational_autoencoder.py,其中KL分歧被添加到伯努利负对数似然,以形成变分自动编码器的负证据下限损失。