使用 tensorflow 作为后端时,如何计算 keras 中的 kl 散度?我计算 L1 损失如下:
def l1_loss(y_true, y_pred):
return K.sum(K.abs(y_pred - y_true), axis=-1)
Run Code Online (Sandbox Code Playgroud)
Keras 已经实现了 KL-divergence,可以在这里看到,代码如下:
def kullback_leibler_divergence(y_true, y_pred):
y_true = K.clip(y_true, K.epsilon(), 1)
y_pred = K.clip(y_pred, K.epsilon(), 1)
return K.sum(y_true * K.log(y_true / y_pred), axis=-1)
Run Code Online (Sandbox Code Playgroud)
所以只需使用 kld、KLD 或 kullback_leibler_divergence 作为损失。
归档时间: |
|
查看次数: |
8316 次 |
最近记录: |