class_docstr: Posterior transform that unstandardizes the posterior.
  
  TODO: remove this when MultiTask models support outcome transforms.
  
  Example:
      >>> unstd_transform = UnstandardizePosteriorTransform(Y_mean, Y_std)
      >>> unstd_posterior = unstd_transform(posterior)
class_docstr_tok: ["Posterior","transform","that","unstandardizes","the","posterior",".","TODO",":","remove","this","when","MultiTask","models","support","outcome","transforms",".","Example",":",">",">",">","unstd_transform","=","UnstandardizePosteriorTransform","(","Y_mean",",","Y_std",")",">",">",">","unstd_posterior","=","unstd_transform","(","posterior",")"]
docstr: Initialize objective.
  
  Args:
      Y_mean: `m`-dim tensor of outcome means
      Y_std: `m`-dim tensor of outcome standard deviations
code: def __init__(self, Y_mean: Tensor, Y_std: Tensor) -> None:
      r"""Initialize objective.
  
      Args:
          Y_mean: `m`-dim tensor of outcome means
          Y_std: `m`-dim tensor of outcome standard deviations
  
      """
      if Y_mean.ndim > 1 or Y_std.ndim > 1:
          raise BotorchTensorDimensionError(
              "Y_mean and Y_std must both be 1-dimensional, but got "
              f"{Y_mean.ndim} and {Y_std.ndim}"
          )
      super().__init__()
      self.outcome_transform = Standardize(m=Y_mean.shape[0]).to(Y_mean)
      Y_std_unsqueezed = Y_std.unsqueeze(0)
      self.outcome_transform.means = Y_mean.unsqueeze(0)
      self.outcome_transform.stdvs = Y_std_unsqueezed
      self.outcome_transform._stdvs_sq = Y_std_unsqueezed.pow(2)
      self.outcome_transform._is_trained = torch.tensor(True)
      self.outcome_transform.eval()
  
imports: from __future__ import annotations
  import inspect
  import warnings
  from abc import ABC, abstractmethod
  from typing import Callable, List, Optional, TYPE_CHECKING, Union
  import torch
  from botorch.exceptions.errors import BotorchTensorDimensionError, UnsupportedError
  from botorch.exceptions.warnings import InputDataWarning
  from botorch.models.model import Model
  from botorch.models.transforms.outcome import Standardize
  from botorch.posteriors.gpytorch import GPyTorchPosterior, scalarize_posterior
  from botorch.sampling import IIDNormalSampler
  from botorch.utils import apply_constraints
  from gpytorch.distributions import MultitaskMultivariateNormal, MultivariateNormal
  from linear_operator.operators.dense_linear_operator import to_linear_operator
  from torch import Tensor
  from torch.nn import Module
  from botorch.models.deterministic import DeterministicModel
label_desc: Use image node_id 1 to create a new UnstandardizePosteriorTransform object from inherited base classes: PosteriorTransform with example: obj = UnstandardizePosteriorTransform(Y_mean, Y_std)