使用tensorflow作为后端时如何计算keras中的kl散度?我计算 L1 损失如下:
def l1_loss(y_true, y_pred):
return K.sum(K.abs(y_pred - y_true), axis=-1)
可以看出,Keras 已经实现了 KL 散度here https://github.com/fchollet/keras/blob/master/keras/losses.py#L48,代码就是:
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)
因此只需使用 kld、KLD 或 kullback_leibler_divergence 作为损失即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)