class_docstr: Creates a critic network.
code: def call(
      self, inputs, step_type=(), network_state=(), training=False
  ):
      observations, actions = inputs
      del step_type  # unused.
      observations = tf.cast(
          tf.nest.flatten(observations)[0], tf.float32
      )
      for layer in self._observation_layers:
          observations = layer(observations, training=training)
  
      actions = tf.cast(tf.nest.flatten(actions)[0], tf.float32)
      for layer in self._action_layers:
          actions = layer(actions, training=training)
  
      joint = tf.concat([observations, actions], 1)
      for layer in self._joint_layers:
          joint = layer(joint, training=training)
  
      return tf.reshape(joint, [-1]), network_state
  
file_path: agents/tf_agents/agents/ddpg/critic_network.py
imports: import gin
  import tensorflow
  from tf_agents.networks import network
  from tf_agents.networks import utils
label_desc: Use image node_id 2 for calling the CriticNetwork obj's underlying member method code with example usage: obj.call(inputs, step_type, network_state, training) and returns: tf,  network_state