我想从外部来源获得损失,因此在损失函数中,输入数据为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将是动态的。
谢谢!