我已经在OpenAI Gym的CartPole
游戏中训练了基本的DQN。现在,我想介绍外部事件,以了解网络在不独立运行的情况下的性能。
我如何做到让玩家可以在模拟过程中按下键盘上的Left
或Right
箭头键来覆盖神经网络将要采取的动作?这样一来,用户就可以观察到神经网络如何适应所需的扰动。
我正在使用的代码(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
,但一直遇到错误。我现在想知道是否有可能做我想做的事。