是否可以修改 OpenAI 环境?

Is it possible to modify OpenAI environments?

我想在 OpenAI 环境中修改一些东西。如果我们使用 Cartpole 示例,那么我们可以编辑 class init 函数中的内容,但是对于使用 Box2D 的环境,它似乎并不那么简单。

例如,考虑 BipedalWalker 环境。

在这种情况下,我该如何编辑 SPEED_HIPSPEED_KNEE 变量之类的东西?

您可以像修改手推车环境一样编辑双足助行器环境。

您只需修改constants for SPEED_HIP and SPEED_KNEE

如果您想更改这些常量在代理运动中的使用方式,您可能还想调整 step 方法。

更改代码后,当您实例化环境时,新实例将使用您所做的修改。

是的,您可以在健身房修改或创建新的环境。最简单(但不推荐)的方法是直接修改本地健身房安装中的常量,但这当然不是很好。

更好的方法是下载双足步行者环境文件 (from here) 并将其保存到文件中(比如 my_bipedal_walker.py

然后你修改my_bipedal_walker.py文件中的常量,然后将其导入到你的代码中即可(假设你将文件放在可导入的路径中,或者与其他代码文件相同的文件夹) :

import gym
from my_bipedal_walker import BipedalWalker
env = BipedalWalker()

然后您将 env 变量作为环境的一个实例,其中包含您为物理计算定义的常量,您可以将其与任何 RL 算法一起使用。

更好的方法是让您的自定义环境在 OpenAI 健身房注册表中可用,您可以按照说明进行操作 here