class_docstr: The Multi-Task GP the latent context embedding multioutput
  (LCE-M) kernel, with known observation noise.
  
  DEPRECATED: Please use `LCEMGP` with `train_Yvar` instead.
  Will be removed in a future release (~v0.11).
docstr: Args:
      train_X: (n x d) X training data.
      train_Y: (n x 1) Y training data.
      train_Yvar: (n x 1) Observed variances of each training Y.
      task_feature: Column index of train_X to get context indices.
      context_cat_feature: (n_contexts x k) one-hot encoded context
          features. Rows are ordered by context indices, where k is the
          number of categorical variables. If None, task indices will
          be used and k = 1.
      context_emb_feature: (n_contexts x m) pre-given continuous
          embedding features. Rows are ordered by context indices.
      embs_dim_list: Embedding dimension for each categorical variable.
          The length equals to k. If None, the embedding dimension is set to
          1 for each categorical variable.
      output_tasks: A list of task indices for which to compute model
          outputs for. If omitted, return outputs for all task indices.
docstr_tok: ["Args",":","train_X",":","(","n","x","d",")","X","training","data",".","train_Y",":","(","n","x","1",")","Y","training","data",".","train_Yvar",":","(","n","x","1",")","Observed","variances","of","each","training","Y.","task_feature",":","Column","index","of","train_X","to","get","context","indices",".","context_cat_feature",":","(","n_contexts","x","k",")","one-hot","encoded","context","features",".","Rows","are","ordered","by","context","indices",",","where","k","is","the","number","of","categorical","variables",".","If","None",",","task","indices","will","be","used","and","k","=","1.","context_emb_feature",":","(","n_contexts","x","m",")","pre-given","continuous","embedding","features",".","Rows","are","ordered","by","context","indices",".","embs_dim_list",":","Embedding","dimension","for","each","categorical","variable",".","The","length","equals","to","k.","If","None",",","the","embedding","dimension","is","set","to","1","for","each","categorical","variable",".","output_tasks",":","A","list","of","task","indices","for","which","to","compute","model","outputs","for",".","If","omitted",",","return","outputs","for","all","task","indices","."]
code: def __init__(
      self,
      train_X: Tensor,
      train_Y: Tensor,
      train_Yvar: Tensor,
      task_feature: int,
      context_cat_feature: Optional[Tensor] = None,
      context_emb_feature: Optional[Tensor] = None,
      embs_dim_list: Optional[List[int]] = None,
      output_tasks: Optional[List[int]] = None,
  ) -> None:
      r"""
      Args:
          train_X: (n x d) X training data.
          train_Y: (n x 1) Y training data.
          train_Yvar: (n x 1) Observed variances of each training Y.
          task_feature: Column index of train_X to get context indices.
          context_cat_feature: (n_contexts x k) one-hot encoded context
              features. Rows are ordered by context indices, where k is the
              number of categorical variables. If None, task indices will
              be used and k = 1.
          context_emb_feature: (n_contexts x m) pre-given continuous
              embedding features. Rows are ordered by context indices.
          embs_dim_list: Embedding dimension for each categorical variable.
              The length equals to k. If None, the embedding dimension is set to
              1 for each categorical variable.
          output_tasks: A list of task indices for which to compute model
              outputs for. If omitted, return outputs for all task indices.
  
      """
      warnings.warn(
          "`FixedNoiseLCEMGP` has been deprecated and will be removed in a "
          "future release. Please use the `LCEMGP` model instead. "
          "When `train_Yvar` is specified, `LCEMGP` behaves the same "
          "as the `FixedNoiseLCEMGP`.",
          DeprecationWarning,
      )
  
      super().__init__(
          train_X=train_X,
          train_Y=train_Y,
          task_feature=task_feature,
          train_Yvar=train_Yvar,
          context_cat_feature=context_cat_feature,
          context_emb_feature=context_emb_feature,
          embs_dim_list=embs_dim_list,
          output_tasks=output_tasks,
      )
  
imports: import warnings
  from typing import List, Optional
  import torch
  from botorch.models.multitask import MultiTaskGP
  from botorch.models.transforms.input import InputTransform
  from botorch.models.transforms.outcome import OutcomeTransform
  from gpytorch.constraints import Interval
  from gpytorch.distributions.multivariate_normal import MultivariateNormal
  from gpytorch.kernels.rbf_kernel import RBFKernel
  from linear_operator.operators import InterpolatedLinearOperator, LinearOperator
  from torch import Tensor
  from torch.nn import ModuleList
label_desc: Use image node_id 1 to create a new FixedNoiseLCEMGP object from inherited base classes: LCEMGP with example: obj = FixedNoiseLCEMGP(train_X, train_Y, train_Yvar, task_feature, context_cat_feature, context_emb_feature, embs_dim_list, output_tasks)