code: def testGeometricLogPmfMultidimensional(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])
      x = np.array([[2.0, 3.0, 4.0, 5.0, 6.0, 7.0]], dtype=np.float32).T
      geom = geometric.Geometric(probs=probs, validate_args=True)
      expected_log_prob = stats.geom.logpmf(x, probs_v, loc=-1)
      log_prob = geom.log_prob(x)
      log_prob_values = self.evaluate(log_prob)
      self.assertEqual([6, 3], log_prob.shape)
      self.assertAllClose(expected_log_prob, log_prob_values)
  
      pmf = geom.prob(x)
      pmf_values = self.evaluate(pmf)
      self.assertEqual([6, 3], pmf.shape)
      self.assertAllClose(np.exp(expected_log_prob), pmf_values)
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import geometric
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 5 for calling the GeometricTest obj's underlying member method code with example usage: obj.testGeometricLogPmfMultidimensional() without return types