我正在尝试在Keras中创建自定义损失函数。我想根据神经网络的输入和预测输出来计算损失函数。我创建了自定义损失函数,该函数使用y_true
,y_pred
和t
作为参数。 t
是我要用于自定义损失函数计算的变量。我在损失函数中有两个部分(请参考所附图片)
我可以创建损失函数的第一部分(均方误差)。我想对y_pred
张量进行切片并将其分配给三个张量(y1_pred
,y2_pred
和y3_pred
)。有没有办法直接在Keras中做到这一点,或者我必须为此使用tensorflow?如何计算喀拉拉邦的梯度?我需要创建一个会话来计算loss2
吗?
def customloss(y_true, y_pred, t):
loss1 = K.mean(K.square(y_pred - y_true), axis=-1)
loss2 = tf.gradients(y1_pred, t) - y1_pred*y3_pred
return loss1+loss2