class_docstr: Base class for a Pyro model; used to assist in learning hyperparameters.
  
  This class and its subclasses are not a standard BoTorch models; instead
  the subclasses are used as inputs to a `SaasFullyBayesianSingleTaskGP`,
  which should then have its hyperparameters fit with
  `fit_fully_bayesian_model_nuts`. (By default, its subclass `SaasPyroModel`
  is used).  A `PyroModel`’s `sample` method should specify lightweight
  PyTorch functionality, which will be used for fast model fitting with NUTS.
  The utility of `PyroModel` is in enabling fast fitting with NUTS, since we
  would otherwise need to use GPyTorch, which is computationally infeasible
  in combination with Pyro.
  
  :meta private:
class_docstr_tok: ["Base","class","for","a","Pyro","model",";","used","to","assist","in","learning","hyperparameters",".","This","class","and","its","subclasses","are","not","a","standard","BoTorch","models",";","instead","the","subclasses","are","used","as","inputs","to","a","`","SaasFullyBayesianSingleTaskGP","`",",","which","should","then","have","its","hyperparameters","fit","with","`","fit_fully_bayesian_model_nuts","`",".","(","By","default",",","its","subclass","`","SaasPyroModel","`","is","used",")",".","A","`","PyroModel","`","\u2019","s","`","sample","`","method","should","specify","lightweight","PyTorch","functionality",",","which","will","be","used","for","fast","model","fitting","with","NUTS",".","The","utility","of","`","PyroModel","`","is","in","enabling","fast","fitting","with","NUTS",",","since","we","would","otherwise","need","to","use","GPyTorch",",","which","is","computationally","infeasible","in","combination","with","Pyro",".",":","meta","private",":"]
docstr: Sample from the model.
docstr_tok: ["Sample","from","the","model","."]
code: def sample(self) -> None:
      r"""Sample from the model."""
      pass
  
imports: import math
  from abc import abstractmethod
  from typing import Any, Dict, List, Mapping, Optional, Tuple
  import pyro
  import torch
  from botorch.acquisition.objective import PosteriorTransform
  from botorch.models.gpytorch import BatchedMultiOutputGPyTorchModel
  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 MIN_INFERRED_NOISE_LEVEL
  from botorch.posteriors.fully_bayesian import GaussianMixturePosterior, MCMC_DIM
  from gpytorch.constraints import GreaterThan
  from gpytorch.distributions.multivariate_normal import MultivariateNormal
  from gpytorch.kernels import MaternKernel, ScaleKernel
  from gpytorch.kernels.kernel import dist, Kernel
  from gpytorch.likelihoods.gaussian_likelihood import FixedNoiseGaussianLikelihood, GaussianLikelihood
  from gpytorch.likelihoods.likelihood import Likelihood
  from gpytorch.means.constant_mean import ConstantMean
  from gpytorch.means.mean import Mean
  from gpytorch.models.exact_gp import ExactGP
  from pyro.ops.integrator import register_exception_handler
  from torch import Tensor
label_desc: Use image node_id 2 for calling the PyroModel obj's underlying member method code with example usage: obj.sample() without return types