beanmachine.ppl.inference.sampler module

class beanmachine.ppl.inference.sampler.Sampler(kernel: BaseInference, initial_world: World, num_samples: Optional[int] = None, num_adaptive_samples: int = 0)

Bases: Generator[, Optional[], None]

Samplers are generators of Worlds that generate samples from the joint. It is used to generate Monte Carlo samples during MCMC inference. At each iteration, the proposer(s) proposer a values for the random variables, which are then accepted according to the MH ratio. The next world is then returned.

  • kernel (BaseInference) – Inference class to get proposers from.

  • initial_world (World) – Optional initial world to initialize from.

  • num_samples (int, Optional) – Number of samples. If none is specified, num_samples = inf.

  • num_adaptive_samples (int, Optional) – Number of adaptive samples, defaults to 0.

send(world: Optional[] = None)

At each iteration, the following is executed: 1. Shuffle all the proposers in the world. 2. For each proposer, propose a world and accept/reject it based on MH ratio. 3. Run adaptation method if applicable. 4. Update the new current world as


world – Optional World to use to propose. If none is provided, is used.

throw(typ: Type[BaseException], val: Optional[BaseException] = None, tb: Optional[types.TracebackType] = None) NoReturn

Use the default error handling behavior (thorw Exception as-is)