首页 > 解决方案 > 自定义 Keras 损失(不具有 f(y_true, y_pred) 形式)

问题描述

def charbonnier(I_x, I_y, I_t, U, V, e):
    loss = K.sqrt(K.pow((U*I_x + V*I_y + I_t), 2) + e)
    return K.sum(loss)

我想使用这个成本函数并针对 U 和 V 对其进行优化。我目前正在努力让它与 Keras 一起工作,因为 Keras 损失函数只能具有 f(y_true, y_pred) 的形式。

损失

我的模型是完全无人监督的,我没有真实情况。I_x、I_y 和 I_t 是常数,模型的目标是学习最小化 E(F) 的 U 和 V。所以我的问题是:在 Keras 中实现这种损失函数(不具有 f(y_true, y_pred) 形式)的正确方法是什么?

标签: pythonkerasdeep-learning

解决方案


定义损失函数如下:

def charbonnier(I_x, I_y, I_t, U, V, e)
    def loss_fun(y_true, y_pred):
        loss = K.sqrt(K.pow((U*I_x + V*I_y + I_t), 2) + e)
        return K.sum(loss)
    return loss_fun

推荐阅读