【问题标题】:How does a custom function used in a Keras layer obtain its arguments?Keras 层中使用的自定义函数如何获取其参数?
【发布时间】:2020-10-25 18:25:21
【问题描述】:

我知道如何定义和利用自定义函数(例如,损失函数)可以定义为传递给 Keras 层。但是,我不明白这个函数如何从模型中考虑它的参数。

例如:

以下是自定义损失函数的定义:

def kl_loss(y_true, y_pred):
    kl_loss = -0.5 * K.sum(1 + log_var - K.square(mean_mu) - K.exp(log_var), axis = 1)
    return kl_loss

def r_loss(y_true, y_pred):
    return K.mean(K.square(y_true - y_pred), axis = [1,2,3])

def total_loss(y_true, y_pred):
    return LOSS_FACTOR*r_loss(y_true, y_pred) + kl_loss(y_true, y_pred)

定义了这个自定义损失函数后,我将其传递给 Keras 模型,如下所示:

model.compile(optimizer=adam_optimizer, loss = total_loss, metrics = [r_loss, kl_loss])

上面的工作完美,但是,我不明白 Keras 模型如何将 y_truey_pred 的值传递给函数。

代码学分:https://towardsdatascience.com/generating-new-faces-with-variational-autoencoders-d13cfcb5f0a8

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    这是我的理解,

    编译时指定为loss的函数(total_loss)隐式获取样本的真实值和预测值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多