class_docstr: **Kullback Leibler Divergence Inference**
  
  General approach to fit Approximations that define :math:`logq`
  by maximizing ELBO (Evidence Lower Bound). In some cases
  rescaling the regularization term KL may be beneficial
  
  .. math::
  
      ELBO_\beta = \log p(D|\theta) - \beta KL(q||p)
  
  Parameters
  ----------
  approx: :class:`Approximation`
      Approximation to fit, it is required to have `logQ`
  beta: float
      Scales the regularization term in ELBO (see Christopher P. Burgess et al., 2017)
  
  References
  ----------
  -   Christopher P. Burgess et al. (NIPS, 2017)
      Understanding disentangling in :math:`\beta`-VAE
      arXiv preprint 1804.03599
code: def __init__(self, approx, beta=1.0):
      super().__init__(KL, approx, None, beta=beta)
  
imports: import collections
  import logging
  import warnings
  import numpy
  from fastprogress.fastprogress import progress_bar
  import pymc
  from pymc.variational import test_functions
  from pymc.variational.approximations import Empirical, FullRank, MeanField
  from pymc.variational.operators import KL, KSD
label_desc: Use image node_id 1 to create a new KLqp object from inherited base classes: Inference with example: obj = KLqp(approx, beta)