Source code for bayesflow.masking.inference_masks
from collections.abc import Mapping
from dataclasses import dataclass, field
from bayesflow.types import Tensor
from .mask_name import MaskName
[docs]
@dataclass(frozen=True)
class InferenceMasks:
"""Masks prepared for one inference-network operation."""
fixed_target_mask: Tensor | None = None
infer_target_mask: Tensor | None = None
observed_condition_mask: Tensor | None = None
fixed_target_value: Tensor | None = None
subnet_kwargs: Mapping[str, Tensor | None] = field(default_factory=dict)
[docs]
def semantic_kwargs(self) -> dict[str, Tensor]:
return {name.value: value for name in MaskName.semantic() if (value := getattr(self, name.value)) is not None}