gpt4 book ai didi

tensorflow - 如何在 TensorFlow 中实现 Kullback-Leibler 损失?

转载 作者:行者123 更新时间:2023-12-04 22:56:34 30 4
gpt4 key购买 nike

我需要最小化 KL loss tensorflow .

我试过这个功能 tf.contrib.distributions.kl(dist_a, dist_b, allow_nan=False, name=None) ,但我失败了。

我尝试手动实现它:

def kl_divergence(p,q):
return p* tf.log(p/q)+(1-p)*tf.log((1-p)/(1-q))

这是正确的吗?

最佳答案

你有什么是交叉熵,KL散度应该是这样的:

def kl_divergence(p, q): 
return tf.reduce_sum(p * tf.log(p/q))

这假设 p 和 q 都是 float 的一维张量,形状相同,并且对于每个张量,它们的值总和为 1。

如果 p 和 q 是符合上述约束的一维张量的大小相等的小批量,它也应该有效。

关于tensorflow - 如何在 TensorFlow 中实现 Kullback-Leibler 损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43298450/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com