Source code for world_models.configs.dreamer_config
[docs]
class DreamerConfig:
"""Configuration container for Dreamer training, evaluation, and environment setup.
This class centralizes environment backend selection (DMC/Gym/Unity),
model dimensions, replay and optimization settings, logging cadence, and
checkpoint options consumed by `DreamerAgent`.
"""
def __init__(self):
# Environment selection.
# dmc: DeepMind Control Suite
# gym: generic Gym/Gymnasium env IDs or prebuilt env instances
# unity_mlagents: Unity ML-Agents executable
self.env_backend = "dmc"
self.env = "walker-walk"
self.env_instance = None
self.image_size = (64, 64)
self.gym_render_mode = "rgb_array"
# Unity ML-Agents options.
self.unity_file_name = None
self.unity_behavior_name = None
self.unity_worker_id = 0
self.unity_base_port = 5005
self.unity_no_graphics = True
self.unity_time_scale = 20.0
self.unity_quality_level = 1
self.algo = "Dreamerv1"
self.exp_name = "lr1e-3"
self.train = True
self.evaluate = False
self.seed = 1
self.no_gpu = False
self.max_episode_length = 1000
self.buffer_size = 800000
self.time_limit = 1000
self.cnn_activation_function = "relu"
self.dense_activation_function = "elu"
self.obs_embed_size = 1024
self.num_units = 400
self.deter_size = 200
self.stoch_size = 30
self.action_repeat = 2
self.action_noise = 0.3
self.total_steps = int(5e6)
self.seed_steps = 5000
self.update_steps = 100
self.collect_steps = 1000
self.batch_size = 50
self.train_seq_len = 50
self.imagine_horizon = 15
self.use_disc_model = False
self.free_nats = 3.0
self.discount = 0.99
self.td_lambda = 0.95
self.kl_loss_coeff = 1.0
self.kl_alpha = 0.8
self.disc_loss_coeff = 10.0
self.model_learning_rate = 6e-4
self.actor_learning_rate = 8e-5
self.value_learning_rate = 8e-5
self.adam_epsilon = 1e-7
self.grad_clip_norm = 100.0
self.test = False
self.test_interval = 10000
self.test_episodes = 10
self.scalar_freq = int(1e3)
self.log_video_freq = -1
self.max_videos_to_save = 2
self.checkpoint_interval = 10000
self.checkpoint_path = ""
self.restore = False
self.experience_replay = ""
self.render = False