我找不到关于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中,有时存在相同环境的不同版本。不同版本通常共享主要环境逻辑,但是某些参数配置为不同的值。这些版本使用称为the registry的功能进行管理。
对于CartPole环境,可以在this source code中找到两个注册版本。如第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之间差异的猜测。
关于machine-learning - OpenAI Gym环境“CartPole-v0”和“CartPole-v1”之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56904270/