class_docstr: Botorch wrapper class for various (variational) approximate GP models in
  GPyTorch.
  
  This can either include stochastic variational GPs (SVGPs) or
  variational implementations of weight space approximate GPs.
docstr: Puts the model in `eval` mode.
code: def eval(self: TApproxModel) -> TApproxModel:
      r"""Puts the model in `eval` mode."""
      return Module.eval(self)
  
imports: from __future__ import annotations
  import copy
  import warnings
  from typing import Optional, Type, TypeVar, Union
  import torch
  from botorch.models.gpytorch import GPyTorchModel
  from botorch.models.transforms.input import InputTransform
  from botorch.models.transforms.outcome import OutcomeTransform
  from botorch.models.utils import validate_input_scaling
  from botorch.models.utils.gpytorch_modules import get_gaussian_likelihood_with_gamma_prior, get_matern_kernel_with_gamma_prior
  from botorch.models.utils.inducing_point_allocators import GreedyVarianceReduction, InducingPointAllocator
  from botorch.posteriors.gpytorch import GPyTorchPosterior
  from gpytorch.distributions import MultivariateNormal
  from gpytorch.kernels import Kernel
  from gpytorch.likelihoods import GaussianLikelihood, Likelihood, MultitaskGaussianLikelihood
  from gpytorch.means import ConstantMean, Mean
  from gpytorch.models import ApproximateGP
  from gpytorch.utils.memoize import clear_cache_hook
  from gpytorch.variational import _VariationalDistribution, _VariationalStrategy, CholeskyVariationalDistribution, IndependentMultitaskVariationalStrategy, VariationalStrategy
  from torch import Tensor
  from torch.nn import Module
label_desc: Use image node_id 3 for calling the ApproximateGPyTorchModel obj's underlying member method code with example usage: obj.eval() and returns: Module