code: def _kl_moyal_moyal(a, b, name=None):
      """Calculate the batched KL divergence KL(a || b) with a and b Moyal.
  
      Args:
        a: instance of a Moyal distribution object.
        b: instance of a Moyal distribution object.
        name: (optional) Name to use for created operations.
          default is 'kl_moyal_moyal'.
  
      Returns:
        Batchwise KL(a || b)
      """
      with tf.name_scope(name or "kl_moyal_moyal"):
          # This KL divergence was calculated in Mathematica
          a_loc = tf.convert_to_tensor(a.loc)
          b_loc = tf.convert_to_tensor(b.loc)
          a_scale = tf.convert_to_tensor(a.scale)
          b_scale = tf.convert_to_tensor(b.scale)
          exp_term = tf.math.exp(
              a_scale * np.log(2.0) / b_scale
              + (b_loc - a_loc) / b_scale
              + tf.math.lgamma(0.5 + a_scale / b_scale)
              - 0.5 * np.log(np.pi)
          )
          return 0.5 * (
              exp_term
              + (a_loc - b_loc) / b_scale
              - 1
              + (a_scale / b_scale - 1) * (np.euler_gamma + np.log(2.0))
              + 2 * tf.math.log(b_scale / a_scale)
          )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import moyal_cdf
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import tensor_util
label_desc: Use image node_id 1 for calling a global function with example usage: _kl_moyal_moyal(a, b, name) and returns: unknown