sequince.target#
Attributes#
Classes#
Backend-compatible counters for probabilistic model evaluations. |
|
Named, particle-aligned values evaluated by a target. |
|
Interface for evaluating a target distribution. |
|
Target that also defines sequential importance-weight increments. |
|
Target interpolating geometrically between two endpoint densities. |
Module Contents#
- sequince.target.logger#
- sequince.target.TargetComponentFn#
- class sequince.target.EvaluationCounts[source]#
Backend-compatible counters for probabilistic model evaluations.
The fields count work required to evaluate the log target density, log likelihood, log proposal, and log increment. Log-target work includes any refreshed target-density component, while log-likelihood work records only calls to
log_likelihood. Reusing cached components does not count again.- log_target_evaluations: Any = 0#
- log_likelihood_evaluations: Any = 0#
- log_proposal_evaluations: Any = 0#
- log_increment_evaluations: Any = 0#
- class sequince.target.TargetEvaluation[source]#
Named, particle-aligned values evaluated by a target.
- components: collections.abc.Mapping[str, sequince.typing.Array]#
- evaluation_key: collections.abc.Hashable | None = None#
- validate_for(particles)[source]#
Validate that this evaluation has one entry per supplied particle.
- Parameters:
particles (sequince.typing.Array)
- Return type:
None
- with_target(target_id, evaluation_key)[source]#
Return this evaluation associated with a target state.
- Parameters:
target_id (str)
evaluation_key (collections.abc.Hashable | None)
- Return type:
- take(indices)[source]#
Select particle evaluations using ancestor indices.
- Parameters:
indices (sequince.typing.Array)
- Return type:
- replace(indices, replacement)[source]#
Return an evaluation with indexed particle rows replaced.
- Parameters:
indices (sequince.typing.Array)
replacement (TargetEvaluation)
- Return type:
- classmethod concatenate(evaluations)[source]#
Concatenate evaluations from multiple particle batches.
- Parameters:
evaluations (collections.abc.Collection[TargetEvaluation])
- Return type:
- select(proposed, accepted)[source]#
Select proposed values for accepted particles.
- Parameters:
proposed (TargetEvaluation)
accepted (sequince.typing.Array)
- Return type:
- classmethod from_dict(payload)[source]#
- Parameters:
payload (collections.abc.Mapping[str, Any])
- Return type:
- class sequince.target.Target[source]#
Bases:
abc.ABCInterface for evaluating a target distribution.
- property evaluation_id: str#
Opaque identity used to validate cached target evaluations.
- Return type:
- evaluation_key(context)[source]#
Return the state of this target relevant to cached evaluations.
- Parameters:
context (sequince.steps.context.StepContext)
- Return type:
collections.abc.Hashable | None
- accepts_evaluation(evaluation, context)[source]#
Return whether an evaluation was produced by this target.
- Parameters:
evaluation (TargetEvaluation)
context (sequince.steps.context.StepContext)
- Return type:
- bind_evaluation(evaluation, context)[source]#
Associate an evaluation returned by this target with its identity.
- Parameters:
evaluation (TargetEvaluation)
context (sequince.steps.context.StepContext)
- Return type:
- 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.- Parameters:
context (sequince.steps.context.StepContext)
- Return type:
collections.abc.Collection[str] | None
- prepare_evaluation(particles: sequince.typing.Array, context: sequince.steps.context.StepContext, *, evaluation: TargetEvaluation | None = None, components: collections.abc.Collection[str] | None = None, refresh_components: collections.abc.Collection[str] = (), return_counts: Literal[False] = False) TargetEvaluation[source]#
- prepare_evaluation(particles: sequince.typing.Array, context: sequince.steps.context.StepContext, *, evaluation: TargetEvaluation | None = None, components: collections.abc.Collection[str] | None = None, refresh_components: collections.abc.Collection[str] = (), return_counts: Literal[True]) tuple[TargetEvaluation, EvaluationCounts]
Return a compatible evaluation, optionally with new work counts.
componentsrequests named values, filling any missing cached values. Full requests useevaluation_componentswhen declared.refresh_componentsrequests recomputation when a compatible cached evaluation is supplied.
- validate_evaluation(evaluation, particles, context)[source]#
Validate particle alignment and ownership of an evaluation.
- Parameters:
evaluation (TargetEvaluation)
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
- Return type:
None
- abstractmethod evaluate(particles, context, *, components=None, evaluation=None)[source]#
Evaluate or refresh named components of the target.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
components (collections.abc.Collection[str] | None)
evaluation (TargetEvaluation | None)
- Return type:
- refresh(particles, evaluation, context, *, components)[source]#
Refresh named components for an unchanged particle population.
- Parameters:
particles (sequince.typing.Array)
evaluation (TargetEvaluation)
context (sequince.steps.context.StepContext)
components (collections.abc.Collection[str])
- Return type:
- abstractmethod log_prob(particles, context, *, evaluation=None)[source]#
Return the current target log density.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float
- class sequince.target.SequentialTarget[source]#
Bases:
TargetTarget that also defines sequential importance-weight increments.
- abstractmethod log_increment(particles, context, *, evaluation=None)[source]#
Return the log-weight increment to the next target.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float
- class sequince.target.TemperedTarget[source]#
Bases:
SequentialTargetTarget interpolating geometrically between two endpoint densities.
- abstractmethod log_initial(particles, context, *, evaluation=None)[source]#
Return the initial endpoint log density.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float
- abstractmethod log_terminal(particles, context, *, evaluation=None)[source]#
Return the terminal endpoint log density.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float
- log_prob(particles, context, *, evaluation=None)[source]#
Return the interpolated log density at the current beta.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float
- log_increment(particles, context, *, evaluation=None)[source]#
Return the terminal-to-initial log-density ratio.
- Parameters:
particles (sequince.typing.Array)
context (sequince.steps.context.StepContext)
evaluation (TargetEvaluation | None)
- Return type:
sequince.typing.Array | float