问题标签 [stable-baselines]

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 回答
22 浏览

reinforcement-learning - StableBaslines3 PPO 模型 train() 冻结?

我试图让我的 RL 模型玩游戏,但我遇到了一个特殊的问题。

我对这一切有点陌生,所以也许这很愚蠢,但是:

我的环境和一切都设置得很好,测试时就像一个魅力。我可以看到模型所做的输入和它接收到的数据。

问题是在 model.learn() 之后脚本只是冻结了。现在我尝试删除 model.train() 行,在这种情况下,它会一直执行并完成,尽管当然是未经训练的。

我没有看到有人在谈论实现 train() 函数,但是当我看到它时,它似乎是空的且未实现。这是正常的吗?我必须自己构建 train() 函数吗?

在此先感谢,如果您需要任何代码,请告诉我。但我觉得问题出在我的理解上?

0 投票
0 回答
18 浏览

python - 努力运行稳定的基线 RL 算法,怀疑存在版本控制问题

我一直在使用 Gym 和 StableBaselines 来测试强化学习算法,最近我失去了我的虚拟环境,其中包含所有正确版本的软件包,但没有需求文档。我无法获得正确的版本或在线找到正确的版本,但现在是时候使用了:

蟒蛇 3.6

张量流 = 1.15.0

稳定 = 2.10.0

健身房 = 0.15.6

mpi4py = 3.0.3

numpy = 1.19.5

mpi 也是本地安装的

这些适用于我的一个朋友,但不适用于我的电脑。我目前正在获取此堆栈跟踪并寻找有关使用哪些版本的建议。

0 投票
0 回答
73 浏览

python - 健身房多离散空间和A2C稳定基线

我正在一个具有 MultiDiscrete 观察和动作空间的健身房环境中实现基于 stable-baseline3 的 A2C 的 RL 代理。学习时出现以下错误 RuntimeError: Class values must be smaller than num_classes. 这是一个典型的 PyTorch 错误,但我不知道它的起源。我附上我的代码。在代码之前,我解释了这个想法。我们训练一个自定义环境,我们有几台机器(我们首先只训练两台机器),需要在机器坏掉之前决定它们的生产率。动作空间还包括在某个时间距离内安排维护的决定,并且对于每台机器,它决定要维护哪台机器。因此,观察空间是每台机器的消耗状态和计划维护的时间距离(也可以是“未计划的”),而行动空间是每台机器的生产率、每台机器的维护决策和呼叫日程。当总产量超过阈值时给予奖励,负奖励是维护和调度的成本。现在,我知道这是一件大事,我们需要减少这些空间,但实际问题是 PyTorch 的这个错误。我看不出它是从哪里来的。A2C 在观察和动作中都处理多离散空间,但我不知道它的起源。我们使用 MlpPolicy 设置 A2C 算法,并尝试在此环境下训练策略。我附上代码。

我觉得这是由于 MultiDiscrete 空间,但我寻求帮助。谢谢 :)

0 投票
0 回答
27 浏览

python - Stable_Baselines:如何在设备之间转移训练有素的强化学习模型?

我一直在使用 gpu 加速器在 kaggle 笔记本上训练强化学习模型,因为我只有一台 cpu 笔记本电脑可以使用。但是,当我尝试将模型导入本地 jupyter 笔记本时,为了渲染它,我收到以下错误。

我尝试查看文档以纠正错误,但转移标准 pytorch 模型的指南不适用于稳定的基线模型。

0 投票
1 回答
29 浏览

pytorch - 如何指定 model.learn() 在稳定基线 3 的特定情节内结束?

我知道指定这total_timesteps=是一个需要参数,但我如何model.learn()在某些剧集中结束?原谅我,我还是新手stables_baselines3pytorch仍然不知道如何在代码中实现它。

我想在第 60 集结束这一集,而不是我的推出是:

不明白为什么只有1集?我想学习如何实施以将学习限制在指定的情节中。

0 投票
0 回答
21 浏览

python - 我想在稳定的基线中获得 csv 格式的情节奖励 3

我想在每一集之后检索数据,我已经阅读了您可以使用的文档,stable_baselines3.common.monitor.ResultsWriter但我不知道如何在我的代码中实现它。

还有一个稳定的基线论坛我也可以提出我的问题吗?

0 投票
0 回答
22 浏览

python - 看不到稳定的基线输出?

问候!

我是 stable-baselines3 的新手,但我看过很多关于它的实现和自定义环境制定的教程。

在使用 gym 和 stable-baselines3 SAC 算法开发我的模型后,我应用 (check_env) 函数来检查可能的错误,一切都很完美。但是,每当我运行代码时,我看到的唯一输出是:

使用 cpu 设备 将环境包装在 DummyVecEnv 中

并且训练会话将停止而没有任何输出或将模型保存到目录文件中。

请问有什么问题,我已经将详细设置为1。

最好的问候,密歇根

0 投票
0 回答
17 浏览

python - Tensorboard 要么显示不相关的结果,要么不启动

我想将 Tensorboard 与 StableBaselines 3 一起使用来显示强化学习的结果。我为此使用以下代码:

当我注释掉这一行时#tensorboard = TensorBoard(logdir),我可以通过tensorboard --logdir=logdir --host localhost --port 8088在 Spyder 的控制台中输入来启动 Tensorboard,然后在浏览器中输入“http://localhost:8088”来启动 Tesorboard。然而,Tensorboard 现在显示了一些与我的问题完全无关的东西(似乎是随机的)。它与我从未使用过的 PCA 有关。当没有退出该行时 tensorboard = TensorBoard(logdir),我可以运行代码,但是当我尝试通过 using 启动 Tensorboard 时tensorboard --logdir=logdir --host localhost --port 8088,我收到错误“SyntaxError:无效语法”。

知道问题是什么以及如何在 Tensorboard 中显示正确的结果吗?

0 投票
0 回答
15 浏览

python - 使用 PPO2 进行强化学习 - 为什么我在训练期间的 ep_rewmean(奖励)总是显示 nan?

我目前正在实施一个类似于在证券交易所买卖股票的强化学习问题。这是一个在线实现,我正在基于数据集及其定制环境创建步骤。现在,问题在于,在我的训练时间步长中,我观察到性能指标 ep_rewmean 和 eplenmean 之一的值始终为 nan,如下所示,

在此处输入图像描述

我的环境是

我的步骤功能是,

我该如何解决这个问题?任何帮助将不胜感激。提前致谢。

0 投票
2 回答
25 浏览

deep-learning - 如何使用已经玩过的比赛中的动作训练 PPO?

这个想法是在发布算法自行进化之前,先用一些先验知识来校准神经网络。为了使问题更简单,假设一个代理可以采取 10 个动作(离散空间)。我不想训练 PPO 算法自己找出最适合每个状态的动作,而是考虑在某些状态下执行某些动作来进行训练。我在健身房使用稳定基线。

我想过像这样创建一个动作包装器:

Ps:这个包装器只是一个概念证明,一直选择随机动作,但是模型并没有那样学习(我在非常简单的自定义环境中模拟了许多迭代,比如:“动作 2 总是导致奖励=1,而其他动作导致奖励=0)。显然,网络上的更新是考虑到模型选择的动作(模型总是自己预测动作),而奖励是根据定义的动作计算的我的包装。这种不匹配使学习变得不可能。