code: def training(
      self,
      *,
      zero_init_states: Optional[bool] = NotProvided,
      use_h_function: Optional[bool] = NotProvided,
      h_function_epsilon: Optional[float] = NotProvided,
      **kwargs,
  ) -> "R2D2Config":
      super().training(**kwargs)
  
      if zero_init_states is not NotProvided:
          self.zero_init_states = zero_init_states
      if use_h_function is not NotProvided:
          self.use_h_function = use_h_function
      if h_function_epsilon is not NotProvided:
          self.h_function_epsilon = h_function_epsilon
  
      return self
  
file_path: ray/python/ray/rllib/algorithms/r2d2/r2d2.py
imports: from typing import Optional
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.dqn import DQN, DQNConfig
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE, Deprecated, ALGO_DEPRECATION_WARNING
label_desc: Use image node_id 2 for calling the R2D2Config obj's underlying member method code with example usage: obj.training() and returns: self