code: def testNegativeBinomialLogPmfMultidimensional(self):
      batch_size = 6
      probs = tf.constant([[0.2, 0.3, 0.5]] * batch_size)
      probs_v = np.array([0.2, 0.3, 0.5])
      total_count = 5.0
      x = np.array([[2.0, 3.0, 4.0, 5.0, 6.0, 7.0]], dtype=np.float32).T
      negbinom = negative_binomial.NegativeBinomial(
          total_count=total_count, probs=probs, validate_args=True
      )
      expected_log_pmf = stats.nbinom.logpmf(
          x, n=total_count, p=1 - probs_v
      )
      log_pmf = negbinom.log_prob(x)
      log_pmf_values = self.evaluate(log_pmf)
      self.assertEqual([6, 3], log_pmf.shape)
      self.assertAllClose(expected_log_pmf, log_pmf_values)
  
      pmf = negbinom.prob(x)
      pmf_values = self.evaluate(pmf)
      self.assertEqual([6, 3], pmf.shape)
      self.assertAllClose(np.exp(expected_log_pmf), pmf_values)
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import negative_binomial
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 14 for calling the NegativeBinomialTest obj's underlying member method code with example usage: obj.testNegativeBinomialLogPmfMultidimensional() without return types