sequince.proposals#

Attributes#

Classes#

ProposalDistribution

Protocol for proposal distributions used by bridged SMC targets.

TrainableProposal

Proposal distribution that can be fitted to a particle population.

FlowProposal

Adapt a normalizing flow to the proposal-distribution interface.

Functions#

draw_initial_state(proposal, n_particles, *[, ...])

Draw one initial population and retain its target evaluation.

draw_mcmc_initial_state(proposal, n_particles, ...[, ...])

Draw finite-target starting particles for standalone MCMC.

Module Contents#

sequince.proposals.logger#
class sequince.proposals.ProposalDistribution[source]#

Bases: Protocol

Protocol for proposal distributions used by bridged SMC targets.

log_prob(particles, context=None)[source]#

Evaluate the log proposal density in particle space.

Parameters:
Return type:

sequince.typing.Array

sample(n_samples, context=None, *, rng=None, xp=None)[source]#

Draw samples from the proposal distribution.

Parameters:
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:
Return type:

tuple[sequince.typing.Array, sequince.typing.Array]

class sequince.proposals.TrainableProposal[source]#

Bases: ProposalDistribution, Protocol

Proposal 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:
Return type:

Self

class sequince.proposals.FlowProposal(flow, *, fit_kwargs=None)[source]#

Bases: TrainableProposal

Adapt a normalizing flow to the proposal-distribution interface.

Parameters:
property flow: sequince.flows.NormalizingFlow#
Return type:

sequince.flows.NormalizingFlow

clone()[source]#
Return type:

FlowProposal

fit(particles, context=None, *, rng=None)[source]#

Fit the proposal and return the fitted proposal.

Parameters:
Return type:

FlowProposal

state_dict()[source]#
Return type:

dict[str, Any]

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:
Return type:

sequince.typing.Array

sample(n_samples, context=None, *, rng=None, xp=None)[source]#

Draw samples from the proposal distribution.

Parameters:
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:
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:
Return type:

sequince.state.ParticleState

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:
Return type:

sequince.state.ParticleState