Python Keras Custom Loss,使用输入中的丢失功能

时间:2017-12-22 00:01:22

标签: python keras loss loss-function

我正在尝试为Keras回归任务创建自定义丢失函数。

我预测游戏中每分钟得分,并且训练"匹配"可变长度,以分钟为单位。为了帮助模型学习,我想包括小组在损失函数中扮演的分钟数,因此我们可以正确地“惩罚”#34;对于持续时间较长的小组失踪。

我知道我需要使用Keras后端/张量操作,但我仍然坚持如何乘以分钟张量。这是我到目前为止的一些基本代码(伪代码/跳过不重要的地方):

def penalized_loss(minutes):
    def loss(y_true, y_pred):

        # Normal mean_squared_error
        lost = K.mean(K.square(y_pred - y_true), axis=-1)

        # Would like something like this where minutes are included, but as a valid tensor operation
        not_valid_result = K.mean(K.square(y_pred - y_true) * minutes, axis=-1)

        return lost

    return loss

minutes = np.array(of some sort)

def baseline_model():
    # create model here...
    # ....

    # Compile model
    model.compile(loss=[penalized_loss(minutes)], optimizer='adam')
    return model

在几分钟内完成的关闭工作正如我所料,我只是坚持如何进行损失计算的* minutes部分。

提前致谢!

1 个答案:

答案 0 :(得分:0)

为了在图表中使用分钟,它需要是张量,除非分钟是一个常量,它在程序的生命周期中具有固定值(在这种情况下,你正在做的事情应该有效)。