class_docstr: Posterior class for a Higher order Gaussian process model [Zhe2019hogp]_. Extends
  the standard GPyTorch posterior class by overwriting the rsample method.
  The posterior variance is handled internally by the HigherOrderGP model.
  HOGP is a tensorized GP model so the posterior covariance grows to be extremely
  large, but is highly structured, which means that we can exploit Kronecker
  identities to sample from the posterior using Matheron's rule as described in
  [Doucet2010sampl]_.
  
  In general, this posterior should ONLY be used for HOGP models
  that have highly structured covariances. It should also only be used internally when
  called from the HigherOrderGP.posterior(...) method. At this time, the posterior
  does not support gradients with respect to the training data.
docstr: The shape of a base sample used for constructing posterior samples.
  
  Overwrites the standard `base_sample_shape` call to inform samplers that
  `n + 2 n_train` samples need to be drawn rather than n samples.
docstr_tok: ["The","shape","of","a","base","sample","used","for","constructing","posterior","samples",".","Overwrites","the","standard","`","base_sample_shape","`","call","to","inform","samplers","that","`","n","+","2","n_train","`","samples","need","to","be","drawn","rather","than","n","samples","."]
code: def base_sample_shape(self):
      r"""The shape of a base sample used for constructing posterior samples.
  
      Overwrites the standard `base_sample_shape` call to inform samplers that
      `n + 2 n_train` samples need to be drawn rather than n samples.
      """
      joint_covar = self.joint_covariance_matrix
      batch_shape = joint_covar.shape[:-2]
      sampling_shape = torch.Size(
          [joint_covar.shape[-2] + self.train_train_covar.shape[-2]]
      )
      return batch_shape + sampling_shape
  
file_path: botorch/botorch/posteriors/higher_order.py
imports: from typing import Optional, Tuple
  import torch
  from botorch.exceptions.errors import BotorchTensorDimensionError
  from botorch.posteriors.gpytorch import GPyTorchPosterior
  from gpytorch.distributions import MultivariateNormal
  from linear_operator.operators import LinearOperator
  from torch import Tensor
label_desc: Use image node_id 2 for calling the HigherOrderGPPosterior obj's underlying member method code with example usage: obj.base_sample_shape() and returns: unknown