sequince.steps.resampling#
Attributes#
Classes#
Fixed-structure resampling output with a static scheme label. |
|
Base class for resampling steps with an optional ESS trigger. |
|
Draw ancestors with replacement according to the weights. |
|
Stratified resampling for reduced variance. |
|
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.
- ancestors: sequince.typing.Array#
- class sequince.steps.resampling.ResamplingStep(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#
Bases:
sequince.steps.base.SMCStepBase 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
Truealways resample regardless of ESS (overridesess_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. IfFalse, the final resampling may be skipped ifalways_resampleisFalseand the ESS ratio is aboveess_threshold.
- apply(state, context, rng)[source]#
- Parameters:
state (sequince.state.ParticleState)
context (sequince.steps.base.StepContext)
rng (orng.RandomGenerator)
- Return type:
tuple[sequince.state.ParticleState, sequince.steps.base.StepContext, ResamplingOutput]
- initialize_functional_metadata(state, metadata)[source]#
Initialize fixed-shape resampling metadata.
- Parameters:
state (sequince.state.ParticleState)
metadata (collections.abc.Mapping[str, Any])
- 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:
state (sequince.state.ParticleState)
context (sequince.steps.base.StepContext)
random_state (object)
- 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:
ResamplingStepDraw ancestors with replacement according to the weights.
- Parameters:
- resampling_scheme = 'multinomial'#
- class sequince.steps.resampling.StratifiedResampling(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#
Bases:
ResamplingStepStratified resampling for reduced variance.
- Parameters:
- resampling_scheme = 'stratified'#
- class sequince.steps.resampling.SystematicResampling(*, ess_threshold=0.5, always_resample=False, n_samples=None, resample_at_end=True)[source]#
Bases:
ResamplingStepSystematic resampling for reduced variance.
- Parameters:
- resampling_scheme = 'systematic'#