code: def testShapeInferenceSingleActionNoEntropyNormDynamic(
      self, sequence_length, batch_size, num_actions
  ):
      self._setUp_a2c_loss(
          sequence_length=sequence_length,
          batch_size=batch_size,
          num_mvn_actions=num_actions,
          num_discrete_actions=num_actions,
          multi_actions=False,
          normalise_entropy=False,
          gae_lambda=1.0,
      )
      t, b = sequence_length, batch_size
  
      self.assertEqual(
          self._extra.discounted_returns.get_shape().as_list(), [t, b]
      )
      self.assertEqual(
          self._extra.advantages.get_shape().as_list(), [t, b]
      )
      self.assertEqual(
          self._extra.policy_gradient_loss.get_shape().as_list(), [b]
      )
      self.assertEqual(self._extra.entropy.get_shape().as_list(), [b])
      self.assertEqual(
          self._extra.entropy_loss.get_shape().as_list(), [b]
      )
      self.assertEqual(self._loss.get_shape().as_list(), [b])
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import numpy
  from six.moves import xrange
  import tensorflow.compat.v1
  import tensorflow_probability
  import tree
  from trfl import policy_gradient_ops
label_desc: Use image node_id 3 for calling the SequenceA2CLossTest obj's underlying member method code with example usage: obj.testShapeInferenceSingleActionNoEntropyNormDynamic(sequence_length, batch_size, num_actions) without return types