86 lines
3.3 KiB
YAML
86 lines
3.3 KiB
YAML
runner:
|
|
class_name: OnPolicyRunner
|
|
# General
|
|
num_steps_per_env: 24 # Number of steps per environment per iteration
|
|
max_iterations: 1500 # Number of policy updates
|
|
seed: 1
|
|
# Observations
|
|
obs_groups: { "actor": ["policy"], "critic": ["policy", "privileged"] } # Maps from observation sets to groups. See `vec_env.py` for more information
|
|
# Logging parameters
|
|
save_interval: 50 # Check for potential saves every `save_interval` iterations
|
|
experiment_name: walking_experiment
|
|
run_name: ""
|
|
# Logging writer
|
|
logger: tensorboard # tensorboard, neptune, wandb
|
|
neptune_project: rsl_rl
|
|
wandb_project: rsl_rl
|
|
|
|
# Actor
|
|
actor:
|
|
class_name: MLPModel
|
|
hidden_dims: [256, 256, 256]
|
|
activation: elu
|
|
obs_normalization: false
|
|
stochastic: true
|
|
init_noise_std: 1.0
|
|
noise_std_type: "scalar" # 'scalar' or 'log'
|
|
state_dependent_std: false
|
|
|
|
# Critic
|
|
critic:
|
|
class_name: MLPModel
|
|
hidden_dims: [256, 256, 256]
|
|
activation: elu
|
|
obs_normalization: false
|
|
stochastic: false
|
|
|
|
# Algorithm
|
|
algorithm:
|
|
class_name: PPO
|
|
# Training
|
|
optimizer: adam # adam, adamw, sgd, rmsprop
|
|
learning_rate: 0.001
|
|
num_learning_epochs: 5
|
|
num_mini_batches: 4 # mini batch size = num_envs * num_steps / num_mini_batches
|
|
schedule: adaptive # adaptive, fixed
|
|
# Value function
|
|
value_loss_coef: 1.0
|
|
clip_param: 0.2
|
|
use_clipped_value_loss: true
|
|
# Surrogate loss
|
|
desired_kl: 0.01
|
|
entropy_coef: 0.01
|
|
gamma: 0.99
|
|
lam: 0.95
|
|
max_grad_norm: 1.0
|
|
# Miscellaneous
|
|
normalize_advantage_per_mini_batch: false
|
|
|
|
# Random network distillation
|
|
rnd_cfg:
|
|
weight: 0.0 # Initial weight of the RND reward
|
|
weight_schedule: null # This is a dictionary with a required key called "mode". Please check the RND module for more information
|
|
reward_normalization: false # Whether to normalize RND reward
|
|
# Learning parameters
|
|
learning_rate: 0.001 # Learning rate for RND
|
|
# Network parameters
|
|
num_outputs: 1 # Number of outputs of RND network. Note: if -1, then the network will use dimensions of the observation
|
|
predictor_hidden_dims: [-1] # Hidden dimensions of predictor network
|
|
target_hidden_dims: [-1] # Hidden dimensions of target network
|
|
|
|
# Symmetry augmentation
|
|
symmetry_cfg:
|
|
use_data_augmentation: true # This adds symmetric trajectories to the batch
|
|
use_mirror_loss: false # This adds symmetry loss term to the loss function
|
|
data_augmentation_func: null # String containing the module and function name to import
|
|
# Example: "legged_gym.envs.locomotion.anymal_c.symmetry:get_symmetric_states"
|
|
#
|
|
# .. code-block:: python
|
|
#
|
|
# @torch.no_grad()
|
|
# def get_symmetric_states(
|
|
# env: VecEnv, obs: Optional[torch.Tensor] = None, actions: Optional[torch.Tensor] = None,
|
|
# ) -> Tuple[torch.Tensor, torch.Tensor]:
|
|
#
|
|
mirror_loss_coeff: 0.0 # Coefficient for symmetry loss term. If 0, no symmetry loss is used
|