code: def testUnknownShape(self):
      logits = lambda l: tf1.placeholder_with_default(  # pylint: disable=g-long-lambda
          np.float32(l), shape=None
      )
      sample = lambda l: categorical.Categorical(  # pylint: disable=g-long-lambda
          logits=logits(l), validate_args=True
      ).sample(
          seed=test_util.test_seed()
      )
      # Will sample class 1.
      sample_value = self.evaluate(sample([-1000.0, 1000.0]))
      self.assertEqual(1, sample_value)
  
      # Batch entry 0 will sample class 1, batch entry 1 will sample class 0.
      sample_value_batch = self.evaluate(
          sample([[-1000.0, 1000.0], [1000.0, -1000.0]])
      )
      self.assertAllEqual([1, 0], sample_value_batch)
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.distributions import categorical
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.util import deferred_tensor
label_desc: Use image node_id 5 for calling the CategoricalTest obj's underlying member method code with example usage: obj.testUnknownShape() without return types