@concatenate_pending_points
@t_batch_mode_transform()
def forward(self, X: Tensor) -> Tensor:
    'Evaluate qUpperConfidenceBound on the candidate set `X`.\n\n        Args:\n            X: A `(b) x q x d`-dim Tensor of `(b)` t-batches with `q` `d`-dim\n                design points each.\n\n        Returns:\n            A `(b)`-dim Tensor of Upper Confidence Bound values at the given\n            design points `X`.\n        '
    posterior = self.model.posterior(X)
    samples = self.sampler(posterior)
    obj = self.objective(samples)
    mean = obj.mean(dim=0)
    ucb_samples = (mean + (self.beta_prime * (obj - mean).abs()))
    return ucb_samples.max(dim=(- 1))[0].mean(dim=0)
Evaluate qUpperConfidenceBound on the candidate set `X`.

Args:
    X: A `(b) x q x d`-dim Tensor of `(b)` t-batches with `q` `d`-dim
        design points each.

Returns:
    A `(b)`-dim Tensor of Upper Confidence Bound values at the given
    design points `X`.
@concatenate_pending_points
@t_batch_mode_transform()
def forward(self, X: Tensor) -> Tensor:
    'Evaluate qUpperConfidenceBound on the candidate set `X`.\n\n        Args:\n            X: A `(b) x q x d`-dim Tensor of `(b)` t-batches with `q` `d`-dim\n                design points each.\n\n        Returns:\n            A `(b)`-dim Tensor of Upper Confidence Bound values at the given\n            design points `X`.\n        '
    posterior = self.model.posterior(X)
    samples = self.sampler(posterior)
    obj = self.objective(samples)
    mean = obj.mean(dim=0)
    ucb_samples = (mean + (self.beta_prime * (obj - mean).abs()))
    return ucb_samples.max(dim=(- 1))[0].mean(dim=0)