我正在尝试针对keras-rl
的环境来训练一些OpenAI-Gym
代理。问题在于,每次环境重置以返回有效观察值时,该环境都需要“无”作为第一个动作。我该如何实施?
该库以环境作为参数调用agent.fit()
,如下所示:
dqn.fit(env)
我宁愿不更改keras-rl代理的代码,也不更改环境的代码。
一种解决方案可能是找出如何用样本而不是环境来训练keras-rl代理,并使该“代码”(仅是近似的)起作用:
for _ in range(num):
env.reset()
observation, _, done, _ = env.step(None)
reward = None
done = None
while not done:
old_observation = observation
action = agent.act(observation, reward, done)
observation, reward, done, info = env.step(action)
agent.train(old_observation, action, reward, done)