自定义损失功能取决于Keras中的模型预测

时间:2017-04-25 18:50:33

标签: python tensorflow keras

我正在使用带有TensorFlow后端的Keras。我正在尝试实现此paper(全球归一化基于过渡的神经网络)中描述的目标函数。它的要点是我需要一个取决于当前网络及其预测的目标函数。它采用训练序列并观察网络预测该序列的程度,并基于此在两个目标函数之间切换。最终目标值取决于模型的预测。

我已经编写了一个自定义丢失函数,允许我访问模型(受this discussion启发):

def global_norm(model):
    def loss(y_true, y_pred):
        print model.weights #To check if the model is available
        return (y_true - y_pred) #Dummy objective function
    return loss 

编译模型:

model.compile(loss=global_norm(model), ...)

开始网络培训后,它会打印出一次模型图层列表,然后再打印出来。我知道损失函数只被调用一次,之后它变成了'渐变'。有没有办法为每个样本调用目标函数?或者我需要一种不同的方法吗?

编辑:澄清:它正在切换的两个目标是渐变,优化器应该沿着这个函数采取渐变步骤。我认为如果为每个样本调用目标函数,它应该有效。

0 个答案:

没有答案