sequince.proposals#
Attributes#
Classes#
Protocol for proposal distributions used by bridged SMC targets. |
|
Proposal distribution that can be fitted to a particle population. |
|
Adapt a normalizing flow to the proposal-distribution interface. |
Functions#
|
Draw one initial population and retain its target evaluation. |
|
Draw finite-target starting particles for standalone MCMC. |
Module Contents#
- sequince.proposals.logger#
- class sequince.proposals.ProposalDistribution[source]#
Bases:
ProtocolProtocol for proposal distributions used by bridged SMC targets.
- log_prob(particles, context=None)[source]#
Evaluate the log proposal density in particle space.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext | None)
- Return type:
sequince.typing.Array
- sample(n_samples, context=None, *, rng=None, xp=None)[source]#
Draw samples from the proposal distribution.
- Parameters:
n_samples (int)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type:
sequince.typing.Array
- sample_and_log_prob(n_samples, context=None, *, rng=None, xp=None)[source]#
Draw samples and return their log proposal densities.
- Parameters:
n_samples (int)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type:
tuple[sequince.typing.Array, sequince.typing.Array]
- class sequince.proposals.TrainableProposal[source]#
Bases:
ProposalDistribution,ProtocolProposal distribution that can be fitted to a particle population.
- fit(particles, context=None, *, rng=None)[source]#
Fit the proposal and return the fitted proposal.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
- Return type:
Self
- class sequince.proposals.FlowProposal(flow, *, fit_kwargs=None)[source]#
Bases:
TrainableProposalAdapt a normalizing flow to the proposal-distribution interface.
- Parameters:
fit_kwargs (collections.abc.Mapping[str, Any] | None)
- property flow: sequince.flows.NormalizingFlow#
- Return type:
- fit(particles, context=None, *, rng=None)[source]#
Fit the proposal and return the fitted proposal.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
- Return type:
- load_state_dict(state)[source]#
- Parameters:
state (collections.abc.Mapping[str, Any])
- Return type:
None
- log_prob(particles, context=None)[source]#
Evaluate the log proposal density in particle space.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext | None)
- Return type:
sequince.typing.Array
- sample(n_samples, context=None, *, rng=None, xp=None)[source]#
Draw samples from the proposal distribution.
- Parameters:
n_samples (int)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type:
sequince.typing.Array
- sample_and_log_prob(n_samples, context=None, *, rng=None, xp=None)[source]#
Draw samples and return their log proposal densities.
- Parameters:
n_samples (int)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type:
tuple[sequince.typing.Array, sequince.typing.Array]
- sequince.proposals.draw_initial_state(proposal, n_particles, *, posterior=None, context=None, rng=None, xp=None)[source]#
Draw one initial population and retain its target evaluation.
The proposal must return finite particles. Its log density is only evaluated when the posterior has an explicit proposal endpoint; otherwise the proposal is assumed to be the prior. Non-finite posterior densities are retained because discarding them would condition the proposal and invalidate evidence estimates. NaN target evaluations are rejected as evaluation errors.
- Parameters:
proposal (ProposalDistribution)
n_particles (int)
posterior (sequince.posterior.TemperedPosterior | None)
context (sequince.steps.context.StepContext | None)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type:
- sequince.proposals.draw_mcmc_initial_state(proposal, n_particles, log_prob_fn, *, context=None, max_batches=100, rng=None, xp=None)[source]#
Draw finite-target starting particles for standalone MCMC.
Unlike
draw_initial_state(), this function conditions the proposal by rejecting particles whose target log density is-inf. It must not be used to initialize an evidence estimator.- Parameters:
proposal (ProposalDistribution)
n_particles (int)
log_prob_fn (Callable[..., sequince.typing.Array | float] | sequince.target.Target)
context (sequince.steps.context.StepContext | None)
max_batches (int)
rng (orng.RandomGenerator | int | None)
xp (Any | None)
- Return type: