In [ ]:
# Pre-configured A3C launcher
# for Atari Gym Environment.
#
# Point tensorboard to User/tmp/test_gym_a3c
#
# Paper: https://arxiv.org/abs/1602.01783
In [ ]:
import warnings
warnings.filterwarnings("ignore") # suppress h5py deprecation warning
import os
from btgym.algorithms import AtariRescale42x42, Launcher, BaseAacPolicy, A3C
In [ ]:
cluster_config = dict(
host='127.0.0.1',
port=12230,
num_workers=4, # Set according CPU's available
num_ps=1,
num_envs=4,
log_dir=os.path.expanduser('~/tmp/test_gym_a3c'),
)
env_config = dict(
class_ref=AtariRescale42x42, # Gym env. preprocessed to normalized grayscale 42x42 pix.
kwargs={'gym_id': 'Breakout-v0'}
)
policy_config = dict(
class_ref=BaseAacPolicy,
kwargs={}
)
trainer_config = dict(
class_ref=A3C,
kwargs=dict(
opt_learn_rate=[1e-4, 1e-4], # Random log-uniform
opt_end_learn_rate=1e-5,
opt_decay_steps=100*10**6,
model_gae_lambda=0.95,
model_beta=[0.02, 0.001], # Entropy reg, random log-uniform
rollout_length=20,
time_flat=False,
model_summary_freq=100,
episode_summary_freq=10,
env_render_freq=100,
)
)
launcher = Launcher(
cluster_config=cluster_config,
env_config=env_config,
trainer_config=trainer_config,
policy_config=policy_config,
test_mode=True,
max_env_steps=100*10**6,
root_random_seed=0,
purge_previous=1, # ask to override previously saved model and logs
verbose=1
)
In [ ]:
launcher.run()