예제 #1
0
 def __init__(self, world, stage):
     from nes_py.wrappers import JoypadSpace
     import gym_super_mario_bros
     from gym_super_mario_bros.actions import COMPLEX_MOVEMENT
     env = gym_super_mario_bros.make(f"SuperMarioBros-{world}-{stage}-v0")
     env = JoypadSpace(env, COMPLEX_MOVEMENT)
     env = env_wrapper.SkipEnv(env, [])
     env = env_wrapper.WarpFrame(env, width=84, height=84)
     env = env_wrapper.MaxAndSkipEnv(env, 4)
     env = env_wrapper.FrameStack(env, 4)
     self._env = env
예제 #2
0
    def _thunk():
        env = gym.make(env_id)
        env = env_wrapper.NoopResetEnv(env, noop_max=30)
        env = env_wrapper.MaxAndSkipEnv(env, skip=4)
        env.seed(rand_seed + rank)
        env = env_wrapper.EpisodicLifeEnv(env)

        if "FIRE" in env.unwrapped.get_action_meanings():
            env = env_wrapper.FireResetEnv(env)

        env = env_wrapper.WarpFrame(env)
        env = env_wrapper.ClipRewardEnv(env)

        return env
예제 #3
0
#----------------------------
n_stack = 4
env_id = args.env
save_dir = "./save_" + env_id

#Create multiple environments
#----------------------------
env = gym.make(env_id)
env = env_wrapper.NoopResetEnv(env, noop_max=30)
env = env_wrapper.MaxAndSkipEnv(env, skip=4)
env = env_wrapper.EpisodicLifeEnv(env)

if "FIRE" in env.unwrapped.get_action_meanings():
    env = env_wrapper.FireResetEnv(env)

env = env_wrapper.WarpFrame(env)
env = env_wrapper.FrameStack(env, n_stack)

a_dim = env.action_space.n
img_height, img_width, c_dim = env.observation_space.shape

#Create the model
#----------------------------
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
policy = PolicyModel(sess, img_height, img_width, c_dim, a_dim)

#Start training
#----------------------------
sess.run(tf.global_variables_initializer())