code: def testDeferredBatchingAction(self):
      if tf.executing_eagerly():
          self.skipTest(
              "b/123770140: Handling sessions with eager mode is buggy"
          )
  
      # Construct policy without providing batch_size.
      tf_policy = q_policy.QPolicy(
          self._time_step_spec,
          self._action_spec,
          q_network=DummyNet(stateful=False),
      )
      policy = py_tf_policy.PyTFPolicy(tf_policy)
  
      # But time_steps have batch_size of 5
      batch_size = 5
      single_observation = np.array([1, 2], dtype=np.float32)
      time_steps = [ts.restart(single_observation)] * batch_size
      time_steps = fast_map_structure(
          lambda *arrays: np.stack(arrays), *time_steps
      )
  
      with self.cached_session():
          self.evaluate(tf.compat.v1.global_variables_initializer())
          action_steps = policy.action(time_steps)
          self.assertEqual(action_steps.action.shape, (batch_size,))
          for a in action_steps.action:
              self.assertIn(a, (0, 1))
          self.assertAllEqual(action_steps.state, ())
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl import flags
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tf_agents.networks import network
  from tf_agents.policies import actor_policy
  from tf_agents.policies import ou_noise_policy
  from tf_agents.policies import py_tf_policy
  from tf_agents.policies import q_policy
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
  from tf_agents.utils import test_utils
label_desc: Use image node_id 8 for calling the PyTFPolicyTest obj's underlying member method code with example usage: obj.testDeferredBatchingAction() without return types