【发布时间】: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_true 和 y_pred 的值传递给函数。
代码学分:https://towardsdatascience.com/generating-new-faces-with-variational-autoencoders-d13cfcb5f0a8
【问题讨论】:
标签: python tensorflow keras