class_docstr: Implements Gauss-Hermite quadrature for integrating a function with respect to several 1D Gaussian distributions
  in batch mode. Within GPyTorch, this is useful primarily for computing expected log likelihoods for variational
  inference.
  
  This is implemented as a Module because Gauss-Hermite quadrature has a set of locations and weights that it
  should initialize one time, but that should obey parent calls to .cuda(), .double() etc.
class_docstr_tok: ["Implements","Gauss-Hermite","quadrature","for","integrating","a","function","with","respect","to","several","1D","Gaussian","distributions","in","batch","mode",".","Within","GPyTorch",",","this","is","useful","primarily","for","computing","expected","log","likelihoods","for","variational","inference",".","This","is","implemented","as","a","Module","because","Gauss-Hermite","quadrature","has","a","set","of","locations","and","weights","that","it","should","initialize","one","time",",","but","that","should","obey","parent","calls","to",".cuda","(",")",",",".double","(",")","etc","."]
code: def _apply(self, fn):
      self.locations = fn(self.locations)
      self.weights = fn(self.weights)
      return super(GaussHermiteQuadrature1D, self)._apply(fn)
  
file_path: gpytorch/gpytorch/utils/quadrature.py
imports: import math
  import numpy
  import torch
  from torch.nn import Module
  from ..None import settings
label_desc: Use image node_id 2 for calling the GaussHermiteQuadrature1D obj's underlying member method code with example usage: obj._apply(fn) and returns: super