我找不到关于OpenAI Gym环境“ CartPole-v0”和“ CartPole-v1”之间差异的确切描述。

两种环境都有专用的专用官方网站(请参见12),尽管我只能在Gym github存储库中找到一个没有版本标识的代码(请参见3)。我还检查了通过调试器准确加载了哪些文件,尽管它们似乎都加载了相同的上述文件。唯一的区别似乎在于它们在内部分配的max_episode_stepsreward_threshold,如下所示可以访问。 CartPole-v0的值为200 / 195.0,而CartPole-v1的值为500 / 475.0。乍一看,其余的似乎相同。

import gym

env = gym.make("CartPole-v1")
print(self.env.spec.max_episode_steps)
print(self.env.spec.reward_threshold)


因此,如果有人可以为我描述确切的差异或将我转发到正在这样做的网站,我将不胜感激。非常感谢你!

最佳答案

您可能已经注意到,在OpenAI Gym中,有时存在相同环境的不同版本。不同版本通常共享主要环境逻辑,但是某些参数配置为不同的值。这些版本使用称为the registry的功能进行管理。

对于CartPole环境,可以在this source code中找到两个注册版本。如第50至65行所示,存在两个CartPole版本,标记为v0和v1,其区别在于参数max_episode_stepsreward_threshold

register(
    id='CartPole-v0',
    entry_point='gym.envs.classic_control:CartPoleEnv',
    max_episode_steps=200,
    reward_threshold=195.0,
)

register(
    id='CartPole-v1',
    entry_point='gym.envs.classic_control:CartPoleEnv',
    max_episode_steps=500,
    reward_threshold=475.0,
)


这两个参数都证实了您对CartPole-v0和CartPole-v1之间差异的猜测。

关于machine-learning - OpenAI Gym环境“CartPole-v0”和“CartPole-v1”之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56904270/

10-11 15:22