OpenAI Gym:允许用户在播放DQN时输入动作

时间:2019-01-13 19:43:19

标签: python python-3.x pygame keyboard-events openai-gym

我已经在OpenAI Gym的CartPole游戏中训练了基本的DQN。现在,我想介绍外部事件,以了解网络在不独立运行的情况下的性能。

我如何做到让玩家可以在模拟过程中按下键盘上的LeftRight箭头键来覆盖神经网络将要采取的动作?这样一来,用户就可以观察到神经网络如何适应所需的扰动。

我正在使用的代码(source):

import gym
import numpy as np
from keras.models import load_model


# load and set up
model = load_model('saved_model.h5')
env = gym.make('CartPole-v1')  # https://gym.openai.com/envs/CartPole-v1/
env.reset()

print(model.summary())

for _ in range(10):
    print("TEST")
    totalreward = 0
    observation, reward, done, _ = env.step(env.action_space.sample())  # random action
    print(observation)
    while not done:
        # todo: use keyboard-arrow input to interact with agent
        env.render()  # show the animation (window)
        input_action = np.expand_dims(np.expand_dims(observation, 0), 0)  # hack for prediction dim
        predictions = model.predict(input_action)
        observation, reward, done, _ = env.step(np.argmax(predictions))
        totalreward += reward
    print("Total reward:", totalreward)
    env.reset()

env.close()  # close the animation (window)

我研究了PyGame和Gym的keyboard_agent.py,但一直遇到错误。我现在想知道是否有可能做我想做的事。

0 个答案:

没有答案