python 使用Stable-baselines 3和Gymnasium动作空间误差

c9x0cxw0  于 2023-06-28  发布在  Python
关注(0)|答案(1)|浏览(510)

我试图使用我的gym环境与稳定的基线,但当我不得不更新stable-baselines3版本到2.0.0a5我的环境不工作了,并在几个文档和论坛线程后,我看到我不得不开始使用gymnasium而不是gym使其工作。现在我的代码在我的MacOs和Google Colab中运行良好。尽管如此,我尝试在Windows上使用与Google Colab相同的需求文件创建虚拟环境(代码确实可以工作),但在Windows上我得到:

AssertionError: The algorithm only supports (<class 'gym.spaces.box.Box'>, <class 'gym.spaces.discrete.Discrete'>, <class 'gym.spaces.multi_discrete.MultiDiscrete'>, <class 'gym.spaces.multi_binary.MultiBinary'>) as action spaces but Discrete(5) was provided

我在两个环境中拥有的gymgymnasiumstable-baselines3版本是相同的,所以我不明白为什么会发生这种情况。我的版本如下:

  • gym-->版本:0.25.2
  • gymnasium-->版本:0.28.1
  • stable-baselines3-->版本:2.0.0a5
qco9c6ql

qco9c6ql1#

Stable Baselines 3版本>2.0.0使用Gymnasium。任何低于2.0.0的版本都使用Gym。这个错误提示您应该使用gym。将您的Stable Baselines 3降级到<2.0.0的版本,并使用gym而不是Gymnasium。应该可以了
我之前问的This question与这个问题有关,即澄清了在谈论是否使用gymGymnasium时存在一些不一致之处。Gymnasium是最好的,因为它被维护,但不是所有的包都兼容。另一方面,gym被许多软件包支持,但不是最新的。权衡是你的,但也基于你需要处理的东西。
然而,您的错误建议您应该使用gym,因此降级Stable Baselines 3
(As我更喜欢gym 0.26,但这完全取决于你。这也与对代理-环境循环所做的更改有关,其中渲染在循环的上述版本部分中)

相关问题