code: def _kl_lognormal_lognormal(a, b, name=None):
      """Calculate the batched KL divergence KL(a || b) with a and b LogNormal.
  
      This is the same as the KL divergence between the underlying Normal
      distributions.
  
      Args:
        a: instance of a LogNormal distribution object.
        b: instance of a LogNormal distribution object.
        name: Name to use for created operations.
          Default value: `None` (i.e., `'kl_lognormal_lognormal'`).
  
      Returns:
        kl_div: Batchwise KL(a || b)
      """
      return kullback_leibler.kl_divergence(
          a.distribution,
          b.distribution,
          name=(name or "kl_lognormal_lognormal"),
      )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.util.deferred_tensor import DeferredTensor
label_desc: Use image node_id 1 for calling a global function with example usage: _kl_lognormal_lognormal(a, b, name) and returns: kullback_leibler