备注
Ray 2.10.0 引入了 RLlib 的“新 API 栈”的 alpha 阶段。Ray 团队计划将算法、示例脚本和文档迁移到新的代码库中,从而在 Ray 3.0 之前的后续小版本中逐步替换“旧 API 栈”(例如,ModelV2、Policy、RolloutWorker)。
然而,请注意,到目前为止,只有 PPO(单代理和多代理)和 SAC(仅单代理)支持“新 API 堆栈”,并且默认情况下继续使用旧 API 运行。您可以继续使用现有的自定义(旧堆栈)类。
请参阅此处 以获取有关如何使用新API堆栈的更多详细信息。
策略 API#
The Policy
类包含用于在环境中进行决策计算动作的功能,以及计算损失和梯度、更新神经网络模型以及后处理收集的环境轨迹。一个或多个 Policy
对象位于 RolloutWorker
的 PolicyMap
中,并且如果超过一个,则根据多智能体的 policy_mapping_fn
选择,该函数将代理ID映射到策略ID。
备注
Ray 2.10.0 引入了 RLlib 的“新 API 栈”的 alpha 阶段。Ray 团队计划将算法、示例脚本和文档迁移到新的代码库中,从而在 Ray 3.0 之前的后续小版本中逐步替换“旧 API 栈”(例如,ModelV2、Policy、RolloutWorker)。
然而,请注意,到目前为止,只有 PPO(单代理和多代理)和 SAC(仅单代理)支持“新 API 堆栈”,并且默认情况下继续使用旧 API 运行。您可以继续使用现有的自定义(旧堆栈)类。
请参阅此处 以获取有关如何使用新API堆栈的更多详细信息。
构建自定义策略类#
警告
从 Ray >= 1.9 开始,不再推荐使用 build_policy_class()
或 build_tf_policy()
实用函数来创建自定义策略子类。相反,请遵循这里的简单指南,直接从以下内置类型之一进行子类化:EagerTFPolicyV2
或 TorchPolicyV2
为了创建一个自定义策略,子类化 Policy
(对于一个通用的、与框架无关的策略),TorchPolicyV2
(对于一个特定于PyTorch的策略),或 EagerTFPolicyV2
(对于一个特定于TensorFlow的策略)并覆盖它们的一个或多个方法。特别是这些方法:
基本策略类#
RLlib 所有策略实现的基类。 |
|
基于 TF-eager / TF2 的 TensorFlow 策略。 |
|
与 RLlib 一起使用的 PyTorch 特定策略类。 |
制作模型#
基本策略#
返回 RL 模块(仅在启用 RLModule API 时)。 |
Torch 策略#
创建模型。 |
|
创建模型和动作分布函数。 |
Tensorflow 策略#
构建此策略的基础模型。 |
推理#
基本策略#
计算当前策略的动作。 |
|
计算从收集的样本(跨多个代理)中得出的动作。 |
|
计算并返回一个单一(B=1)的动作值。 |
Torch 策略#
给定策略,用于采样新动作的自定义函数。 |
|
此策略的动作分布函数。 |
|
返回包含在经验批次中的额外信息的字典。 |
Tensorflow 策略#
给定策略,用于采样新动作的自定义函数。 |
|
此策略的动作分布函数。 |
|
从 compute_actions() 中获取并返回的额外值。 |
计算、处理和应用梯度#
基本策略#
在给定一批经验的情况下计算梯度。 |
|
应用(之前)计算的梯度。 |
Torch 策略#
从 compute_gradients() 中获取并返回的额外值。 |
|
在每次 optimizer.zero_grad() + loss.backward() 调用后被调用。 |
Tensorflow 策略#
梯度统计函数。 |
|
梯度计算函数(从损失张量,使用本地优化器)。 |
|
梯度计算函数(从损失张量,使用本地优化器)。 |
|
在梯度计算后要报告的额外统计数据。 |
更新策略的模型#
基本策略#
执行一次学习更新,基于 |
|
将给定的 SampleBatch 批量加载到设备的内存中。 |
|
在已经加载到缓冲区中的数据上运行一次SGD的单步操作。 |
|
从给定的回放缓存中采样一批数据并执行更新。 |
|
返回给定缓冲区中当前加载的样本数量。 |
损失, 日志记录, 优化器, 和轨迹处理#
基本策略#
此策略的损失函数。 |
|
计算给定动作和观察的对数概率/似然。 |
|
在全局变量更新时调用。 |
|
实现特定算法的轨迹后处理。 |
Torch 策略#
自定义要使用的本地 PyTorch 优化器。 |
|
返回每个塔的统计列表,复制到此策略的设备中。 |
Tensorflow 策略#
用于策略优化的TF优化器。 |
|
统计函数。 |
保存和恢复#
基本策略#
从给定的策略或算法检查点创建新的策略实例。 |
|
将导出策略检查点保存到本地目录并返回一个 AIR 检查点。 |
|
将策略的模型导出到本地目录以供服务。 |
|
从状态对象中恢复策略。 |
|
返回模型权重。 |
|
设置此策略模型的权重。 |
|
返回此策略的当前整个状态。 |
|
从 |
|
从本地文件导入策略。 |
连接器#
基本策略#
重置此策略的操作连接器和代理连接器。 |
|
如果配置可用,则恢复代理和操作连接器。 |
|
从连接器获取时间指标。 |
循环策略#
基本策略#
返回当前策略的初始RNN状态。 |
|
策略的RNN模型所需的内部状态数量。 |
|
此策略是否持有循环模型。 |
杂项#
基本策略#
使用此 Policy 实例调用给定的函数。 |
|
返回用于计算动作的 tf.Session 对象,或返回 None。 |
|
|
|
返回计算机的网络名称。 |
|
返回此策略的探索组件的状态。 |
Torch 策略#
获取批处理可分性请求。 |
Tensorflow 策略#
返回此策略中所有可保存变量的列表。 |
|
获取批处理可分性请求。 |