Distribution Funsors

This interface provides a number of standard normalized probability distributions implemented as funsors.

class Distribution(*args)[source]

Bases: funsor.terms.Funsor

Funsor backed by a PyTorch/JAX distribution object.

Parameters:*args – Distribution-dependent parameters. These can be either funsors or objects that can be coerced to funsors via to_funsor() . See derived classes for details.
dist_class = 'defined by derived classes'
eager_reduce(op, reduced_vars)[source]
classmethod eager_log_prob(*params)[source]
has_rsample
has_enumerate_support
unscaled_sample(sampled_vars, sample_inputs, rng_key=None)[source]
enumerate_support(expand=False)[source]
class Beta(concentration1, concentration0, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Beta

class BernoulliProbs(probs, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of funsor.torch.distributions._PyroWrapper_BernoulliProbs

class BernoulliLogits(logits, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of funsor.torch.distributions._PyroWrapper_BernoulliLogits

class Binomial(total_count, probs, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Binomial

class Categorical(probs, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Categorical

class CategoricalLogits(logits, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of funsor.torch.distributions._PyroWrapper_CategoricalLogits

class Delta(v, log_density, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.delta.Delta

class Dirichlet(concentration, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Dirichlet

class DirichletMultinomial(concentration, total_count, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.conjugate.DirichletMultinomial

class Gamma(concentration, rate, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Gamma

class GammaPoisson(concentration, rate, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.conjugate.GammaPoisson

class Multinomial(total_count, probs, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Multinomial

class MultivariateNormal(loc, scale_tril, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.MultivariateNormal

class NonreparameterizedBeta(concentration1, concentration0, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.testing.fakes.NonreparameterizedBeta

class NonreparameterizedDirichlet(concentration, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.testing.fakes.NonreparameterizedDirichlet

class NonreparameterizedGamma(concentration, rate, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.testing.fakes.NonreparameterizedGamma

class NonreparameterizedNormal(loc, scale, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.testing.fakes.NonreparameterizedNormal

class Normal(loc, scale, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Normal

class Poisson(rate, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.Poisson

class VonMises(loc, concentration, value='value')

Bases: funsor.distribution.Distribution

dist_class

alias of pyro.distributions.torch.VonMises