Pybrain强化学习;状态维度
Pybrain reinforcement learning; dimension of state
我正在开展一个项目,使用 Pybrain 包将强化学习与交通灯模拟结合起来。我已经阅读了教程并实现了我自己的 Environment
和 Task
的子类。我使用 ActionValueNetwork
作为控制器,因为我希望我的状态是一个具有连续值的向量,这样它可以包含有关例如每条车道上等待的汽车数量、每条车道的总等待时间等信息。
我将 ActionValueNetwork
的输入维度设置为状态向量的维度,这表明可以使用向量作为状态变量。当我使用 Q-learner 或 SARSA learner 时,代码一开始运行良好,但一旦调用方法 learn()
,我就会收到一条错误消息。此函数包含行
state = int(state)
错误信息是
TypeError: only length-1 arrays can be converted to Python scalars
这表明只能使用标量形状状态。
pybrain 强化学习环境是否支持向量形状态?如果是这样,我如何修改我的代码,使其能够与他们的 Q-learning 或其他方法的实现一起工作?
同时我发现了我的问题。我正在使用 Q()
学习器,但应该使用实现 neural-fitted Q-learning algorithm 的 NFQ()
学习器。现在可以了。
我正在开展一个项目,使用 Pybrain 包将强化学习与交通灯模拟结合起来。我已经阅读了教程并实现了我自己的 Environment
和 Task
的子类。我使用 ActionValueNetwork
作为控制器,因为我希望我的状态是一个具有连续值的向量,这样它可以包含有关例如每条车道上等待的汽车数量、每条车道的总等待时间等信息。
我将 ActionValueNetwork
的输入维度设置为状态向量的维度,这表明可以使用向量作为状态变量。当我使用 Q-learner 或 SARSA learner 时,代码一开始运行良好,但一旦调用方法 learn()
,我就会收到一条错误消息。此函数包含行
state = int(state)
错误信息是
TypeError: only length-1 arrays can be converted to Python scalars
这表明只能使用标量形状状态。
pybrain 强化学习环境是否支持向量形状态?如果是这样,我如何修改我的代码,使其能够与他们的 Q-learning 或其他方法的实现一起工作?
同时我发现了我的问题。我正在使用 Q()
学习器,但应该使用实现 neural-fitted Q-learning algorithm 的 NFQ()
学习器。现在可以了。