ray.rllib.evaluation.rollout_worker.RolloutWorker.add_policy#

RolloutWorker.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: dict | None = None, policy_state: Dict[str, numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple] | None = None, policy_mapping_fn: Callable[[Any, Episode], str] | None = None, policies_to_train: Collection[str] | Callable[[str, SampleBatch | MultiAgentBatch | Dict[str, Any]], bool] | None = None, module_spec: RLModuleSpec | None = None) Policy[源代码]#

向此 RolloutWorker 添加新策略。

参数:
  • policy_id – 要添加的策略的ID。

  • policy_cls – 用于构建新策略的 Policy 类。注意:必须提供 policy_clspolicy 中的一个。

  • policy – 要添加到此算法的策略实例。注意:必须提供 policy_clspolicy 中的一个。

  • observation_space – 要添加的策略的观察空间。

  • action_space – 要添加的策略的动作空间。

  • config – 要添加的策略的配置覆盖。

  • policy_state – 可选的状态字典,用于在新的策略实例创建后立即应用。

  • policy_mapping_fn – 一个可选的(更新后的)策略映射函数,从此处开始使用。请注意,已经进行中的情节不会更改其映射,而是会继续使用旧的映射,直到该情节结束。

  • policies_to_train – 一个可选的策略ID集合,用于训练或一个可调用的函数,该函数接受PolicyID和(可选的)SampleBatchType并返回一个布尔值(是否可训练?)。如果为None,将保持现有的设置。不在列表中(或可调用函数返回False)的策略ID对应的策略将不会被更新。

  • module_spec – 在新的 RLModule API 中,我们需要为要添加的新模块传入 module_spec。仅知道策略规范是不够的。

返回:

新添加的政策。

抛出:
  • ValueError – 如果同时提供了 policy_clspolicy

  • KeyError – 如果给定的 policy_id 已经存在于这个工作者的 PolicyMap 中。