code: def _kl_weibull_weibull(a, b, name=None):
      """Calculate the batched KL divergence KL(a || b) with a and b Weibull.
  
      Args:
        a: instance of a Weibull distribution object.
        b: instance of a Weibull distribution object.
        name: (optional) Name to use for created operations. Default is
          'kl_weibull_weibull'.
  
      Returns:
        Batchwise KL(a || b)
      """
      with tf.name_scope(name or "kl_weibull_weibull"):
          # Result from https://arxiv.org/pdf/1310.3713.pdf
          a_concentration = tf.convert_to_tensor(a.concentration)
          b_concentration = tf.convert_to_tensor(b.concentration)
          a_scale = tf.convert_to_tensor(a.scale)
          b_scale = tf.convert_to_tensor(b.scale)
  
          return (
              (
                  tf.math.log(a_concentration)
                  - a_concentration * tf.math.log(a_scale)
              )
              - (
                  tf.math.log(b_concentration)
                  - b_concentration * tf.math.log(b_scale)
              )
              + (
                  (a_concentration - b_concentration)
                  * (
                      tf.math.log(a_scale)
                      - np.euler_gamma / a_concentration
                  )
              )
              + (
                  (a_scale / b_scale) ** b_concentration
                  * tf.exp(
                      tf.math.lgamma(
                          b_concentration / a_concentration + 1.0
                      )
                  )
              )
              - 1.0
          )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.bijectors import weibull_cdf
  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.distributions.gamma import Gamma
  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
label_desc: Use image node_id 1 for calling a global function with example usage: _kl_weibull_weibull(a, b, name) and returns: unknown