def play_game_with_visualization(network_name='cluster_net', points_name='large_visualization'): game = toy_mr.ToyMR('../mr_maps/four_rooms.txt') network.saver.restore(network.sess, './'+network_name+'.ckpt') scatter_points = np.load('./'+points_name+'.npy') f, ax = plt.subplots() while True: if game.is_current_state_terminal(): game.reset_environment() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP: action = toy_mr.NORTH elif event.key == pygame.K_DOWN: action = toy_mr.SOUTH elif event.key == pygame.K_RIGHT: action = toy_mr.EAST elif event.key == pygame.K_LEFT: action = toy_mr.WEST else: action = -1 if action != -1: game.perform_action(action) state = game.get_current_state()[0] plt.pause(1) ax.cla() ax.scatter(scatter_points[:, 0], scatter_points[:, 1], color='blue') [e1] = network.sess.run([network.e1], feed_dict={network.inp_state1: [state]}) ax.scatter(e1[:, 0], e1[:, 1], color='red') plt.draw()
def setup_toy_mr_env(): env = toy_mr.ToyMR('../mr_maps/full_mr_map.txt', max_lives=5, repeat_action_probability=0.25, use_gui=use_gui) num_actions = len(env.get_actions_for_state(None)) return env, num_actions
def setup_four_rooms_env(): env = toy_mr.ToyMR('../mr_maps/four_rooms.txt', max_num_actions=10000) num_actions = len(env.get_actions_for_state(None)) return env, num_actions
def setup_toy_mr_env(): env = toy_mr.ToyMR('../mr_maps/full_mr_map.txt') num_actions = len(env.get_actions_for_state(None)) return env, num_actions
import numpy as np import pygame import tqdm import toy_mr import toy_mr_encoder import pc_cts map_file = '../mr_maps/full_mr_map.txt' game = toy_mr.ToyMR(map_file) print('Collecting data...') states = [] for i in range(0, 10000): if game.is_current_state_terminal(): game.reset_environment() states.append(toy_mr_encoder.encode_toy_mr_state(game)) action = np.random.choice([0, 1, 2, 3]) game.perform_action(action) print('Training...') cts = pc_cts.LocationDependentDensityModel((11, 11), lambda x, y: x, pc_cts.L_shaped_context) for i in tqdm.trange(1000): ii = np.random.randint(0, len(states)) cts.update(states[ii]) print('Ready!') game.reset_environment() running = True while running:
def setup_toy_mr_env(): env = toy_mr.ToyMR('./mr_maps/full_mr_map.txt', abstraction_file='./mr_maps/full_mr_map_abs.txt', use_gui=True) num_actions = len(env.get_actions_for_state(None)) return env, num_actions