ray.rllib.algorithms.algorithm.Algorithm.add_policy#
- Algorithm.add_policy(policy_id: str, policy_cls: Type[Policy] | None = None, policy: Policy | None = None, *, observation_space: gymnasium.spaces.Space | None = None, action_space: gymnasium.spaces.Space | None = None, config: AlgorithmConfig | dict | None = None, policy_state: Dict[str, numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple] | None = None, policy_mapping_fn: Callable[[Any, int | str], str] | None = None, policies_to_train: Collection[str] | Callable[[str, SampleBatch | MultiAgentBatch | Dict[str, Any] | None], bool] | None = None, add_to_learners: bool = True, add_to_env_runners: bool = True, add_to_eval_env_runners: bool = True, module_spec: RLModuleSpec | None = None, evaluation_workers=-1) Policy | None [源代码]#
向此算法添加新策略。
- 参数:
policy_id – 要添加的策略的ID。重要提示:不得包含Unix/Win文件系统中也不允许的字符,例如:
<>:"/|?*
,或者ID末尾的点、空格或反斜杠。policy_cls – 用于构建新策略的 Policy 类。注意:必须提供
policy_cls
或policy
中的一个。policy – 要添加到此算法中的策略实例。如果不是 None,给定的策略对象将直接插入到算法的本地工作器中,并且该策略的克隆将在所有远程工作器以及所有评估工作器上创建。注意:只能提供
policy_cls
或policy
中的一个。observation_space – 要添加的策略的观察空间。如果为 None,则尝试从环境中推断此空间。
action_space – 要添加的策略的动作空间。如果为 None,则尝试从环境中推断此空间。
config – 要添加的策略的配置对象或覆盖。
policy_state – 可选的状态字典,用于在新的策略实例创建后立即应用。
policy_mapping_fn – 一个可选的(更新后的)策略映射函数,从此处开始使用。请注意,已经进行中的情节不会更改其映射,而是会继续使用旧的映射,直到该情节结束。
policies_to_train – 一个可选的策略ID列表,用于指定要训练的策略,或者是一个可调用的函数,该函数接受PolicyID和SampleBatchType并返回一个布尔值(是否可训练?)。如果为None,将保持现有的设置不变。不在列表中的策略ID(或可调用函数返回False的策略)将不会被更新。
add_to_learners – 是否将新的 RLModule 添加到 LearnerGroup(带有其 n 个 Learners)。此设置仅在混合 API 栈(带有 Learners,但没有 EnvRunners)上有效。
add_to_env_runners – 是否将新的 RLModule 添加到 EnvRunnerGroup(包含其 m 个 EnvRunners 加上本地的那个)。
add_to_eval_env_runners – 是否将新的 RLModule 添加到 eval EnvRunnerGroup(包含其 o EnvRunners 加上本地的那个)。
module_spec – 在新的 RLModule API 中,我们需要为要添加的新模块传入 module_spec。仅知道策略规范是不够的。
- 返回:
新添加的政策(添加到本地工作者的副本)。如果提供了
workers
,则返回 None。