code: def training(
      self,
      *,
      mixer: Optional[str] = NotProvided,
      mixing_embed_dim: Optional[int] = NotProvided,
      double_q: Optional[bool] = NotProvided,
      target_network_update_freq: Optional[int] = NotProvided,
      replay_buffer_config: Optional[dict] = NotProvided,
      optim_alpha: Optional[float] = NotProvided,
      optim_eps: Optional[float] = NotProvided,
      grad_clip: Optional[float] = NotProvided,
      grad_norm_clipping=DEPRECATED_VALUE,
      **kwargs,
  ) -> "QMixConfig":
      super().training(**kwargs)
  
      if grad_norm_clipping != DEPRECATED_VALUE:
          deprecation_warning(
              old="grad_norm_clipping",
              new="grad_clip",
              help="Parameter `grad_norm_clipping` has been "
              "deprecated in favor of grad_clip in QMix. "
              "This is now the same parameter as in other "
              "algorithms. `grad_clip` will be overwritten by "
              "`grad_norm_clipping={}`".format(grad_norm_clipping),
              error=True,
          )
          grad_clip = grad_norm_clipping
  
      if mixer is not NotProvided:
          self.mixer = mixer
      if mixing_embed_dim is not NotProvided:
          self.mixing_embed_dim = mixing_embed_dim
      if double_q is not NotProvided:
          self.double_q = double_q
      if target_network_update_freq is not NotProvided:
          self.target_network_update_freq = target_network_update_freq
      if replay_buffer_config is not NotProvided:
          self.replay_buffer_config = replay_buffer_config
      if optim_alpha is not NotProvided:
          self.optim_alpha = optim_alpha
      if optim_eps is not NotProvided:
          self.optim_eps = optim_eps
      if grad_clip is not NotProvided:
          self.grad_clip = grad_clip
  
      return self
  
file_path: ray/rllib/algorithms/qmix/qmix.py
imports: from typing import Optional
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.simple_q.simple_q import SimpleQ, SimpleQConfig
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE, Deprecated, deprecation_warning, ALGO_DEPRECATION_WARNING
label_desc: Use image node_id 2 for calling the QMixConfig obj's underlying member method code with example usage: obj.training() and returns: self