问题标签 [rllib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
31 浏览

reinforcement-learning - 通缉:用于最大化所有代理的整体奖励的多代理系统

也许您可以帮助我解决以下问题。

系统型号:

我们假设有两个智能体 A 和 B,以及它们对应的动作 a_a 和 a_b。动作空间定义为 {1,2,3}。这些数字对应于奖励矩阵的行和列。奖励矩阵定义如下:

代理 A 的奖励矩阵:[11 0 0, 0 0 0, 0 0 -10]

代理 B 的奖励矩阵:[11 0 0, 0 0 0, 0 0 100]

现在,代理 A 选择列,代理 B 选择行。两者都从相应的矩阵中观察奖励。

优化目标

我们希望最大化整体奖励,即代理 A 和 B 的奖励之和。

现在的问题是什么?

我们按照本教程(ray/centralized_critic.py at master·ray-project/ray·GitHub)使用集中式评论家多代理系统来解决上述目标。

不幸的是,这个系统只优化了代理的个人奖励,如下所示:

点击这里查看奖励图

是否有任何适合我们优化目标的多智能体系统示例,即最大化整体奖励?

在我们的模型中,这将导致总体奖励为 90 而不是 22。

非常感谢。

最好的,亚伦

0 投票
1 回答
115 浏览

python - 在 rllib 中注册健身房环境时传递可选参数

我一直在按照这里有用的示例在健身房中创建一个自定义环境,然后我想在 rllib 中进行训练。

我的环境有一些我想在训练时选择的可选参数。我认为代码的相关部分在train.py这里:

我尝试了一些明显的东西,比如

但似乎没有任何效果。有没有办法在训练之前传递不同的论点?

0 投票
0 回答
37 浏览

machine-learning - Ray每次迭代后的渲染环境?

考虑以下示例:

射线自定义示例

特别是以下代码:

是否可以在每次迭代后渲染环境?

0 投票
0 回答
302 浏览

python - 使用 rllib (PPOTrainer) 训练自定义环境时出现错误。“ValueError:('观察({})超出给定空间({})!'”?

我有一个 30 个元素数组的观察空间,并且我在所有这些数组中都使用了 dtype 作为 np.float32。错误-“ValueError: ('Observation ({}) outside given space ({})!', array(4.2), Box(17.799999237060547, -19.700000762939453, (30,), float32)) "` #观察的上限

这里self.relativevalue是一个列表。

这就是状态返回的方式。如果您需要更多信息,请告诉我。

0 投票
0 回答
27 浏览

ray - 在 ray-rllib 中基于梯度的算法中获取梯度的熵和范数

对于基于梯度的算法,重要的是监控熵的值和网络的梯度范数。这有助于快速找到一组更好的超参数。在当前的 ray 实现中,我找不到任何 API 来获取这些值。有谁知道如何在Trainer函数报告中获得策略的熵,比如PPOTrainer,SACTrainer等?

0 投票
0 回答
70 浏览

ray - 在 ray-rllib 中保存算法训练器的模型和检查点

有谁知道我如何在 ray-rllib 中为算法训练模型进行检查点和保存模型?

我知道这适用于ray.tune,但对于 rllib 算法似乎不能直接这样做。

0 投票
2 回答
236 浏览

reinforcement-learning - 使用 RLlib 时,如何防止我在评估运行期间收到的奖励总和间隔重复?

我正在使用Ray 1.3.0用于 RLlib)和SUMO 版本 1.9.2的组合来模拟多代理场景。我已将 RLlib 配置为使用单个PPO 网络,该网络通常由所有N个代理更新/使用。我的评估设置如下所示:

发生的情况是每 20 次迭代(每次迭代收集“X”个训练样本),至少有 10 集的评估运行。所有N个代理收到的奖励总和在这些情节中相加,并设置为该特定评估运行的奖励总和。随着时间的推移,我注意到有一种模式,奖励总和在相同的评估间隔内不断重复,并且学习无处可去。

更新(23/06/2021)

不幸的是,我没有为该特定运行激活 TensorBoard,但从每 10 集的评估期间收集的平均奖励(每 20 次迭代发生一次),很明显存在重复模式,如下面的注释图所示:

平均奖励与迭代次数

场景中的 20 个代理应该学习避免碰撞,而是继续以某种方式停滞在某个策略上,并最终在评估期间显示完全相同的奖励序列?

这是我如何配置评估方面的特征,还是我应该检查其他内容?如果有人能给我建议或指出正确的方向,我将不胜感激。

谢谢你。

0 投票
0 回答
13 浏览

ray - 通过 ray 对训练好的策略进行评分

我想在训练期间使用经过训练的策略进行一些基准比较,每隔几次训练迭代。为此,我想使用给env定的种子创建一个给定的实例,然后使用每个基准测试以及射线运行一个情节。总之,伪代码如下所示:

其中alg[ray, random, heuristic1, heuristic2]。我的问题是如何为此目的使用调用当前策略?我假设agent.compute_action(s)这样做。如果是这样,问题将是它如何处理随机性?例如,如果算法是 DQN,它使用epsilon=0? 它在策略梯度基础算法中如何工作A2C

0 投票
0 回答
184 浏览

docker - RLlib Trainer 不为 TensorBoard 提供事件文件

当我运行我的 RLlib 训练器时,您将在下面看到日志输出的前几行相关行,期望看到 TfEvent 文件正在生成,以便我可以在 TensorBoard 上查看它们。

我正在使用的基础 docker 图像是tensorflow/tensorflow:latest-gpu-py3给我TensorFlow 2.5和我Ray 1.3.0用于培训的。

我可以看到主要问题是这条线:

当我使用 TensorFlow 时,我不明白为什么它甚至需要 Torch。另外,我真的需要它来生成那些 TFevent 文件。这里有一个类似的问题(https://github.com/ray-project/ray/issues/5546),但在这种情况下我不能应用相同的解决方案。

编辑(相关代码供参考)

0 投票
0 回答
57 浏览

typeerror - 如何解决 rllib 中的“TypeError: can't pickle _thread.lock objects”

我正在尝试在环境中从此框架 rllib 运行基线 PPO。对于这个环境,我们用健身房包装器包装了一个 Unity 环境。

venv 'multiagent' 是由一个 github repo 提供的,它需要能够模拟。我认为它以某种方式制造了一些问题。

该代码显示了如何在此环境中运行 PPO:

我收到以下错误:

我知道它有事情要做,这不能被多处理/序列化。但是我该如何解决呢?