pytorch怎么计算kl散度


这篇文章将为大家详细讲解有关pytorch怎么计算k免费云主机域名l散度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。小编偶然从pytorch讨论论坛中看到的一个问题,kl divergence 在TensorFlow中和pytorch中计算结果不同,平时没有注意到,记录下。KL散度( Kullback–Leibler divergence),又称相对熵,是描述两个概率分布 P 和 Q 差异的一种方法。计算公式:可以发现,P 和 Q 中元素的个数不用相等,只需要两个分布中的离散元素一致。两个离散分布分布分别为 P 和 QP 的分布为:{1,1,2,2,3}Q 的分布为:{1,1,1,1,1,2,3,3,3,3}我们发现,虽然两个分布中元素个数不相同,P 的元素个数为 5,Q 的元素个数为 10。但里面的元素都有 “1”,“2”,“3” 这三个元素。当 x = 1时,在 P 分布中,“1” 这个元素的个数为 2,故 P(x = 1) = 2/5 = 0.4,在 Q 分布中,“1” 这个元素的个数为 5,故 Q(x = 1) = 5/10 = 0.5同理,当 x = 2 时,P(x = 2) = 2/5 = 0.4 ,Q(x = 2) = 1/10 = 0.1当 x = 3 时,P(x = 3) = 1/5 = 0.2 ,Q(x = 3) = 4/10 = 0.4至此,就计算完成了两个离散变量分布的KL散度。pytorch中有用于计算kl散度的函数 kl_div计算 D (p||q)与手算结果相同(这是计算正确的,结果有差异是因为pytorch这个函数中默认的是以e为底)注意:1、函数中的 p q 位置相反(也就是想要计算D(p||q),要写成kl_div(q.log(),p)的形式),而且q要先取 log2、reduction 是选择对各部分结果做什么操作,默认为取平均数,这里选择求和好别扭的用法,不知道为啥官方把它设计成这样补充:pytorch 的KL divergence的实现关于“pytorch怎么计算kl散度”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

相关推荐: 小程序秘钥appsecret怎么看

这篇文章主要介绍“小程序秘钥appsecret怎么看”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“小程序秘钥appsecret怎么看”文章能帮助大家解决问题。 appsecret什么意思? 小程序密钥开发工具在开发授权…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/22 20:48
Next 08/22 20:48

相关推荐