我想在Keras中实现自定义丢失,将最后一个仿射层作为输入。这是Hariharan et al. 2017
中描述的SGM损失这意味着损失函数不仅得到y_true和y_predict作为参数,而且还得到最后的仿射层。如何在keras中实现?
答案 0 :(得分:0)
您可以创建自己的自定义图层,并在self.add_loss
方法中调用call
。该值应该是批次中样本的平均标量张量。然后,在编译模型时,这将添加到通常的损失函数(y_true
和y_pred
的函数)。如果不需要,您还可以选择指定loss=None
。
参见例如https://github.com/fchollet/keras/blob/master/examples/variational_autoencoder.py,其中KL分歧被添加到伯努利负对数似然,以形成变分自动编码器的负证据下限损失。