Source code for baybe.targets.botorch

"""BoTorch target transformations."""

from botorch.acquisition.objective import PosteriorTransform
from botorch.posteriors import GPyTorchPosterior
from torch import Tensor


[docs] class AffinePosteriorTransform(PosteriorTransform): """An affine posterior transformation."""
[docs] def __init__(self, factor: float, shift: float) -> None: super().__init__() self.factor = factor self.shift = shift
[docs] def forward(self, posterior: GPyTorchPosterior) -> GPyTorchPosterior: # noqa: D102 return GPyTorchPosterior(posterior.distribution * self.factor + self.shift)
[docs] def evaluate(self, Y: Tensor) -> Tensor: # noqa: D102 raise NotImplementedError()