code: def testGammaLogPDFMultidimensional(self):
      batch_size = 6
      concentration = tf.constant([[2.0, 4.0]] * batch_size)
      rate = tf.constant([[3.0, 4.0]] * batch_size)
      concentration_v = np.array([2.0, 4.0])
      rate_v = np.array([3.0, 4.0])
      x = np.array([[2.5, 2.5, 4.0, 0.1, 1.0, 2.0]], dtype=np.float32).T
      gamma = gamma_lib.Gamma(
          concentration=concentration, rate=rate, validate_args=True
      )
      gamma_lr = gamma_lib.Gamma(
          concentration=concentration,
          log_rate=tf.math.log(rate),
          validate_args=True,
      )
      log_pdf = gamma.log_prob(x)
      log_pdf_values = self.evaluate(log_pdf)
      self.assertEqual(log_pdf.shape, (6, 2))
      pdf = gamma.prob(x)
      pdf_values = self.evaluate(pdf)
      self.assertEqual(pdf.shape, (6, 2))
      expected_log_pdf = sp_stats.gamma.logpdf(
          x, concentration_v, scale=1 / rate_v
      )
      self.assertAllClose(log_pdf_values, expected_log_pdf)
      self.assertAllClose(pdf_values, np.exp(expected_log_pdf))
      self.assertAllClose(gamma_lr.log_prob(x), expected_log_pdf)
      self.assertAllClose(gamma_lr.prob(x), np.exp(expected_log_pdf))
  
imports: import functools
  from absl.testing import parameterized
  import numpy
  from scipy import misc
  from scipy import special
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import implementation_selection
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 6 for calling the GammaTest obj's underlying member method code with example usage: obj.testGammaLogPDFMultidimensional() without return types