code: def gh_points_and_weights(n_gh: int) -> Tuple[tf.Tensor, tf.Tensor]:
      r"""
      Given the number of Gauss-Hermite points n_gh,
      returns the points z and the weights dz to perform the following
      uni-dimensional gaussian quadrature:
  
      X ~ N(mean, stddev²)
      E[f(X)] = ∫ f(x) p(x) dx = \sum_{i=1}^{n_gh} f(mean + stddev*z_i) dz_i
  
      :param n_gh: Number of Gauss-Hermite points
      :returns: Points z and weights dz to compute uni-dimensional gaussian expectation
      """
      z, dz = np.polynomial.hermite.hermgauss(n_gh)
      z = z * np.sqrt(2)
      dz = dz / np.sqrt(np.pi)
      z, dz = z.astype(default_float()), dz.astype(default_float())
      return tf.convert_to_tensor(z), tf.convert_to_tensor(dz)
  
file_path: GPflow/gpflow/quadrature/gauss_hermite.py
imports: from typing import Sequence, Tuple
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..base import TensorType
  from ..config import default_float
  from .base import GaussianQuadrature
label_desc: Use image node_id 1 for calling a global function with example usage: gh_points_and_weights(n_gh) and returns: tf,  tf