code: def _kl_gamma_gamma(dist1, dist2):
      return (
          (dist1.k - dist2.k) * digamma.digamma(dist1.k)
          - (lgamma.lgamma(dist1.k) - lgamma.lgamma(dist2.k))
          + dist2.k
          * (
              exponential.log(dist2.theta)
              - exponential.log(dist1.theta)
          )
          + dist1.k * (dist1.theta / dist2.theta - 1)
      )
  
imports: import chainer
  from chainer.backends import cuda
  from chainer import distribution
  from chainer.functions.array import broadcast
  from chainer.functions.array import where
  from chainer.functions.math import digamma
  from chainer.functions.math import exponential
  from chainer.functions.math import lgamma
  from chainer.utils import cache
label_desc: Use image node_id 1 for calling a global function with example usage: _kl_gamma_gamma(dist1, dist2) and returns: unknown