code: def testInverseGammaLogPDFMultidimensionalBroadcasting(self):
      batch_size = 6
      alpha = tf.constant([[2.0, 4.0]] * batch_size)
      beta = tf.constant(3.0)
      alpha_v = np.array([2.0, 4.0])
      beta_v = 3.0
      x = np.array([[2.5, 2.5, 4.0, 0.1, 1.0, 2.0]], dtype=np.float32).T
      inv_gamma = inverse_gamma.InverseGamma(
          concentration=alpha, scale=beta, validate_args=True
      )
      expected_log_pdf = stats.invgamma.logpdf(x, alpha_v, scale=beta_v)
      log_pdf = inv_gamma.log_prob(x)
      log_pdf_values = self.evaluate(log_pdf)
      self.assertEqual(log_pdf.shape, (6, 2))
      self.assertAllClose(log_pdf_values, expected_log_pdf)
  
      pdf = inv_gamma.prob(x)
      pdf_values = self.evaluate(pdf)
      self.assertEqual(pdf.shape, (6, 2))
      self.assertAllClose(pdf_values, np.exp(expected_log_pdf))
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import inverse_gamma
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 4 for calling the InverseGammaTest obj's underlying member method code with example usage: obj.testInverseGammaLogPDFMultidimensionalBroadcasting() without return types