Mini-Pyro Interface

This interface provides a backend for the Pyro probabilistic programming language. This interface is intended to be used indirectly by writing standard Pyro code and setting pyro_backend("funsor"). See examples/minipyro.py for example usage.

Mini Pyro

This file contains a minimal implementation of the Pyro Probabilistic Programming Language. The API (method signatures, etc.) match that of the full implementation as closely as possible. This file is independent of the rest of Pyro, with the exception of the pyro.distributions module.

An accompanying example that makes use of this implementation can be found at examples/minipyro.py.

class Distribution(funsor_dist, sample_inputs=None)[source]

Bases: object

log_prob(value)[source]
expand_inputs(name, size)[source]
get_param_store()[source]
class Messenger(fn=None)[source]

Bases: object

process_message(msg)[source]
postprocess_message(msg)[source]
class trace(fn=None)[source]

Bases: funsor.minipyro.Messenger

postprocess_message(msg)[source]
get_trace(*args, **kwargs)[source]
class replay(fn, guide_trace)[source]

Bases: funsor.minipyro.Messenger

process_message(msg)[source]
class block(fn=None, hide_fn=<function block.<lambda>>)[source]

Bases: funsor.minipyro.Messenger

process_message(msg)[source]
class seed(fn=None, rng_seed=None)[source]

Bases: funsor.minipyro.Messenger

class CondIndepStackFrame(name, size, dim)

Bases: tuple

dim

Alias for field number 2

name

Alias for field number 0

size

Alias for field number 1

class PlateMessenger(fn, name, size, dim)[source]

Bases: funsor.minipyro.Messenger

process_message(msg)[source]
tensor_to_funsor(value, cond_indep_stack, output)[source]
class log_joint(fn=None)[source]

Bases: funsor.minipyro.Messenger

process_message(msg)[source]
postprocess_message(msg)[source]
apply_stack(msg)[source]
sample(name, fn, obs=None, infer=None)[source]
param(name, init_value=None, constraint=Real(), event_dim=None)[source]
plate(name, size, dim)[source]
class PyroOptim(optim_args)[source]

Bases: object

class Adam(optim_args)[source]

Bases: funsor.minipyro.PyroOptim

TorchOptimizer

alias of torch.optim.adam.Adam

class ClippedAdam(optim_args)[source]

Bases: funsor.minipyro.PyroOptim

TorchOptimizer

alias of pyro.optim.clipped_adam.ClippedAdam

class SVI(model, guide, optim, loss)[source]

Bases: object

step(*args, **kwargs)[source]
Expectation(log_probs, costs, sum_vars, prod_vars)[source]
elbo(model, guide, *args, **kwargs)[source]
class ELBO(**kwargs)[source]

Bases: object

class Trace_ELBO(**kwargs)[source]

Bases: funsor.minipyro.ELBO

class TraceMeanField_ELBO(**kwargs)[source]

Bases: funsor.minipyro.ELBO

class TraceEnum_ELBO(**kwargs)[source]

Bases: funsor.minipyro.ELBO

class Jit(fn, **kwargs)[source]

Bases: object

class Jit_ELBO(elbo, **kwargs)[source]

Bases: funsor.minipyro.ELBO

JitTrace_ELBO(**kwargs)[source]
JitTraceMeanField_ELBO(**kwargs)[source]
JitTraceEnum_ELBO(**kwargs)[source]