ray.rllib.core.rl_模块.多_rl_模块.MultiRLModuleSpec#

class ray.rllib.core.rl_module.multi_rl_module.MultiRLModuleSpec(multi_rl_module_class: ~typing.Type[~ray.rllib.core.rl_module.multi_rl_module.MultiRLModule] = <class 'ray.rllib.core.rl_module.multi_rl_module.MultiRLModule'>, inference_only: bool = False, module_specs: ~ray.rllib.core.rl_module.rl_module.RLModuleSpec | ~typing.Dict[str, ~ray.rllib.core.rl_module.rl_module.RLModuleSpec] = None, load_state_path: str | None = None, modules_to_load: ~typing.Set[str] | None = None, marl_module_class: ~typing.Type[~ray.rllib.core.rl_module.multi_rl_module.MultiRLModule] = <class 'ray.rllib.core.rl_module.multi_rl_module.MultiRLModule'>)[源代码]#

基类:object

一个实用规范类,使构造 MultiRLModules 更容易。

用户可以扩展此类以修改基类的行为。例如,为了在模块之间共享神经网络,可以重写构建方法以首先创建共享模块,然后将其传递给自定义模块类,这些类随后将其用作共享模块。

参数:
  • multi_rl_module_class – 要构建的 MultiRLModule 类。默认设置为 MultiRLModule 类。该类只是遍历每个模块并调用它们的前向方法。

  • module_specs – 每个单独模块的模块规格。它可以是用于所有 module_id 的 RLModuleSpec,或者是从 module_id 映射到每个单独模块的 RLModuleSpecs 的字典。

  • load_state_path – 要加载的模块状态的路径。注意:这必须是一个绝对路径。注意:如果此规范的 load_state_path 已设置,并且其中一个 RLModuleSpecs 的 load_state_path 也已设置,则该 RL 模块的权重将从 RLModuleSpec 中指定的路径加载。如果您想加载 MultiRLModule 的权重,并且还想从其他检查点手动加载该 MultiRLModule 中某些 RL 模块的权重,这将非常有用。

  • modules_to_load – 一组要从检查点加载的模块ID。仅在设置了load_state_path时使用。如果此项为None,则加载所有模块。

PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。

方法

add_modules

将新的模块规格添加到规格中或更新现有规格。

as_multi_rl_module_spec

返回自身以匹配 RLModuleSpec.as_multi_rl_module_spec()

build

构建多智能体模块或单智能体模块。

from_dict

从字典创建一个 MultiRLModuleSpec。

from_module

从 MultiRLModule 创建一个 MultiRLModuleSpec。

get_multi_rl_module_config

返回此规范的 MultiRLModuleConfig。

remove_modules

从此 MultiRLModuleSpec 中移除提供的 ModuleIDs。

to_dict

将 MultiRLModuleSpec 转换为字典。

update

使用另一个规范更新此规范。

属性

inference_only

load_state_path

module_specs

modules_to_load