Ejemplo n.º 1
0
def create_mupen_env(env_id):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = MupenRescale(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 2
0
def create_atari_env(env_id):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 3
0
def create_atari_env(env_id):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = AtariRescale(env)
    env = NormalizedEnv(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 4
0
def wrap_generic_env(env, atari=False):
    env = Vectorize(env)
    if atari:
        env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 5
0
def create_flash_env(env_id, client_id, remotes, **_):
    env = gym.make(env_id)
    env = Vision(env)
    env = BlockingReset(env)

    reg = universe.runtime_spec('flashgames').server_registry
    height = reg[env_id]["height"]
    width = reg[env_id]["width"]
    env = CropScreen(env, height, width, 84, 18)
    env = FlashRescale(env)

    keys = ['left', 'right', 'up', 'down', 'x']
    if env_id == 'flashgames.NeonRace-v0':
        # Better key space for this game.
        keys = ['left', 'right', 'up', 'left up', 'right up', 'down', 'up x']
    print('Create Flash Game [{}]: keys={}'.format(env_id, keys))

    env = DiscreteToFixedKeysVNCActions(env, keys)
    env = Unvectorize(env)
    env.configure(fps=5.0,
                  remotes=remotes,
                  start_timeout=15 * 60,
                  client_id=client_id,
                  vnc_driver='go',
                  vnc_kwargs={
                      'encoding': 'tight',
                      'compress_level': 0,
                      'fine_quality_level': 50,
                      'subsample_level': 3
                  })
    return env
Ejemplo n.º 6
0
def create_vncatari_env(env_id, client_id, remotes, **_):
    """Create an Atari (rescaled) environment by passing environment id.

    Parameters
    ----------
    env_id : str
        environment id to be registered in Gym
    client_id : str
        Client ID
    remotes : str
        BLANK
    kwargs : dict
        BLANK
    """
    env = gym.make(env_id)
    env = Vision(env)
    env = Logger(env)
    env = BlockingReset(env)
    env = GymCoreAction(env)
    env = AtariRescale42x42(env)
    env = EpisodeID(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)

    logger.info('Connecting to remotes: %s', remotes)
    fps = env.metadata['video.frames_per_second']
    env.configure(remotes=remotes,
                  start_timeout=15 * 60,
                  fps=fps,
                  client_id=client_id)
    return env
Ejemplo n.º 7
0
def create_pixels_env(env_id, **kwargs):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = create_adversarial_env(env, **kwargs)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 8
0
def create_gym_environment(env_id, **kwargs):
    # spec = gym.spec(env_id)
    # get_gym_submodules_and_environments()
    # IPython.embed()
    # env_name, env_version = env_id.split('-')

    # envall = gym.envs.registry.all()

    # atari_games = atari_py.list_games()

    env = gym.make(env_id)
    if env_id in [
            'CartPole-v0', 'CartPole-v1', 'Acrobot-v1', 'MountainCar-v0',
            'Pendulum-v0'
    ]:
        pass
    elif env_id in ['BipedalWalker-v2', 'LunarLander-v2']:
        pass
    elif env_id in ['Humanoid-v2']:
        pass
        # env = NormalizedEnv()
    else:
        env = Vectorize(env)
        env = AtariPreProcessorMnih2015(env)
        env = Unvectorize(env)
        # env = Vectorize(env)
        # env = AtariRescale(env, square_size=kwargs.get('square_size', 42))
        # env = Unvectorize(env)
    return env
Ejemplo n.º 9
0
def create_flash_env(env_id, client_id, remotes, **_):
    env = gym.make(env_id)
    env = Vision(env)
    env = Logger(env)
    env = BlockingReset(env)

    reg = universe.runtime_spec('flashgames').server_registry
    height = reg[env_id]["height"]
    width = reg[env_id]["width"]
    env = CropScreen(env, height, width, 84, 18)
    env = FlashRescale(env)

    keys = ['left', 'right', 'up', 'down', 'x']
    env = DiscreteToFixedKeysVNCActions(env, keys)
    env = EpisodeID(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    env.configure(fps=5.0,
                  remotes=remotes,
                  start_timeout=15 * 60,
                  client_id=client_id,
                  vnc_driver='go',
                  vnc_kwargs={
                      'encoding': 'tight',
                      'compress_level': 0,
                      'fine_quality_level': 50,
                      'subsample_level': 3
                  })
    return env
Ejemplo n.º 10
0
def create_atari_env(env_id,
                     monitor_logdir=None,
                     wrappers='deepmind',
                     policy='rnn',
                     num_buffer_frames=4,
                     max_repeats=0,
                     **_):
    env = gym.make(env_id)

    # start monitor to record statistics and videos
    if monitor_logdir:
        env = Monitor(env, monitor_logdir, video_callable=False, resume=True)

    if wrappers == 'deepmind':
        from common.atari_wrappers import wrap_deepmind
        env = wrap_deepmind(env)
    elif wrappers == 'universe':
        from universe.wrappers import Vectorize, Unvectorize
        from common.universe_wrappers import AtariRescale42x42, DiagnosticsInfo
        env = Vectorize(env)
        env = AtariRescale42x42(env)
        env = DiagnosticsInfo(env)
        env = Unvectorize(env)

    if policy == 'cnn' and num_buffer_frames > 0:
        env = ObservationBuffer(env, num_buffer_frames)

    if max_repeats > 0:
        env = FrameskipWrapper(env, max_repeats)

    return env
Ejemplo n.º 11
0
    def make_env(self):
        """spawn a new environment instance"""
        print(self.env_id)
        env = gym.make(self.env_id)
        env = Vision(env)  # observation is an image
        env = BlockingReset(
            env)  # when env.reset will freeze until env is ready

        #convert from env.step(('KeyEvent', 'ArrowUp', True)) to env.step(2)
        env = DiscreteToFixedKeysVNCActions(env, list(self.keys))
        env = Unvectorize(
            env)  #now it's actually a single env instead of a batch

        # crop, grayscale and rescale to 64x64
        env = PreprocessImage(env,
                              64,
                              64,
                              grayscale=True,
                              crop=lambda img: img[84:84 + 480, 18:18 + 640])

        env.configure(fps=5.0,
                      remotes=1,
                      start_timeout=15 * 60,
                      client_id=self.client_id,
                      vnc_driver='go',
                      vnc_kwargs={
                          'encoding': 'tight',
                          'compress_level': 0,
                          'fine_quality_level': 50,
                          'subsample_level': 3
                      })

        return env
Ejemplo n.º 12
0
def create_vizdoom_env(env_id):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = VizdoomRescale84x84x3(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 13
0
def create_atari_env_deepmind(env_id, mode, **kwargs):
    env = gym.make(env_id)
    env = wrap_deepmind(env, mode, **kwargs)
    env = Vectorize(env)
    env = DiagnosticsInfo(env, mode)
    env = Unvectorize(env)
    return env
Ejemplo n.º 14
0
def create_doom(env_id,
                client_id,
                envWrap=True,
                record=False,
                outdir=None,
                noLifeReward=False,
                acRepeat=0,
                **_):
    from ppaquette_gym_doom import wrappers
    if 'labyrinth' in env_id.lower():
        if 'single' in env_id.lower():
            env_id = 'ppaquette/LabyrinthSingle-v0'
        elif 'fix' in env_id.lower():
            env_id = 'ppaquette/LabyrinthManyFixed-v0'
        else:
            env_id = 'ppaquette/LabyrinthMany-v0'
    elif 'very' in env_id.lower():
        env_id = 'ppaquette/DoomMyWayHomeFixed15-v0'
    elif 'sparse' in env_id.lower():
        env_id = 'ppaquette/DoomMyWayHomeFixed-v0'
    elif 'fix' in env_id.lower():
        if '1' in env_id or '2' in env_id:
            env_id = 'ppaquette/DoomMyWayHomeFixed' + str(env_id[-2:]) + '-v0'
        elif 'new' in env_id.lower():
            env_id = 'ppaquette/DoomMyWayHomeFixedNew-v0'
        else:
            env_id = 'ppaquette/DoomMyWayHomeFixed-v0'
    else:
        env_id = 'ppaquette/DoomMyWayHome-v0'

    # VizDoom workaround: Simultaneously launching multiple vizdoom processes
    # makes program stuck, so use the global lock in multi-threading/processing
    client_id = int(client_id)
    time.sleep(client_id * 10)
    env = gym.make(env_id)
    modewrapper = wrappers.SetPlayingMode('algo')
    obwrapper = wrappers.SetResolution('160x120')
    acwrapper = wrappers.ToDiscrete('minimal')
    env = modewrapper(obwrapper(acwrapper(env)))
    # env = env_wrapper.MakeEnvDynamic(env)  # to add stochasticity

    if record and outdir is not None:
        env = gym.wrappers.Monitor(env, outdir, force=True)

    if envWrap:
        fshape = (42, 42)
        frame_skip = acRepeat if acRepeat > 0 else 4
        env.seed(None)
        if noLifeReward:
            env = env_wrapper.NoNegativeRewardEnv(env)
        env = env_wrapper.BufferedObsEnv(env, skip=frame_skip, shape=fshape)
        env = env_wrapper.SkipEnv(env, skip=frame_skip)
    elif noLifeReward:
        env = env_wrapper.NoNegativeRewardEnv(env)

    env = Vectorize(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 15
0
def create_atari_env(env_id):
    env = gym.make(env_id)
    if len(env.observation_space.shape) > 1:
        env = Vectorize(env)
        env = AtariRescale42x42(env)
        env = NormalizedEnv(env)
        env = Unvectorize(env)
    return env
Ejemplo n.º 16
0
def create_car_racing_env():
    env = gym.make('CarRacing-v0')
    env = Vectorize(env)
    env = CarRacingRescale32x32(env)
    env = NormalizedEnv(env)
    env = CarRacingDiscreteActions(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 17
0
def create_atari_env(env_name, evaluate=False, run_name=None):
    env = gym.make(env_name)
    env = Vectorize(env)
    env = Bitwise(env)
    env = Unvectorize(env)
    if evaluate:
        env = wrappers.Monitor(env, 'monitor/' + run_name)
    return env
Ejemplo n.º 18
0
def atari_env(env_id, env_conf):
    env = gym.make(env_id)
    if len(env.observation_space.shape) > 1:
        env = Vectorize(env)
        env = AtariRescale(env, env_conf)
        env = NormalizedEnv(env)
        env = Unvectorize(env)
    return env
Ejemplo n.º 19
0
def create_atari_env(env_id, **kwargs):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = AtariRescale84x84(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    env.atari = True
    return env
Ejemplo n.º 20
0
def create_atari_env_simple(env_id, mode, **kwargs):
    "Legacy code from starter-agent"
    env = gym.make(env_id)
    env = Vectorize(env)
    env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env, mode)
    env = Unvectorize(env)
    return env
Ejemplo n.º 21
0
def create_generic_env(env_id, atari=False):
    env = gym.make(env_id)
    env = Vectorize(env)
    if atari:
        env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 22
0
def create_atari_env(env_id, seed=None):
    env = gym.make(env_id)
    if seed is not None:
        env.seed(seed)
    env = Vectorize(env)
    env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 23
0
def create_atari_env(env_id, record=False, outdir=None, **_):
    env = gym.make(env_id)
    if record and outdir is not None:
        env = gym.wrappers.Monitor(env, outdir, force=True)
    env = Vectorize(env)
    env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 24
0
def create_atari_env(env_id):
    env = gym.make(env_id)
    env = Vectorize(env)
    env = AtariRescale42x42(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    if config.overwirite_with_grid:
        env.action_space.n = 4
    return env
Ejemplo n.º 25
0
def create_atari_env(env_id):
    # essential in my experiments
    env = gym.make(env_id)
    env = Vectorize(env)
    #env = AtariRescale42x42(env)
    env = AtariRescale84x84(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 26
0
def create_atari_env(env_id):
    env = gym.make(env_id)
    if len(env.observation_space.shape) > 1:
        print('Preprocessing env')
        env = Vectorize(env)
        env = AtariRescale42x42(env)
        env = NormalizedEnv(env)
        env = Unvectorize(env)
    else:
        print('No preprocessing because env is too small')
    return env
Ejemplo n.º 27
0
def create_unrealcv_env(env_full_name):
    env = gym.make(env_full_name)
    env = Vectorize(env)
    env = UnrealCVRescale84x84x3(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    # must be discrete action
    # assert env.action_type == 'discrete'
    outdir = '/tmp/random-agent-results'
    env = wrappers.Monitor(env, directory=outdir, force=True)
    return env
Ejemplo n.º 28
0
def create_atari_env(env_id, seed):
    env = gym.make(env_id)
    env.seed(seed)

    # Process the environment
    env = Vectorize(env)
    env = Rescale(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)

    return env
Ejemplo n.º 29
0
def create_atari_env(env_id, frame_size=84):
    env = gym.make(env_id)
    env = Vectorize(env)
    if frame_size == 42:
        env = AtariRescale42x42(env)
    else:
        # Preprocess frames followed from DQN 2013.
        env = AtariRescale84x84(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)
    return env
Ejemplo n.º 30
0
def create_mario(env_id,
                 client_id,
                 envWrap=True,
                 record=False,
                 outdir=None,
                 noLifeReward=False,
                 acRepeat=0,
                 **_):
    import ppaquette_gym_super_mario
    from ppaquette_gym_super_mario import wrappers
    if '-v' in env_id.lower():
        env_id = 'ppaquette/' + env_id
    else:
        env_id = 'ppaquette/SuperMarioBros-1-3-v0'  # shape: (224,256,3)=(h,w,c)
        #env_id = 'ppaquette/SuperMarioBros-4-2-Tiles-v0'

    # Mario workaround: Simultaneously launching multiple vizdoom processes makes program stuck,
    # so use the global lock in multi-threading/multi-processing
    # see: https://github.com/ppaquette/gym-super-mario/tree/master/ppaquette_gym_super_mario
    client_id = int(client_id)
    time.sleep(client_id * 50)
    env = gym.make(env_id)
    modewrapper = wrappers.SetPlayingMode('algo')
    acwrapper = wrappers.ToDiscrete()
    env = modewrapper(acwrapper(env))
    env = env_wrapper.MarioEnv(env, tilesEnv=False)
    #env = env_wrapper.MarioEnv(env, tilesEnv=True)
    if record and outdir is not None:
        env = gym.wrappers.Monitor(env, outdir, force=True)

    if envWrap:
        frame_skip = acRepeat if acRepeat > 0 else 4
        frame_skip = 6 if "1-1" in env_id else frame_skip
        fshape = (42, 42)
        env.seed(None)
        if noLifeReward:
            env = env_wrapper.NoNegativeRewardEnv(env)
        env = env_wrapper.BufferedObsEnv(env,
                                         skip=frame_skip,
                                         shape=fshape,
                                         maxFrames=False)
        if frame_skip > 1:
            env = env_wrapper.SkipEnv(env, skip=frame_skip)
    elif noLifeReward:
        env = env_wrapper.NoNegativeRewardEnv(env)

    env = Vectorize(env)
    env = DiagnosticsInfo(env)
    env = Unvectorize(env)

    # env.close() # TODO: think about where to put env.close !
    return env