gpt4 book ai didi

python-3.x - 如何设置 openai-gym 环境以特定状态而不是 `env.reset()` 开始?

转载 作者:行者123 更新时间:2023-12-03 16:50:43 25 4
gpt4 key购买 nike

今天在openai-gym环境下尝试实现一个rl-agent的时候,发现一个问题,好像所有的agent都是从最初始的状态开始训练的:env.reset() , IE。

import gym

env = gym.make("CartPole-v0")
initial_observation = env.reset() # <-- Note
done = False

while not done:
action = env.action_space.sample()
next_observation, reward, done, info = env.step(action)

env.close() # close the environment

因此,代理可以沿着路线 env.reset() -(action)-> next_state -(action)-> next_state -(action)-> ... -(action)-> done 表现是很自然的。 ,这是一集。但是,代理如何从特定状态(例如中间状态)开始,然后从该状态开始执行操作?例如,我从重放缓冲区中采样了一个体验,即 (s, a, r, ns, done) ,如果我想直接从状态开始训练agent怎么办 ns ,并使用 Q-Network 获取操作,然后为 n-step向前迈进。类似的东西:

import gym

env = gym.make("CartPole-v0")
initial_observation = ns # not env.reset()
done = False

while not done:
action = DQN(ns)
next_observation, reward, done, info = env.step(action)
# n-step later or done is true, break

env.close() # close the environment

但即使我设置了一个变量 initial_observationns ,我觉得代理还是 env根本不会意识到。我怎么知道 gym.env我想将初始观察设置为 ns并让代理知道特定的开始状态,直接从该特定观察中继续训练(从该特定环境开始)?

最佳答案

AFAIK,大多数 OpenAI 健身房环境的当前实现(包括您在问题中使用的 CartPole-v0)没有实现任何机制来在给定状态下初始化环境。

但是,修改CartPoleEnv.reset() 应该不会太复杂。方法以接受作为初始状态的可选参数。

关于python-3.x - 如何设置 openai-gym 环境以特定状态而不是 `env.reset()` 开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com