kl_divergence

paddle.distribution. kl_divergence ( p, q ) [源代码]

计算分布p和q之间的KL散度。

\[KL(p||q) = \int p(x)log\frac{p(x)}{q(x)} \mathrm{d}x\]

参数

  • p (Distribution) - 概率分布实例,继承于Distribution基类。

  • q (Distribution) - 概率分布实例,继承于Distribution基类。

返回

  • Tensor - 分布p和分布q之间的KL散度。

代码示例

import paddle

p = paddle.distribution.Beta(alpha=0.5, beta=0.5)
q = paddle.distribution.Beta(alpha=0.3, beta=0.7)

print(paddle.distribution.kl_divergence(p, q))
# Tensor(shape=[1], dtype=float32, place=CUDAPlace(0), stop_gradient=True,
#        [0.21193528])