如何在Keras中创建自定义损失函数,每个样本

时间:2016-11-16 13:01:46

标签: python keras loss

我有例如100个样本(100个输出)。我想用" weight"来编写自定义丢失函数。每个样本:

(target[j] - prediction[j])**2 + f(j),

其中f是自定义数字函数(例如j**2)。我怎样才能做到这一点 现在我只能创造普遍的"损失函数(没有"权重"):

def customloss(target,prediction):
   return (target - prediction)**2

问题是我无法获得索引(j)。

1 个答案:

答案 0 :(得分:0)

这可能无关紧要,但是您可以使用输入层创建第二个网络。向该输入层传递一个表示权重的数组。

现在包装您的模型:

person2

由于损失函数的输出也是张量,因此可以将weight_layer添加到损失中。 例如:

weight_layer = Input(shape=(None,dim))
m2 = Model(input=[m1.inputs,weight_layer],output=m1.outputs)