来自外部Python函数的Keras中的自定义损失

时间:2019-03-18 19:57:42

标签: python tensorflow machine-learning keras deep-learning

我想从外部来源获得损失,因此在损失函数中,输入数据为0的矩阵,我将其重置为零(yPred-yTrue-yPred),然后将该值增加为0由我的true_loss决定,它来自my_function(x,y,z):

def lossFunction(yTrue,yPred):
    #x = output 1
    #y = output 2
    #z = output 3
    true_loss = my_function(x, y, z) #LOWER IS BETTER

    return K.mean(K.square(yPred - yTrue - yPred) + true_loss, axis=-1) #first part is always 0, plus our custom (true) loss

我需要x,y和z作为数字的最后一层(3个神经元的密集层)的输出,然后函数评估那组数字

因此,网络的目标是忽略输入数据并最小化函数my_function(...)

这可能吗?由于我注意到有打印,所以lossFunction仅在开始时执行一次。自定义回调存在相同的问题,因为无法在损失函数中更新变量,并且由于模型的发展,x,y和z会发生变化,因此my_function将是动态的。

谢谢!

0 个答案:

没有答案