code: def testDropoutJointFCLayers(self, training):
      batch_size = 3
      num_obs_dims = 5
      num_actions_dims = 2
  
      obs_spec = tensor_spec.TensorSpec([num_obs_dims], tf.float32)
      action_spec = tensor_spec.TensorSpec(
          [num_actions_dims], tf.float32
      )
      critic_net = critic_network.CriticNetwork(
          (obs_spec, action_spec),
          joint_fc_layer_params=[20],
          joint_dropout_layer_params=[0.5],
      )
      obs = tf.random.uniform([batch_size, num_obs_dims])
      actions = tf.random.uniform([batch_size, num_actions_dims])
      q_values1, _ = critic_net((obs, actions), training=training)
      q_values2, _ = critic_net((obs, actions), training=training)
      self.evaluate(tf.compat.v1.global_variables_initializer())
      q_values1, q_values2 = self.evaluate([q_values1, q_values2])
      if training:
          self.assertGreater(np.linalg.norm(q_values1 - q_values2), 0)
      else:
          self.assertAllEqual(q_values1, q_values2)
  
file_path: agents/tf_agents/agents/ddpg/critic_network_test.py
imports: from absl.testing import parameterized
  import numpy
  import tensorflow
  from tf_agents.agents.ddpg import critic_network
  from tf_agents.specs import tensor_spec
label_desc: Use image node_id 6 for calling the CriticNetworkTest obj's underlying member method code with example usage: obj.testDropoutJointFCLayers(training) without return types