class_docstr: Standardize outcomes (zero mean, unit variance).
  
  This module is stateful: If in train mode, calling forward updates the
  module state (i.e. the mean/std normalizing constants). If in eval mode,
  calling forward simply applies the standardization using the current module
  state.
docstr: Standardize outcomes (zero mean, unit variance).
  
  Args:
      m: The output dimension.
      outputs: Which of the outputs to standardize. If omitted, all
          outputs will be standardized.
      batch_shape: The batch_shape of the training targets.
      min_stddv: The minimum standard deviation for which to perform
          standardization (if lower, only de-mean the data).
docstr_tok: ["Standardize","outcomes","(","zero","mean",",","unit","variance",")",".","Args",":","m",":","The","output","dimension",".","outputs",":","Which","of","the","outputs","to","standardize",".","If","omitted",",","all","outputs","will","be","standardized",".","batch_shape",":","The","batch_shape","of","the","training","targets",".","min_stddv",":","The","minimum","standard","deviation","for","which","to","perform","standardization","(","if","lower",",","only","de-mean","the","data",")","."]
code: def __init__(
      self,
      m: int,
      outputs: Optional[List[int]] = None,
      batch_shape: torch.Size = torch.Size(),  # noqa: B008
      min_stdv: float = 1e-8,
  ) -> None:
      r"""Standardize outcomes (zero mean, unit variance).
  
      Args:
          m: The output dimension.
          outputs: Which of the outputs to standardize. If omitted, all
              outputs will be standardized.
          batch_shape: The batch_shape of the training targets.
          min_stddv: The minimum standard deviation for which to perform
              standardization (if lower, only de-mean the data).
      """
      super().__init__()
      self.register_buffer("means", torch.zeros(*batch_shape, 1, m))
      self.register_buffer("stdvs", torch.ones(*batch_shape, 1, m))
      self.register_buffer("_stdvs_sq", torch.ones(*batch_shape, 1, m))
      self.register_buffer("_is_trained", torch.tensor(False))
      self._outputs = normalize_indices(outputs, d=m)
      self._m = m
      self._batch_shape = batch_shape
      self._min_stdv = min_stdv
  
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 1 to create a new Standardize object from inherited base classes: OutcomeTransform with example: obj = Standardize(m, outputs, batch_shape, min_stdv)