ray.rllib.algorithms.algorithm.Algorithm.移除模块#
- Algorithm.remove_module(module_id: str, *, new_agent_to_module_mapping_fn: Callable[[Any, SingleAgentEpisode | MultiAgentEpisode], str] | None = None, new_should_module_be_updated: Sequence[str] | Callable[[str, MultiAgentBatch | None], bool] | None = None, remove_from_learners: bool = True, remove_from_env_runners: bool = True, remove_from_eval_env_runners: bool = True) Policy | None [源代码]#
从此算法的MARLModule中移除一个新的(单智能体)RLModule。
- 参数:
module_id – 要从 MARLModule 中移除的 RLModule 的 ID。重要提示:不得包含 Unix/Win 文件系统中也不允许的字符,例如:
<>:"/|?*
,或者 ID 末尾的点、空格或反斜杠。new_agent_to_module_mapping_fn – 一个可选的(更新的)AgentID 到 ModuleID 的映射函数,从这里开始使用。请注意,已经进行中的剧集不会更改其映射,而是会继续使用旧的映射,直到剧集结束。
new_should_module_be_updated – 一个可选的 ModuleID 序列或一个接受 ModuleID 和 SampleBatchType 并返回 ModuleID 是否应更新的可调用对象。如果为 None,将保留现有的设置。不在列表中(或可调用对象返回 False)的 RLModule 将不会更新。
remove_from_learners – 是否从 LearnerGroup 中移除 RLModule(及其 n 个 Learners)。
remove_from_env_runners – 是否从 EnvRunnerGroup 中移除 RLModule(包括其 m 个 EnvRunners 以及本地的那个)。
remove_from_eval_env_runners – 是否从评估 EnvRunnerGroup 中移除 RLModule(及其 o EnvRunners 加上本地的那个)。
- 返回:
新的 MultiAgentRLModuleSpec(在 RLModule 被移除之后)。