我找不到OpenAI Gym环境“ CartPole-v0”和“ CartPole-v1”之间差异的确切描述。
两种环境都有专用于它们的单独的官方网站(请参见1和2),尽管我只能在Gym github存储库中找到一个没有版本识别的代码(请参阅3)。我还检查了通过调试器准确加载了哪些文件,尽管它们似乎都加载了相同的上述文件。唯一的区别似乎是它们在内部分配的max_episode_steps
和reward_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中,有时会有相同版本的不同版本。不同版本通常共享主要环境逻辑,但是某些参数配置为不同的值。这些版本使用称为注册表的功能进行管理。
对于CartPole环境,您可以在此源代码中找到两个注册版本。如您在第50到65行中看到的,存在两个CartPole版本,标记为v0和v1,它们的区别在于参数max_episode_steps
和reward_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之间差异的猜测。