seed: 42 # Models are instantiated using skrl's model instantiator utility # https://skrl.readthedocs.io/en/latest/api/utils/model_instantiators.html models: separate: False policy: # gaussian model class: "GaussianMixin" clip_actions: True clip_log_std: True initial_log_std: 0.0 min_log_std: -20.0 max_log_std: 2.0 input: "STATES" hiddens: [32, 32] hidden_activation: ["elu", "elu"] output: "ACTIONS" output_activation: "tanh" output_scale: 1.0 value: # deterministic model class: "DeterministicMixin" clip_actions: False input: "STATES" hiddens: [32, 32] hidden_activation: ["elu", "elu"] output: "ONE" output_activation: "" output_scale: 1.0 # Memory # https://skrl.readthedocs.io/en/latest/api/memories/random.html memory: class: "RandomMemory" memory_size: -1 # -1: automatically determined value # PPO agent configuration (field names are from PPO_DEFAULT_CONFIG) # https://skrl.readthedocs.io/en/latest/api/agents/ppo.html agent: class: "PPO" rollouts: 16 learning_epochs: 8 mini_batches: 1 discount_factor: 0.99 lambda: 0.95 learning_rate: 3.e-4 learning_rate_scheduler: "KLAdaptiveLR" learning_rate_scheduler_kwargs: kl_threshold: 0.008 random_timesteps: 0 # random exploration steps learning_starts: 0 # learning starts after this many steps grad_norm_clip: 1.0 ratio_clip: 0.2 value_clip: 0.2 clip_predicted_values: True entropy_loss_scale: 0.0 value_loss_scale: 2.0 kl_threshold: 0 rewards_shaper_scale: 1.0 time_limit_bootstrap: False # logging and checkpoint experiment: directory: "runs" experiment_name: "" write_interval: 16 checkpoint_interval: 80 store_separately: False wandb: False wandb_kwargs: null # Sequential trainer # https://skrl.readthedocs.io/en/latest/api/trainers/sequential.html trainer: class: "SequentialTrainer" timesteps: 1600 environment_info: "log"