问题标签 [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 回答
285 浏览

amazon-sagemaker - 演员未完成此任务意外死亡(Ray1.7.0,Sagemaker)

Ray rllib使用库在 8 核 CPU 的 sagemaker 上运行sagemaker_rl,我将 num_workers 设置为 7。

经过长时间的处决后,我面临The actor died unexpectedly before finishing this task

失败 #1(发生在 2021-10-20_18-35-15) Traceback(最近一次调用最后一次):
文件“/usr/local/lib/python3.6/dist-packages/ray/tune/trial_runner.py”,第 467 行,在 _process_trial 结果 = self.trial_executor.fetch_result(trial) 文件“/usr/local/lib/python3.6/dist-packages/ray/tune/ray_trial_executor.py”,第 431 行,在 fetch_result 结果 = ray. get(trial_future[0], DEFAULT_GET_TIMEOUT) File "/usr/local/lib/python3.6/dist-packages/ray/worker.py", line 1517, in get raise value ray.exceptions.RayActorError: 演员意外死亡在完成这项任务之前。

但是每当我改变问题num_worker1,问题就解决了。知道如何解决这个问题吗?

0 投票
0 回答
75 浏览

reinforcement-learning - Ray[RLlib] 自定义动作分布(TorchDeterministic)

我们知道在一个Box(连续动作)Action Space的情况下,对应的Action Distribution是DiagGaussian(概率分布)。

但是,我想使用 TorchDeterministic(直接返回输入值的动作分布)。

这是代码,取自https://github.com/ray-project/ray/blob/a91ddbdeb98e81741beeeb5c17902cab1e771105/rllib/models/torch/torch_action_dist.py#L372

通过正确的导入,我将此类的内容复制并粘贴到名为 custom_action_dist.py 的文件中。

我用以下方式导入了它:

将我的 custom_action_dist 注册为:

在我指定的配置中:

但是,我收到以下错误:

看来我必须指定一个概率分布。

谁能帮我,告诉我是哪一个?

谢谢并期待您的回复!

0 投票
0 回答
22 浏览

python - 强化学习训练在改进后崩溃

我正在使用 RlLib 使用 PPO 算法训练代理:如果达到目标,则“Ant”代理获得 +1,否则为 0。
超参数:

我训练了 5 次试验。但是,如图所示,其中 2 条轨迹在一定次数的迭代后崩溃: Average Reward Mean 有什么解释吗?

0 投票
0 回答
25 浏览

tensorflow - 在 PPOTFPolicy 中调用 tf.keras.model.predict() 函数时,在 Ray RLlib 中使用图形模式会触发错误

我正在使用 Ray RLlib 来训练 PPO 代理,并对 PPOTFPolicy 进行了两次修改。

  • 我在“build_tf_policy()”中的“mixins”参数中添加了一个 mixin 类(比如“Recal”)。这样,PPOTFPolicy 将继承我的“Recal”类,并可以访问我在“Recal”中定义的成员函数。我的“Recal”类是 tf.keras.Model 的一个简单子类。
  • 我定义了一个“my_postprocess_fn”函数来替换“build_tf_policy()”中参数“postprocess_fn”的“compute_gae_for_sample_batch”函数。

“PPOTrainer=build_trainer(...)”函数保持不变。我使用 framework="tf",并禁用了 Eager 模式。

伪代码如下。是 colab 的运行版本。

这样,“Recal”类是 PPOTFPolicy 的基类,当创建 PPOTFPolicy 的实例时,“Recal”会在同一个 tensorflow 图中实例化。但是当 my_postprocess_fn() 被调用时,它会引发一个错误(见下文)。

0 投票
1 回答
67 浏览

python - 打印 rllib 模型的模型摘要

我在rllib文档中没有看到任何可以让我像print(model.summary())在 keras 中那样打印模型的快速摘要的内容。我尝试使用 tf-slim 和

对张量流模型有一个粗略的了解,但是在模型初始化后没有发现任何变量(插入到ESTrainer类_init 的末尾)。具体来说,我一直在尝试获取进化策略 (ES) 策略的摘要,以验证模型配置的更改是否按预期更新,但我无法获得摘要打印工作。

有没有现成的方法呢?苗条有望在这里工作吗?

0 投票
0 回答
22 浏览

rllib - SAC 解决“CartPole-v0”的超参数

我应用了 RLlib 的 SAC 和下面的超参数链接来解决 CartPole,这是一个非常简单的环境。但是,性能(episode_reward_mean)没有提高,保持在 40 左右。有人可以帮忙吗?

https://github.com/ray-project/ray/blob/master/rllib/tuned_examples/sac/cartpole-sac.yaml

0 投票
0 回答
52 浏览

python - 使用矢量化环境训练 ray.rllib 算法

我正在使用 ray.rllib,我坚持使用静态方法 (line40)对我的自定义环境进行矢量化并使用 PPOTrainer() 对其进行训练。我使用existing_envs参数并交出我手动创建的 gym.envs 列表。是否有任何选项可以在 PPOTrainer() 中传递 vec 环境,有人可以帮我解决这个问题吗?

简而言之:当我使用静态方法 (line40)创建矢量化环境时,如何使用 ray.rllib 训练 PPO 。

0 投票
0 回答
37 浏览

python-3.x - 工人在用 3D 形状观察空间训练 rllib 代理时死亡

当尝试在任意 rllib 多代理环境中将 3D 形状的 Box 空间传输到代理时,程序崩溃并给出提示消息“A worker 在执行任务时因意外的系统错误而死亡或被杀死,并且 RayActorError:演员在完成这项任务之前意外死亡”。但是,如果输入空间是一维空间,则可以避免该错误。该错误与特定的 3D 形状大小无关,shape=(84, 84, 3) 或任何自定义的 3D 形状大小都会有同样的问题。

有什么方法可以输入 3D 形状而不会出现此错误?射线版本是 1.9.2

核心代码是(例如使用 A3C Trainer):

日志是: Traceback(最近一次调用最后一次):

文件“...\A3C - fortest.py”,第 12 行,在 trainer = A3CTrainer(env="env", config={

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer_template.py”,第 102 行,在 init Trainer.init(self, config, env, logger_creator,

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer.py”,第 661 行,在 init super().init(config, logger_creator, remote_checkpoint_dir,

文件“...\envs\tensorflow\lib\site-packages\ray\tune\trainable.py”,第 121 行,在 init self.setup(copy.deepcopy(self.config))

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer_template.py”,第 113 行,在 setup super().setup(config)

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer.py”,第 764 行,在 setup self._init(self.config, self.env_creator)

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer_template.py”,第 136 行,在 _init

_make_workers 中的文件“...\envs\tensorflow\lib\site-packages\ray\rllib\agents\trainer.py”,第 1727 行,返回 WorkerSet(

文件“...\envs\tensorflow\lib\site-packages\ray\rllib\evaluation\worker_set.py”,第 87 行,在 init remote_spaces = ray.get(self.remote_workers(

文件“C:\Users\y\anaconda3\envs\tensorflow\lib\site-packages\ray_private\client_mode_hook.py”,第 105 行,在包装返回 func(*args, **kwargs) 文件“...\envs \tensorflow\lib\site-packages\ray\worker.py",第 1715 行,获取提升值

RayActorError:演员在完成此任务之前意外死亡。

2022-02-06 11:59:07,856 WARNING worker.py:1245 -- 一个工作人员在执行任务时因意外的系统错误而死亡或被杀死。要解决问题,请检查死亡工人的日志。RayTask ID: ffffffffffffffffb025425fa1d54c02ba27f8df01000000 Worker ID: 51efe6f16f87e7bc770e7c41ff526632786b8dd675e92df108c9e593 Node ID: 5c0244bcb3079a6e7ffed6081741e515f088ef511b5aad6ad7f44a60 Worker IP address: 127.0.0.1 Worker port: 36216 Worker PID: 18336 2022-02-06 11:59:07,890 WARNING worker.py:1245 -- A worker died or was在执行任务时因意外的系统错误而被杀死。要解决问题,请检查死亡工人的日志。RayTask ID:fffffffffffffffaa6a2753a82083400fd70c2b01000000 工作人员 ID:a5b0396bec32388bdf081c130a78af3ae44ee7f8372d4d2e4fefc5c8 节点 ID:

重现错误的简单完整代码示例:

0 投票
0 回答
13 浏览

python - ValueError: RolloutWorker 没有 input_reader 对象

我正在使用 RLlib,我正在尝试在 Python 3.9.6 上使用 Ray v1.10 的多代理环境中运行 APEX_DDPG。我收到以下错误:

raise ValueError("RolloutWorker 没有 input_reader 对象!" ValueError: RolloutWorker 没有 input_reader 对象!无法调用 sample()。您可以尝试将 create_env_on_driver 设置为 True。

我在文档中找到了错误的来源,它在 RolloutWorker 类定义中:

但我不知道如何解决它,因为我对 RLlib 有点陌生。

0 投票
0 回答
18 浏览

python - 多代理环境的迁移学习。使用 RLlib

我在使用 RlLib 时遇到问题:我训练了一个网络,它取得了很好的效果。恢复最后一个检查点时,一切正常。但是,如果初始化一个新的训练器(类似于受过训练的训练器并将其权重设置为等于受过训练的训练器),我不会得到好的结果。

PS:我想通过这样做来复制过滤器:

但是,我仍然有不好的结果。

我错过了什么?除了重量之外,我还应该设置其他东西以获得相同的教练吗?