class_docstr: Base class for all Gaussian Process estimators.
  
  Most notably, a GPyTorch compatible criterion and likelihood should be
  provided.
class_docstr_tok: ["Base","class","for","all","Gaussian","Process","estimators",".","Most","notably",",","a","GPyTorch","compatible","criterion","and","likelihood","should","be","provided","."]
docstr: Returns 2 standard deviations above and below the mean.
  
  X : input data
    The samples where the GP is evaluated.
  
  sigmas : int (default=2)
    The number of standard deviations of the region.
  
  Returns
  -------
  lower : torch.Tensor
    The lower end of the confidence region.
  
  upper : torch.Tensor
    The upper end of the confidence region.
docstr_tok: ["Returns","2","standard","deviations","above","and","below","the","mean",".","X",":","input","data","The","samples","where","the","GP","is","evaluated",".","sigmas",":","int","(","default=2",")","The","number","of","standard","deviations","of","the","region",".","Returns","--","--","--","-","lower",":","torch.Tensor","The","lower","end","of","the","confidence","region",".","upper",":","torch.Tensor","The","upper","end","of","the","confidence","region","."]
code: def confidence_region(self, X, sigmas=2):
      """Returns 2 standard deviations above and below the mean.
  
      X : input data
        The samples where the GP is evaluated.
  
      sigmas : int (default=2)
        The number of standard deviations of the region.
  
      Returns
      -------
      lower : torch.Tensor
        The lower end of the confidence region.
  
      upper : torch.Tensor
        The upper end of the confidence region.
  
      """
      nonlin = self._get_predict_nonlinearity()
      lower, upper = [], []
      for yi in self.forward_iter(X):
          posterior = yi[0] if isinstance(yi, tuple) else yi
          mean = posterior.mean
          std = posterior.stddev
          std = std.mul_(sigmas)
          lower.append(nonlin(mean.sub(std)))
          upper.append(nonlin(mean.add(std)))
  
      lower = torch.cat(lower)
      upper = torch.cat(upper)
      return lower, upper
  
imports: import pickle
  import re
  import gpytorch
  import numpy
  import torch
  from skorch.net import NeuralNet
  from skorch.dataset import ValidSplit
  from skorch.dataset import unpack_data
  from skorch.callbacks import EpochScoring
  from skorch.callbacks import EpochTimer
  from skorch.callbacks import PassthroughScoring
  from skorch.callbacks import PrintLog
  from skorch.utils import check_is_fitted
  from skorch.utils import get_dim
  from skorch.utils import is_dataset
  from skorch.utils import to_numpy
  from skorch.utils import to_tensor
label_desc: Use image node_id 12 for calling the GPBase obj's underlying member method code with example usage: obj.confidence_region(X, sigmas) and returns: lower,  upper