class_docstr: Base class for samplers producing (possibly QMC) N(0,1) samples.
  
  Subclasses must implement the `_construct_base_samples` method.
class_docstr_tok: ["Base","class","for","samplers","producing","(","possibly","QMC",")","N","(","0,1",")","samples",".","Subclasses","must","implement","the","`","_construct_base_samples","`","method","."]
docstr: Generate base samples (if necessary).
  
  This function will generate a new set of base samples and register the
  `base_samples` buffer if one of the following is true:
  
  - the MCSampler has no `base_samples` attribute.
  - the output of `_get_collapsed_shape` does not agree with the shape of
      `self.base_samples`.
  
  Args:
      posterior: The Posterior for which to generate base samples.
docstr_tok: ["Generate","base","samples","(","if","necessary",")",".","This","function","will","generate","a","new","set","of","base","samples","and","register","the","`","base_samples","`","buffer","if","one","of","the","following","is","true",":","-","the","MCSampler","has","no","`","base_samples","`","attribute",".","-","the","output","of","`","_get_collapsed_shape","`","does","not","agree","with","the","shape","of","`","self.base_samples","`",".","Args",":","posterior",":","The","Posterior","for","which","to","generate","base","samples","."]
code: def _construct_base_samples(self, posterior: Posterior) -> None:
      r"""Generate base samples (if necessary).
  
      This function will generate a new set of base samples and register the
      `base_samples` buffer if one of the following is true:
  
      - the MCSampler has no `base_samples` attribute.
      - the output of `_get_collapsed_shape` does not agree with the shape of
          `self.base_samples`.
  
      Args:
          posterior: The Posterior for which to generate base samples.
      """
      pass
  
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  import torch
  from botorch.exceptions import UnsupportedError
  from botorch.posteriors import Posterior
  from botorch.posteriors.higher_order import HigherOrderGPPosterior
  from botorch.posteriors.multitask import MultitaskGPPosterior
  from botorch.posteriors.transformed import TransformedPosterior
  from botorch.sampling.base import MCSampler
  from botorch.utils.sampling import draw_sobol_normal_samples, manual_seed
  from torch import Tensor
  from torch.quasirandom import SobolEngine
label_desc: Use image node_id 2 for calling the NormalMCSampler obj's underlying member method code with example usage: obj._construct_base_samples(posterior) without return types