相关疑难解决方法(0)

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

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

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
Run Code Online (Sandbox Code Playgroud)

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

import gym

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

while not done:
    action = …
Run Code Online (Sandbox Code Playgroud)

reinforcement-learning python-3.x openai-gym

5
推荐指数
1
解决办法
5683
查看次数