sequince.steps.resampling#

Attributes#

Classes#

ResamplingOutput

Fixed-structure resampling output with a static scheme label.

ResamplingStep

Base class for resampling steps with an optional ESS trigger.

MultinomialResampling

Draw ancestors with replacement according to the weights.

StratifiedResampling

Stratified resampling for reduced variance.

SystematicResampling

Systematic resampling for reduced variance.

Module Contents#

sequince.steps.resampling.logger#
class sequince.steps.resampling.ResamplingOutput[source]#

Bases: collections.abc.Mapping[str, Any]

Fixed-structure resampling output with a static scheme label.

ess: float | sequince.typing.Array#
resampled: bool | sequince.typing.Array#
ancestors: sequince.typing.Array#
resampling_scheme: str#
class sequince.steps.resampling.ResamplingStep(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#

Bases: sequince.steps.base.SMCStep

Base class for resampling steps with an optional ESS trigger.

Parameters:
  • ess_threshold (float | None) – Resample when the effective sample size (ESS) ratio falls below this threshold. If None (default) resampling is never triggered based on ESS.

  • always_resample (bool) – When True always resample regardless of ESS (overrides ess_threshold).

  • n_samples (int | None) – Number of particles to draw when resampling. If None, draw the same number as are present in the input state.

  • resample_at_end (bool) – If True (default) will always resample when the inverse temperature β reaches 1.0, regardless of ESS. If False, the final resampling may be skipped if always_resample is False and the ESS ratio is above ess_threshold.

resampling_scheme: ClassVar[str] = 'unknown'#
apply(state, context, rng)[source]#
Parameters:
Return type:

tuple[sequince.state.ParticleState, sequince.steps.base.StepContext, ResamplingOutput]

initialize_functional_metadata(state, metadata)[source]#

Initialize fixed-shape resampling metadata.

Parameters:
Return type:

collections.abc.Mapping[str, Any]

apply_functional(state, context, random_state)[source]#

Resample while explicitly threading RNG state.

The initial compiled subset requires unconditional resampling. A traced ESS threshold needs a conditional RNG transition and is not supported yet.

Parameters:
Return type:

tuple[sequince.state.ParticleState, sequince.steps.base.StepContext, object, ResamplingOutput]

class sequince.steps.resampling.MultinomialResampling(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#

Bases: ResamplingStep

Draw ancestors with replacement according to the weights.

Parameters:
  • ess_threshold (float | None)

  • always_resample (bool)

  • n_samples (int | None)

  • resample_at_end (bool)

resampling_scheme = 'multinomial'#
class sequince.steps.resampling.StratifiedResampling(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#

Bases: ResamplingStep

Stratified resampling for reduced variance.

Parameters:
  • ess_threshold (float | None)

  • always_resample (bool)

  • n_samples (int | None)

  • resample_at_end (bool)

resampling_scheme = 'stratified'#
class sequince.steps.resampling.SystematicResampling(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#

Bases: ResamplingStep

Systematic resampling for reduced variance.

Parameters:
  • ess_threshold (float | None)

  • always_resample (bool)

  • n_samples (int | None)

  • resample_at_end (bool)

resampling_scheme = 'systematic'#