code: def testLogPMFShapeNoBatch(self):
      histograms = [0.2, 0.8]
      dist = categorical.Categorical(math_ops.log(histograms))
  
      log_prob = dist.log_prob(0)
      self.assertEqual(0, log_prob.get_shape().ndims)
      self.assertAllEqual([], log_prob.get_shape())
  
      log_prob = dist.log_prob([[[1, 1], [1, 0]], [[1, 0], [0, 1]]])
      self.assertEqual(3, log_prob.get_shape().ndims)
      self.assertAllEqual([2, 2, 2], log_prob.get_shape())
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops.distributions import categorical
  from tensorflow.python.ops.distributions import kullback_leibler
  from tensorflow.python.ops.distributions import normal
  from tensorflow.python.platform import test
label_desc: Use image node_id 23 for calling the CategoricalTest obj's underlying member method code with example usage: obj.testLogPMFShapeNoBatch() without return types