class_docstr: Loss function of VAE.
  
  The loss value is equal to ELBO (Evidence Lower Bound)
  multiplied by -1.
  
  Args:
      encoder (chainer.Chain): A neural network which outputs variational
          posterior distribution q(z|x) of a latent variable z given
          an observed variable x.
      decoder (chainer.Chain): A neural network which outputs conditional
          distribution p(x|z) of the observed variable x given
          the latent variable z.
      prior (chainer.Chain): A prior distribution over the latent variable z.
      beta (float): Usually this is 1.0. Can be changed to control the
          second term of ELBO bound, which works as regularization.
      k (int): Number of Monte Carlo samples used in encoded vector.
code: def __init__(self, encoder, decoder, prior, beta=1.0, k=1):
      super(AvgELBOLoss, self).__init__()
      self.beta = beta
      self.k = k
  
      with self.init_scope():
          self.encoder = encoder
          self.decoder = decoder
          self.prior = prior
  
imports: import numpy
  import chainer
  import chainer.distributions
  import chainer.functions
  import chainer.links
  from chainer import reporter
label_desc: Use image node_id 1 to create a new AvgELBOLoss object from inherited base classes: chainer with example: obj = AvgELBOLoss(encoder, decoder, prior, beta, k)