问题标签 [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.
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_worker
时1
,问题就解决了。知道如何解决这个问题吗?
reinforcement-learning - Ray[RLlib] 自定义动作分布(TorchDeterministic)
我们知道在一个Box(连续动作)Action Space的情况下,对应的Action Distribution是DiagGaussian(概率分布)。
但是,我想使用 TorchDeterministic(直接返回输入值的动作分布)。
通过正确的导入,我将此类的内容复制并粘贴到名为 custom_action_dist.py 的文件中。
我用以下方式导入了它:
将我的 custom_action_dist 注册为:
在我指定的配置中:
但是,我收到以下错误:
看来我必须指定一个概率分布。
谁能帮我,告诉我是哪一个?
谢谢并期待您的回复!
python - 强化学习训练在改进后崩溃
我正在使用 RlLib 使用 PPO 算法训练代理:如果达到目标,则“Ant”代理获得 +1,否则为 0。
超参数:
我训练了 5 次试验。但是,如图所示,其中 2 条轨迹在一定次数的迭代后崩溃: Average Reward Mean 有什么解释吗?
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() 被调用时,它会引发一个错误(见下文)。
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
python - 使用矢量化环境训练 ray.rllib 算法
我正在使用 ray.rllib,我坚持使用静态方法 (line40)对我的自定义环境进行矢量化并使用 PPOTrainer() 对其进行训练。我使用existing_envs
参数并交出我手动创建的 gym.envs 列表。是否有任何选项可以在 PPOTrainer() 中传递 vec 环境,有人可以帮我解决这个问题吗?
简而言之:当我使用静态方法 (line40)创建矢量化环境时,如何使用 ray.rllib 训练 PPO 。
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:
重现错误的简单完整代码示例:
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 有点陌生。
python - 多代理环境的迁移学习。使用 RLlib
我在使用 RlLib 时遇到问题:我训练了一个网络,它取得了很好的效果。恢复最后一个检查点时,一切正常。但是,如果初始化一个新的训练器(类似于受过训练的训练器并将其权重设置为等于受过训练的训练器),我不会得到好的结果。
PS:我想通过这样做来复制过滤器:
但是,我仍然有不好的结果。
我错过了什么?除了重量之外,我还应该设置其他东西以获得相同的教练吗?