Ejemplo n.º 1
0
def main():
    args, params = parse_args_tmax(AgentTMAX.Params)
    env_id = args.env

    global key_to_action
    if 'dmlab' in env_id:
        from utils.envs.dmlab import play_dmlab
        key_to_action = play_dmlab.key_to_action
    elif 'atari' in env_id:
        key_to_action = atari_utils.key_to_action
    elif 'doom' in env_id:
        key_to_action = doom_utils.key_to_action
    else:
        raise Exception('Unknown env')

    # start keypress listener (to pause/resume execution or exit)
    def start_listener():
        with Listener(on_press=on_press, on_release=on_release) as listener:
            listener.join()

    listener_thread = Thread(target=start_listener)
    listener_thread.start()

    status = build_graph(params, args.env)

    if not terminate:
        log.debug('Press ESC to exit...')
    listener_thread.join()

    return status
Ejemplo n.º 2
0
def main():
    args, params = parse_args_tmax(AgentTMAX.Params)
    env_id = args.env

    global key_to_action
    if 'dmlab' in env_id:
        from utils.envs.dmlab import play_dmlab
        key_to_action = play_dmlab.key_to_action
    elif 'atari' in env_id:
        key_to_action = atari_utils.key_to_action
    elif 'doom' in env_id:
        key_to_action = doom_utils.key_to_action
    else:
        raise Exception('Unknown env')

    try:
        show_map = args.show_automap
    except AttributeError:
        show_map = False

    # start keypress listener (to pause/resume execution or exit)
    def start_listener():
        with Listener(on_press=on_press, on_release=on_release) as listener:
            listener.join()

    listener_thread = Thread(target=start_listener)
    listener_thread.start()

    status = enjoy(params, args.env, show_automap=show_map)

    log.debug('Press ESC to exit...')
    listener_thread.join()

    return status
Ejemplo n.º 3
0
    def tmax_train_run(self, env_name=None):
        test_dir_name = self.__class__.__name__

        args, params = parse_args_tmax(AgentTMAX.Params, argv=[])
        if env_name is not None:
            args.env = env_name

        params.experiments_root = test_dir_name
        params.num_envs = 16
        params.train_for_steps = 60
        params.initial_save_rate = 20
        params.batch_size = 32
        params.ppo_epochs = 2
        params.distance_bootstrap = 10
        params.stage_duration = 100
        params.distance_encoder = 'resnet'
        params.locomotion_encoder = 'resnet'

        tmax_train_dir = join(experiments_dir(), params.experiments_root)
        ensure_dir_exists(tmax_train_dir)
        shutil.rmtree(tmax_train_dir)

        status = train(params, args.env)
        self.assertEqual(status, TrainStatus.SUCCESS)

        root_dir = params.experiment_dir()
        self.assertTrue(os.path.isdir(root_dir))

        enjoy(params, args.env, max_num_episodes=1, max_num_frames=50)
        shutil.rmtree(tmax_train_dir)

        self.assertFalse(os.path.isdir(root_dir))
Ejemplo n.º 4
0
    def test_locomotion(self):
        g = tf.Graph()

        env = make_doom_env(doom_env_by_name(TEST_ENV_NAME))
        args, params = parse_args_tmax(AgentTMAX.Params, argv=[])

        with g.as_default():
            locomotion_net = LocomotionNetwork(env, params)

        obs = env.reset()

        with tf.Session(graph=g) as sess:
            sess.run(tf.global_variables_initializer())

            action = locomotion_net.navigate(sess, [obs], [obs], [obs])[0]
            self.assertGreaterEqual(action, 0)
            self.assertLess(action, env.action_space.n)

        env.close()

        g.finalize()
def main():
    args, params = parse_args_tmax(AgentTMAX.Params)
    status = train_distance(params, args.env)
    return status
def main():
    args, params = parse_args_tmax(AgentTMAX.Params)
    status = train_locomotion(params, args.env)
    return status
Ejemplo n.º 7
0
def main():
    """Script entry point."""
    args, params = parse_args_tmax(AgentTMAX.Params)
    return train(params, args.env)
Ejemplo n.º 8
0
def main():
    args, params = parse_args_tmax(AgentTMAX.Params)
    status = trajectory_to_map(params, args.env)
    return status