ray.rllib.algorithms.algorithm.Algorithm.compute_actions#
- Algorithm.compute_actions(observations: numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple, state: List[numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple] | None = None, *, prev_action: numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple | None = None, prev_reward: numpy.array | jnp.ndarray | tf.Tensor | torch.Tensor | dict | tuple | None = None, info: dict | None = None, policy_id: str = 'default_policy', full_fetch: bool = False, explore: bool | None = None, timestep: int | None = None, episodes: List[Episode] | None = None, unsquash_actions: bool | None = None, clip_actions: bool | None = None, **kwargs)[源代码]#
在本地Worker上为指定策略计算一个动作。
请注意,您也可以通过 self.get_policy(policy_id) 访问策略对象,并直接在其上调用 compute_actions()。
- 参数:
observation – 对环境的观察。
state – RNN 隐藏状态(如果有)。如果状态不为 None,则返回 compute_single_action(…) 的所有内容(计算的动作、RNN 状态、logits 字典)。否则返回 compute_single_action(…)[0](计算的动作)。
prev_action – 如果有的话,前一个动作的值。
prev_reward – 如果有的话,之前的奖励。
info – 环境信息字典,如果有的话。
policy_id – 查询策略(仅适用于多代理)。
full_fetch – 是否返回额外的动作获取结果。如果指定了RNN状态,则此项始终设置为True。
explore – 选择一个利用或探索动作(默认:None -> 使用 self.config.explore)。
timestep – 当前(采样)时间步。
episodes – 这提供了访问所有内部事件状态的权限,这对于基于模型的算法或多智能体算法可能非常有用。
unsquash_actions – 是否应根据环境/策略的动作空间对动作进行非扁平化处理?如果为None,则使用self.config.normalize_actions。
clip_actions – 动作是否应根据环境/策略的动作空间进行裁剪?如果为None,则使用self.config.clip_actions。
- 关键字参数:
kwargs – 向前兼容占位符
- 返回:
如果 full_fetch=False,则计算动作;如果 full_fetch=True 或我们有一个基于 RNN 的策略,则返回一个元组,其中包含 policy.compute_actions_from_input_dict() 的完整输出。