class_docstr: This class specifies the interface for a torch-based model.
  
  These methods should be implemented to have access to all of the features
  of Ax.
docstr: Predict
  
  Args:
      X: (j x d) tensor of the j points at which to make predictions.
  
  Returns:
      2-element tuple containing
  
      - (j x m) tensor of outcome predictions at X.
      - (j x m x m) tensor of predictive covariances at X.
        cov[j, m1, m2] is Cov[m1@j, m2@j].
docstr_tok: ["Predict","Args",":","X",":","(","j","x","d",")","tensor","of","the","j","points","at","which","to","make","predictions",".","Returns",":","2-element","tuple","containing","-","(","j","x","m",")","tensor","of","outcome","predictions","at","X",".","-","(","j","x","m","x","m",")","tensor","of","predictive","covariances","at","X.","cov","[","j",",","m1",",","m2","]","is","Cov","[","m1","@","j",",","m2","@","j","]","."]
code: def predict(self, X: Tensor) -> Tuple[Tensor, Tensor]:
      """Predict
  
      Args:
          X: (j x d) tensor of the j points at which to make predictions.
  
      Returns:
          2-element tuple containing
  
          - (j x m) tensor of outcome predictions at X.
          - (j x m x m) tensor of predictive covariances at X.
            cov[j, m1, m2] is Cov[m1@j, m2@j].
      """
      raise NotImplementedError
  
imports: from __future__ import annotations
  from dataclasses import dataclass, field
  from typing import Any, Callable, Dict, List, Optional, Tuple
  import torch
  from ax.core.metric import Metric
  from ax.core.search_space import SearchSpaceDigest
  from ax.core.types import TCandidateMetadata
  from ax.models.base import Model
  from ax.models.types import TConfig
  from botorch.acquisition.risk_measures import RiskMeasureMCObjective
  from botorch.utils.datasets import SupervisedDataset
  from torch import Tensor
label_desc: Use image node_id 2 for calling the TorchModel obj's underlying member method code with example usage: obj.predict(X) without return types