class_docstr: An outcome transform representing the chaining of individual transforms
docstr: Un-transform previously transformed outcomes
  
  Args:
      Y: A `batch_shape x n x m`-dim tensor of transfomred training targets.
      Yvar: A `batch_shape x n x m`-dim tensor of transformed observation
          noises associated with the training targets (if applicable).
  
  Returns:
      A two-tuple with the un-transformed outcomes:
  
      - The un-transformed outcome observations.
      - The un-transformed observation noise (if applicable).
docstr_tok: ["Un-transform","previously","transformed","outcomes","Args",":","Y",":","A","`","batch_shape","x","n","x","m","`","-dim","tensor","of","transfomred","training","targets",".","Yvar",":","A","`","batch_shape","x","n","x","m","`","-dim","tensor","of","transformed","observation","noises","associated","with","the","training","targets","(","if","applicable",")",".","Returns",":","A","two-tuple","with","the","un-transformed","outcomes",":","-","The","un-transformed","outcome","observations",".","-","The","un-transformed","observation","noise","(","if","applicable",")","."]
code: def untransform(
      self, Y: Tensor, Yvar: Optional[Tensor] = None
  ) -> Tuple[Tensor, Optional[Tensor]]:
      r"""Un-transform previously transformed outcomes
  
      Args:
          Y: A `batch_shape x n x m`-dim tensor of transfomred training targets.
          Yvar: A `batch_shape x n x m`-dim tensor of transformed observation
              noises associated with the training targets (if applicable).
  
      Returns:
          A two-tuple with the un-transformed outcomes:
  
          - The un-transformed outcome observations.
          - The un-transformed observation noise (if applicable).
      """
      for tf in reversed(self.values()):
          Y, Yvar = tf.untransform(Y, Yvar)
      return Y, Yvar
  
imports: from __future__ import annotations
  import warnings
  from abc import ABC, abstractmethod
  from collections import OrderedDict
  from typing import Any, List, Mapping, Optional, Tuple, Union
  import torch
  from botorch.models.transforms.utils import norm_to_lognorm_mean, norm_to_lognorm_variance
  from botorch.posteriors import GPyTorchPosterior, Posterior, TransformedPosterior
  from botorch.utils.transforms import normalize_indices
  from linear_operator.operators import CholLinearOperator, DiagLinearOperator
  from torch import Tensor
  from torch.nn import Module, ModuleDict
label_desc: Use image node_id 4 for calling the ChainedOutcomeTransform obj's underlying member method code with example usage: obj.untransform(Y, Yvar) and returns: Y,  Yvar