code: def testSampleAndLogProbBatchMultivariateShapes(self):
      gm = self._build_mvndiag_mixture(
          probs=[0.3, 0.7],
          loc=[[[-1.0, 1], [1, -1]], [[0.0, 1], [1, 0]]],
          scale_diag=np.ones((2, 2, 2)) * [[1.0], [0.5]],
      )
      x = gm.sample([4, 5], seed=test_util.test_seed())
      log_prob_x = gm.log_prob(x)
      self.assertAllEqual([4, 5, 2, 2], self._shape(x))
      self.assertAllEqual([4, 5, 2], self._shape(log_prob_x))
  
imports: import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import bernoulli
  from tensorflow_probability.python.distributions import categorical
  from tensorflow_probability.python.distributions import dirichlet
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import logistic
  from tensorflow_probability.python.distributions import mixture_same_family
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import hypothesis_testlib
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 5 for calling the _MixtureSameFamilyTest obj's underlying member method code with example usage: obj.testSampleAndLogProbBatchMultivariateShapes() without return types