为什么 episode 在 200 个时间步之后完成(Gym 环境 MountainCar)?
Why is episode done after 200 time steps (Gym environment MountainCar)?
当在 Python 中使用来自 OpenAI-gym 的 MountainCar-v0 环境时, done 的值将在 200 个时间步后为真。这是为什么?由于未达到目标状态,因此不应完成该剧集。
import gym
env = gym.make('MountainCar-v0')
env.reset()
for _ in range(300):
env.render()
res = env.step(env.action_space.sample())
print(_)
print(res[2])
我想 运行 step 方法,直到汽车到达标志,然后打破 for 循环。这可能吗?类似于此:
n_episodes = 10
done = False
for i in range(n_episodes):
env.reset()
while done == False:
env.render()
state, reward, done, _ = env.step(env.action_space.sample())
当前最新版本的健身房在 200 步内强制停止环境,即使您不使用 env.monitor。
为避免这种情况,请使用
env = gym.make("MountainCar-v0").env
复制自https://github.com/openai/gym/wiki/FAQ:
环境旨在具有不同的难度级别,以衡量强化学习代理解决它们的能力。许多环境超出了当前的技术水平,所以不要指望解决所有这些问题。 (如果有,请申请)。
如果您想试验一个行为不同的环境变体,您应该给它一个新名称,这样您就不会错误地将您的代理 运行 与其他人的代理进行简单比较运行 就原来的环境。例如,MountainCar 环境之所以困难,部分原因是它有 200 个时间步的限制,之后它会重置到开头。成功的智能体必须在少于 200 个时间步内解决它。出于测试目的,您可以创建一个具有不同参数的新环境 MountainCarMyEasyVersion-v0,方法是调整在 gym/gym/envs/__init__.py
:
中找到的注册调用之一
gym.envs.register(
id='MountainCarMyEasyVersion-v0',
entry_point='gym.envs.classic_control:MountainCarEnv',
max_episode_steps=250, # MountainCar-v0 uses 200
reward_threshold=-110.0,
)
env = gym.make('MountainCarMyEasyVersion-v0')
因为只有您的代码知道这些环境名称,所以您无法将其上传到记分牌。
当在 Python 中使用来自 OpenAI-gym 的 MountainCar-v0 环境时, done 的值将在 200 个时间步后为真。这是为什么?由于未达到目标状态,因此不应完成该剧集。
import gym
env = gym.make('MountainCar-v0')
env.reset()
for _ in range(300):
env.render()
res = env.step(env.action_space.sample())
print(_)
print(res[2])
我想 运行 step 方法,直到汽车到达标志,然后打破 for 循环。这可能吗?类似于此:
n_episodes = 10
done = False
for i in range(n_episodes):
env.reset()
while done == False:
env.render()
state, reward, done, _ = env.step(env.action_space.sample())
当前最新版本的健身房在 200 步内强制停止环境,即使您不使用 env.monitor。
为避免这种情况,请使用
env = gym.make("MountainCar-v0").env
复制自https://github.com/openai/gym/wiki/FAQ:
环境旨在具有不同的难度级别,以衡量强化学习代理解决它们的能力。许多环境超出了当前的技术水平,所以不要指望解决所有这些问题。 (如果有,请申请)。
如果您想试验一个行为不同的环境变体,您应该给它一个新名称,这样您就不会错误地将您的代理 运行 与其他人的代理进行简单比较运行 就原来的环境。例如,MountainCar 环境之所以困难,部分原因是它有 200 个时间步的限制,之后它会重置到开头。成功的智能体必须在少于 200 个时间步内解决它。出于测试目的,您可以创建一个具有不同参数的新环境 MountainCarMyEasyVersion-v0,方法是调整在 gym/gym/envs/__init__.py
:
gym.envs.register(
id='MountainCarMyEasyVersion-v0',
entry_point='gym.envs.classic_control:MountainCarEnv',
max_episode_steps=250, # MountainCar-v0 uses 200
reward_threshold=-110.0,
)
env = gym.make('MountainCarMyEasyVersion-v0')
因为只有您的代码知道这些环境名称,所以您无法将其上传到记分牌。