# tensorplay.distributions.kl_divergence Source: https://www.tensorplay.cn/docs/generated/tensorplay.distributions.kl_divergence.html ```python tensorplay.distributions.kl_divergence(p: Distribution, q: Distribution) → Tensor ``` Compute Kullback-Leibler divergence $KL(p \| q)$ between two distributions. $$KL(p \| q) = \int p(x) \log\frac {p(x)} {q(x)} \,dx$$ Parameters: - p ([Distribution](/docs/generated/tensorplay.distributions.Distribution.html#tensorplay.distributions.Distribution)) – A [Distribution](/docs/generated/tensorplay.distributions.Distribution.html#tensorplay.distributions.Distribution) object. - q ([Distribution](/docs/generated/tensorplay.distributions.Distribution.html#tensorplay.distributions.Distribution)) – A [Distribution](/docs/generated/tensorplay.distributions.Distribution.html#tensorplay.distributions.Distribution) object. Returns: A batch of KL divergences of shape batch_shape. Return type: [Tensor](/docs/generated/tensorplay.Tensor.html#tensorplay.Tensor) Raises: [NotImplementedError](https://docs.python.org/3/builtins/exceptions.html#NotImplementedError) – If the distribution types have not been registered via [register_kl()](/docs/generated/tensorplay.distributions.register_kl.html#tensorplay.distributions.register_kl). KL divergence is currently implemented for the following distribution pairs: - [Bernoulli](/docs/generated/tensorplay.distributions.Bernoulli.html#tensorplay.distributions.Bernoulli) and [Bernoulli](/docs/generated/tensorplay.distributions.Bernoulli.html#tensorplay.distributions.Bernoulli) - [Bernoulli](/docs/generated/tensorplay.distributions.Bernoulli.html#tensorplay.distributions.Bernoulli) and [Poisson](/docs/generated/tensorplay.distributions.Poisson.html#tensorplay.distributions.Poisson) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [Binomial](/docs/generated/tensorplay.distributions.Binomial.html#tensorplay.distributions.Binomial) and [Binomial](/docs/generated/tensorplay.distributions.Binomial.html#tensorplay.distributions.Binomial) - [Categorical](/docs/generated/tensorplay.distributions.Categorical.html#tensorplay.distributions.Categorical) and [Categorical](/docs/generated/tensorplay.distributions.Categorical.html#tensorplay.distributions.Categorical) - [Cauchy](/docs/generated/tensorplay.distributions.Cauchy.html#tensorplay.distributions.Cauchy) and [Cauchy](/docs/generated/tensorplay.distributions.Cauchy.html#tensorplay.distributions.Cauchy) - [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [Dirichlet](/docs/generated/tensorplay.distributions.Dirichlet.html#tensorplay.distributions.Dirichlet) and [Dirichlet](/docs/generated/tensorplay.distributions.Dirichlet.html#tensorplay.distributions.Dirichlet) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [ExponentialFamily](/docs/generated/tensorplay.distributions.ExponentialFamily.html#tensorplay.distributions.ExponentialFamily) and [ExponentialFamily](/docs/generated/tensorplay.distributions.ExponentialFamily.html#tensorplay.distributions.ExponentialFamily) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [Geometric](/docs/generated/tensorplay.distributions.Geometric.html#tensorplay.distributions.Geometric) and [Geometric](/docs/generated/tensorplay.distributions.Geometric.html#tensorplay.distributions.Geometric) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [HalfNormal](/docs/generated/tensorplay.distributions.HalfNormal.html#tensorplay.distributions.HalfNormal) and [HalfNormal](/docs/generated/tensorplay.distributions.HalfNormal.html#tensorplay.distributions.HalfNormal) - [Independent](/docs/generated/tensorplay.distributions.Independent.html#tensorplay.distributions.Independent) and [Independent](/docs/generated/tensorplay.distributions.Independent.html#tensorplay.distributions.Independent) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [LowRankMultivariateNormal](/docs/generated/tensorplay.distributions.LowRankMultivariateNormal.html#tensorplay.distributions.LowRankMultivariateNormal) and [LowRankMultivariateNormal](/docs/generated/tensorplay.distributions.LowRankMultivariateNormal.html#tensorplay.distributions.LowRankMultivariateNormal) - [LowRankMultivariateNormal](/docs/generated/tensorplay.distributions.LowRankMultivariateNormal.html#tensorplay.distributions.LowRankMultivariateNormal) and [MultivariateNormal](/docs/generated/tensorplay.distributions.MultivariateNormal.html#tensorplay.distributions.MultivariateNormal) - [MultivariateNormal](/docs/generated/tensorplay.distributions.MultivariateNormal.html#tensorplay.distributions.MultivariateNormal) and [LowRankMultivariateNormal](/docs/generated/tensorplay.distributions.LowRankMultivariateNormal.html#tensorplay.distributions.LowRankMultivariateNormal) - [MultivariateNormal](/docs/generated/tensorplay.distributions.MultivariateNormal.html#tensorplay.distributions.MultivariateNormal) and [MultivariateNormal](/docs/generated/tensorplay.distributions.MultivariateNormal.html#tensorplay.distributions.MultivariateNormal) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Laplace](/docs/generated/tensorplay.distributions.Laplace.html#tensorplay.distributions.Laplace) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [OneHotCategorical](/docs/generated/tensorplay.distributions.OneHotCategorical.html#tensorplay.distributions.OneHotCategorical) and [OneHotCategorical](/docs/generated/tensorplay.distributions.OneHotCategorical.html#tensorplay.distributions.OneHotCategorical) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) - [Poisson](/docs/generated/tensorplay.distributions.Poisson.html#tensorplay.distributions.Poisson) and [Bernoulli](/docs/generated/tensorplay.distributions.Bernoulli.html#tensorplay.distributions.Bernoulli) - [Poisson](/docs/generated/tensorplay.distributions.Poisson.html#tensorplay.distributions.Poisson) and [Binomial](/docs/generated/tensorplay.distributions.Binomial.html#tensorplay.distributions.Binomial) - [Poisson](/docs/generated/tensorplay.distributions.Poisson.html#tensorplay.distributions.Poisson) and [Poisson](/docs/generated/tensorplay.distributions.Poisson.html#tensorplay.distributions.Poisson) - [TransformedDistribution](/docs/generated/tensorplay.distributions.TransformedDistribution.html#tensorplay.distributions.TransformedDistribution) and [TransformedDistribution](/docs/generated/tensorplay.distributions.TransformedDistribution.html#tensorplay.distributions.TransformedDistribution) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Beta](/docs/generated/tensorplay.distributions.Beta.html#tensorplay.distributions.Beta) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [ContinuousBernoulli](/docs/generated/tensorplay.distributions.ContinuousBernoulli.html#tensorplay.distributions.ContinuousBernoulli) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Exponential](/docs/generated/tensorplay.distributions.Exponential.html#tensorplay.distributions.Exponential) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Gamma](/docs/generated/tensorplay.distributions.Gamma.html#tensorplay.distributions.Gamma) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Gumbel](/docs/generated/tensorplay.distributions.Gumbel.html#tensorplay.distributions.Gumbel) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Normal](/docs/generated/tensorplay.distributions.Normal.html#tensorplay.distributions.Normal) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Pareto](/docs/generated/tensorplay.distributions.Pareto.html#tensorplay.distributions.Pareto) - [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform) and [Uniform](/docs/generated/tensorplay.distributions.Uniform.html#tensorplay.distributions.Uniform)