class_docstr: Defines a configuration class from which an SAC Algorithm can be built.
  
  .. testcode::
  
      config = SACConfig().training(gamma=0.9, lr=0.01, train_batch_size=32)
      config = config.resources(num_gpus=0)
      config = config.rollouts(num_rollout_workers=1)
  
      # Build a Algorithm object from the config and run 1 training iteration.
      algo = config.build(env="CartPole-v1")
      algo.train()
class_docstr_tok: ["Defines","a","configuration","class","from","which","an","SAC","Algorithm","can","be","built",".","..","testcode",":",":","config","=","SACConfig","(",")",".training","(","gamma=0.9",",","lr=0.01",",","train_batch_size=32",")","config","=","config.resources","(","num_gpus=0",")","config","=","config.rollouts","(","num_rollout_workers=1",")","#","Build","a","Algorithm","object","from","the","config","and","run","1","training","iteration",".","algo","=","config.build","(","env=","''","CartPole-v1","''",")","algo.train","(",")"]
code: def validate(self) -> None:
      # Call super's validation method.
      super().validate()
  
      # Check rollout_fragment_length to be compatible with n_step.
      if (
          not self.in_evaluation
          and self.rollout_fragment_length != "auto"
          and self.rollout_fragment_length < self.n_step
      ):
          raise ValueError(
              f"Your `rollout_fragment_length` ({self.rollout_fragment_length}) is "
              f"smaller than `n_step` ({self.n_step})! "
              f"Try setting config.rollouts(rollout_fragment_length={self.n_step})."
          )
  
      if self.use_state_preprocessor != DEPRECATED_VALUE:
          deprecation_warning(
              old="config['use_state_preprocessor']",
              error=False,
          )
          self.use_state_preprocessor = DEPRECATED_VALUE
  
      if self.grad_clip is not None and self.grad_clip <= 0.0:
          raise ValueError("`grad_clip` value must be > 0.0!")
  
      if self.framework in ["tf", "tf2"] and tfp is None:
          logger.warning(
              "You need `tensorflow_probability` in order to run SAC! "
              "Install it via `pip install tensorflow_probability`. Your "
              f"tf.__version__={tf.__version__ if tf else None}."
              "Trying to import tfp results in the following error:"
          )
          try_import_tfp(error=True)
  
imports: import logging
  from typing import Type, Dict, Any, Optional, Union
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.dqn.dqn import DQN
  from ray.rllib.algorithms.sac.sac_tf_policy import SACTFPolicy
  from ray.rllib.policy.policy import Policy
  from ray.rllib.utils import deep_update
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE, deprecation_warning
  from ray.rllib.utils.framework import try_import_tf, try_import_tfp
label_desc: Use image node_id 3 for calling the SACConfig obj's underlying member method code with example usage: obj.validate() without return types