OpenAI Gym: позволяет пользователю вводить действия во время игры DQN - PullRequest
0 голосов
/ 13 января 2019

Я обучил основному DQN в игре OpenAI Gym CartPole. Теперь я хочу представить внешние события, чтобы увидеть, насколько хорошо работает сеть, не оставляя ее в покое.

Как я могу сделать так, чтобы игрок мог нажимать клавиши со стрелками Left или Right на своей клавиатуре во время симуляции, чтобы отменить действие, которое предприняла бы нейронная сеть? Таким образом, пользователь сможет наблюдать, насколько хорошо нейронная сеть приспосабливается к желаемому возмущению.

Код, который я использую ( источник ):

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's keyboard_agent.py, но продолжаю сталкиваться с ошибками. Теперь мне интересно, можно ли делать то, что я хочу.

...