备注
Ray 2.10.0 引入了 RLlib 的“新 API 栈”的 alpha 阶段。Ray 团队计划将算法、示例脚本和文档迁移到新的代码库中,从而在 Ray 3.0 之前的后续小版本中逐步替换“旧 API 栈”(例如,ModelV2、Policy、RolloutWorker)。
然而,请注意,到目前为止,只有 PPO(单代理和多代理)和 SAC(仅单代理)支持“新 API 堆栈”,并且默认情况下继续使用旧 API 运行。您可以继续使用现有的自定义(旧堆栈)类。
请参阅此处 以获取有关如何使用新API堆栈的更多详细信息。
RLlib 工具#
以下是RLlib中所有可用工具的列表。
探索 API#
探索在强化学习中至关重要,它使学习代理能够通过到达环境中的未探索区域来发现新的、潜在的高奖励状态。
RLlib 有几种内置的探索组件,不同的算法会使用这些组件。你也可以通过子类化 Exploration 基类并实现自己的逻辑来定制算法的探索行为:
内置探索组件#
实现了一种策略的探索策略。 |
|
一个随机动作选择器(当 explore=False 时为确定性/贪婪)。 |
|
一种仅从分布中采样的探索。 |
|
Epsilon-greedy 探索类,用于生成探索动作。 |
|
一个向连续动作添加白噪声的探索。 |
|
一种探索方法,向连续动作添加 Ornstein-Uhlenbeck 噪声。 |
|
用于高效探索的随机编码器。 |
|
实现:[1] 基于好奇心的自我监督预测探索 Pathak, Agrawal, Efros, 和 Darrell - 加州大学伯克利分校 - ICML 2017。 |
|
改变模型参数的探索。 |
推理#
返回一个(可能的)探索性动作及其对数似然。 |
回调钩子#
在调用 policy.compute_actions() 之前的准备工作钩子。 |
|
在剧集开始时处理必要的探索逻辑。 |
|
在剧集结束时处理必要的探索逻辑。 |
|
处理已完成剧情节点的后处理。 |
设置和获取状态#
返回当前的探索状态。 |
|
将 Exploration 对象的状态设置为给定的值。 |
调度器 API#
使用调度器根据(int64)时间步输入为变量(在Python、PyTorch或TensorFlow中)设置预定值。计算的值通常是float32类型。
内置调度器组件#
调度类实现了各种依赖于时间的调度模式。 |
|
一个值随时间保持不变的计划。 |
|
在 |
|
实现了一个分段调度器。 |
|
从 |
|
在 |
方法#
根据计划逻辑生成给定时间步的值。 |
|
简单地调用 self.value(t)。 |
训练操作工具#
多GPU版本的train_one_step。 |
|
在本地工作进程中改进 |
框架工具#
导入工具#
尝试导入 torch 并返回模块(或 None)。 |
|
尝试导入 tf 并返回模块(或 None)。 |
|
尝试导入 tfp 并返回模块(或 None)。 |
Tensorflow 工具#
计算一对标签和预测值的解释方差。 |
|
根据给定的空间结构,展平任意输入结构。 |
|
返回一个GPU设备名称的列表,例如:["/gpu:0", "/gpu:1"]。 |
|
返回一个给定可选提示(如空间)的 tf1.placeholder 对象。 |
|
计算给定项和delta参数的huber损失。 |
|
计算张量值的L2范数的一半,不包括平方根。 |
|
返回一个可以在图模式或急切模式下执行的函数。 |
|
计算,然后使用目标、优化器和变量列表裁剪梯度。 |
|
返回一个独热张量,给定一个整数张量和一个空间。 |
|
与 tf.reduce_mean() 相同,但忽略 -inf 值。 |
|
获取给定范围内的变量。 |
|
对于某些动作返回虚拟对数概率(0)的有用辅助函数。 |
Torch 工具#
在 |
|
在给定 TorchPolicy 的情况下,连接多 GPU(每塔)的 TD 误差张量。 |
|
将任何结构转换为 torch.Tensors。 |
|
计算一对标签和预测值的解释方差。 |
|
根据给定的空间结构,展平任意输入结构。 |
|
返回一个张量列表的全局L2范数。 |
|
计算给定项和delta参数的huber损失。 |
|
计算张量值的L2范数的一半,不包括平方根。 |
|
将 |
|
返回一个独热张量,给定一个整数张量和一个空间。 |
|
与 torch.mean() 相同,但忽略 -inf 值。 |
|
提供与 tf.sequence_mask 相同的行为给 torch。 |
|
将 torch 随机种子设置为给定值。 |
|
与 tf.nn.softmax_cross_entropy_with_logits 行为相同。 |
Numpy 工具#
将 |
|
计算给定权重/偏置和输入的 FC(密集)层输出。 |
|
根据给定的空间结构,展平任意输入结构。 |
|
将标志操作设为不可变,以在用户尝试更改时通知用户。 |
|
计算张量的L2范数的一半(不带平方根):sum(x**2) / 2。 |
|
计算给定权重/偏置、状态和输入的LSTM层输出。 |
|
用于numpy的独热编码实用函数。 |
|
泄漏 ReLU 函数的实现。 |
|
返回应用于 x 的 sigmoid 函数。 |
|
返回 x 的 softmax 值。 |
检查点工具#
RLlib 组件的抽象基类,可以将其检查点保存到磁盘。 |
|
将算法检查点(基于pickle)转换为基于msgpack的检查点。 |
|
将策略检查点(基于pickle)转换为基于msgpack的检查点。 |
|
返回一个包含算法/策略检查点信息的字典。 |
|
尝试导入 msgpack 和 msgpack_numpy,并返回已修补的 msgpack 模块。 |
政策工具#
返回给定批次中策略动作的对数似然。 |
|
特定框架的策略创建逻辑。 |
|
使用环境观察运行一个启用了连接器的策略。 |
|
从检查点文件中读取并解析策略规范。 |
其他工具#
返回给定张量或数组的 NumPy dtype。 |
|
用于CLI参数和选项的数据类。 |
|
用于CLI参数验证的RLlib支持的框架。 |
|
RLlib 支持的文件类型,用于 CLI 参数验证。 |
|
确保给定的 |
|
从文件加载实验。 |