code: def load_state(
      self,
      path: Union[str, pathlib.Path],
  ) -> None:
      # This operation is potentially very costly because a MARL Module is created at
      # build time, destroyed, and then a new one is created from a checkpoint.
      # However, it is necessary due to complications with the way that Ray Tune
      # restores failed trials. When Tune restores a failed trial, it reconstructs the
      # entire experiment from the initial config. Therefore, to reflect any changes
      # made to the learner's modules, the module created by Tune is destroyed and
      # then rebuilt from the checkpoint.
      with self._strategy.scope():
          super().load_state(path)
  
imports: import json
  import logging
  import pathlib
  from typing import Any, Callable, Dict, Hashable, Sequence, Tuple, TYPE_CHECKING, Union
  from ray.rllib.core.learner.learner import Learner
  from ray.rllib.core.rl_module.rl_module import RLModule, SingleAgentRLModuleSpec
  from ray.rllib.core.rl_module.tf.tf_rl_module import TfRLModule
  from ray.rllib.policy.eager_tf_policy import _convert_to_tf
  from ray.rllib.policy.sample_batch import MultiAgentBatch
  from ray.rllib.utils.annotations import override, OverrideToImplementCustomLogic
  from ray.rllib.utils.deprecation import deprecation_warning
  from ray.rllib.utils.framework import try_import_tf
  from ray.rllib.utils.metrics import ALL_MODULES
  from ray.rllib.utils.nested_dict import NestedDict
  from ray.rllib.utils.serialization import convert_numpy_to_python_primitives
  from ray.rllib.utils.typing import ModuleID, Optimizer, Param, ParamDict, TensorType
label_desc: Use image node_id 5 for calling the TfLearner obj's underlying member method code with example usage: obj.load_state(path) without return types