class_docstr: Non-convolutional value and policy networks for SAC.
docstr: Calls the SAC critic network.
  
  SAC uses two Q networks to reduce overestimation bias.
  This can be called using network_def.apply(..., method=network_def.critic).
  
  Args:
    state: An input state.
    action: An action to compute the value of.
  
  Returns:
    A named tuple containing the Q values of each network.
docstr_tok: ["Calls","the","SAC","critic","network",".","SAC","uses","two","Q","networks","to","reduce","overestimation","bias",".","This","can","be","called","using","network_def.apply","(","...",",","method=network_def.critic",")",".","Args",":","state",":","An","input","state",".","action",":","An","action","to","compute","the","value","of",".","Returns",":","A","named","tuple","containing","the","Q","values","of","each","network","."]
code: def critic(
      self, state: jnp.ndarray, action: jnp.ndarray
  ) -> SacCriticOutput:
      """Calls the SAC critic network.
  
      SAC uses two Q networks to reduce overestimation bias.
      This can be called using network_def.apply(..., method=network_def.critic).
  
      Args:
        state: An input state.
        action: An action to compute the value of.
  
      Returns:
        A named tuple containing the Q values of each network.
      """
      return SacCriticOutput(
          self._critic1(state, action), self._critic2(state, action)
      )
  
imports: import functools
  import operator
  from typing import NamedTuple, Optional, Tuple
  from flax import linen
  import gin
  import jax
  from jax import numpy
  import tensorflow
  from tensorflow_probability.substrates import jax
label_desc: Use image node_id 4 for calling the SACNetwork obj's underlying member method code with example usage: obj.critic(state, action) and returns: SacCriticOutput