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_cls
或policy
中的一个。policy – 要添加到此算法的策略实例。注意:必须提供
policy_cls
或policy
中的一个。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_cls
和policy
。KeyError – 如果给定的
policy_id
已经存在于这个工作者的 PolicyMap 中。