sequince.density#
Callable-based sequential and tempered target densities.
Classes#
Sequential target defined by density and increment callables. |
|
Tempered target defined by an initial density and a log-density ratio. |
Module Contents#
- class sequince.density.SequentialDensity(log_prob, log_increment, *, evaluation_key=None)[source]#
Bases:
_DensityComponents,sequince.target.SequentialTargetSequential target defined by density and increment callables.
log_probreturns the current target log density for MCMC;log_incrementreturns the complete weight increment. Both accept particles and optionally context. Weighting calls only the increment. MCMC evaluates and cacheslog_probseparately.For context-dependent densities, supply
evaluation_key(context)to identify the stage relevant to cached density values, or explicitly refresh the evaluation when the density changes. Keys must be hashable; compiled execution requires static keys.- Parameters:
log_prob (sequince.target.TargetComponentFn)
log_increment (sequince.target.TargetComponentFn)
evaluation_key (Callable[[sequince.steps.context.StepContext], collections.abc.Hashable | None] | None)
- evaluation_components(context)[source]#
Components needed for a full density evaluation, when known.
These are the components used to compute
log_prob, such as during MCMC. They need not include every component the target supports:log_incrementis included only when the density itself requires it. Other components can still be requested explicitly throughprepare_evaluation(components=...).When
components=None, preparation uses this declaration to complete a partial cache and retain only these components. Returning None preserves the default full-evaluation contract for custom targets.
- class sequince.density.TemperedDensity(log_initial, log_density_ratio, *, evaluation_key=None)[source]#
Bases:
_DensityComponents,sequince.target.TemperedTargetTempered target defined by an initial density and a log-density ratio.
log_initialandlog_density_ratioaccept particles and optionally context. The target density islog_initial + beta * log_density_ratio. Weighting evaluates only the increment, reusing it from a compatible MCMC evaluation when available. MCMC evaluates and caches both components.evaluation_keyhas the same meaning as forSequentialDensity; beta alone does not invalidate these endpoint components.- Parameters:
log_initial (sequince.target.TargetComponentFn)
log_density_ratio (sequince.target.TargetComponentFn)
evaluation_key (Callable[[sequince.steps.context.StepContext], collections.abc.Hashable | None] | None)
- log_initial(particles, context, *, evaluation=None)[source]#
Return the initial endpoint log density.
- log_terminal(particles, context, *, evaluation=None)[source]#
Return the terminal endpoint log density.