Пример #1
0
def make_env():
    env = gym_super_mario_bros.make('SuperMarioBros-v3')
    env = JoypadSpace(env, RIGHT_ONLY)
    env = CustomRewardAndDoneEnv(env)  # 報酬とエピソード完了の変更
    env = StochasticFrameSkip(env, n=4, stickprob=0.25)  # スティッキーフレームスキップ
    env = Downsample(env, 2)  # ダウンサンプリング
    env = FrameStack(env, 4)  # フレームスタック
    env = ScaledFloatFrame(env)  # 状態の正規化
    env = Monitor(env, log_dir, allow_early_resets=True)
    env.seed(0)  # シードの指定
    set_global_seeds(0)
    env = DummyVecEnv([lambda: env])  # ベクトル環境の生成

    print('行動空間: ', env.action_space)
    print('状態空間: ', env.observation_space)

    return env
Пример #2
0
import gym
import retro
from stable_baselines.common.vec_env import DummyVecEnv
from stable_baselines import DQN
from stable_baselines.common import set_global_seeds
from stable_baselines.bench import Monitor
from baselines.common.retro_wrappers import *
from util import log_dir, callback, AirstrikerDiscretizer, CustomRewardAndDoneEnv
import time

# 環境の生成
env = retro.make(game='Airstriker-Genesis', state='Level1')
env = AirstrikerDiscretizer(env)  # 行動空間を離散空間に変換
env = CustomRewardAndDoneEnv(env)  # 報酬とエピソード完了の変更
env = StochasticFrameSkip(env, n=4, stickprob=0.25)  # スティッキーフレームスキップ
env = Downsample(env, 2)  # ダウンサンプリング
env = Rgb2gray(env)  # グレースケール
env = FrameStack(env, 4)  # フレームスタック
env = ScaledFloatFrame(env)  # 状態の正規化
env = Monitor(env, log_dir / demo, allow_early_resets=True)
env = DummyVecEnv([lambda: env])

# モデルの読み込み (1)
model = DQN.load('airstriker_model')

# モデルのテスト
state = env.reset()
total_reward = 0
for i in range(5000):
    # 環境の描画
    env.render()
Пример #3
0
import retro
import time
import os
from stable_baselines.common.vec_env import DummyVecEnv
from stable_baselines import PPO2
from stable_baselines.common import set_global_seeds
from stable_baselines.bench import Monitor
from baselines.common.retro_wrappers import *
from util import log_dir, SaveOnBestTrainingRewardCallback, AirstrikerDiscretizer, CustomRewardAndDoneEnv

env = retro.make(game="Airstriker-Genesis", state="Level1")
env = AirstrikerDiscretizer(env)
env = CustomRewardAndDoneEnv(env)
env = StochasticFrameSkip(env, n=4, stickprob=0.25)
env = Downsample(env, 2)
env = Rgb2gray(env)
env = FrameStack(env, 4)
env = ScaledFloatFrame(env)
env = Monitor(env, log_dir, allow_early_resets=True)
print(f"行動空間: {env.action_space}")
print(f"状態空間: {env.observation_space}")

env.seed(0)
set_global_seeds(0)

env = DummyVecEnv([lambda: env])

model = PPO2("CnnPolicy", env, verbose=0)

model = PPO2.load("./logs/best_model.zip", env=env, verbose=0)
Пример #4
0
from stable_baselines.common.vec_env import DummyVecEnv
from baselines.common.retro_wrappers import *
from stable_baselines.bench import Monitor
from util import CustomRewardAndDoneEnv, callback, log_dir
from stable_baselines.common import set_global_seeds

# 環境の生成
env = retro.make(game='SonicTheHedgehog-Genesis', state='GreenHillZone.Act1')
env = SonicDiscretizer(env)  # 行動空間を離散空間に変換
env = StochasticFrameSkip(env, n=4, stickprob=0.25)  # スティッキーフレームスキップ
env = Downsample(env, 2)  # ダウンサンプリング
env = Rgb2gray(env)  # グレースケール
env = FrameStack(env, 4)  # フレームスタック
env = ScaledFloatFrame(env)  # 状態の正規化
env = TimeLimit(env, max_episode_steps=4500)  # 5分タイムアウト
env = CustomRewardAndDoneEnv(env)  # カスタム報酬関数・完了条件
env = Monitor(env, log_dir, allow_early_resets=True)
print('状態空間: ', env.observation_space)
print('行動空間: ', env.action_space)

# シードの指定
env.seed(0)
set_global_seeds(0)

# ベクトル環境の生成
env = DummyVecEnv([lambda: env])

# モデルの生成
#model = PPO2(policy=CnnPolicy, env=env, verbose=0, learning_rate=0.000025)

# モデルの読み込み