Przejdź do treści

Config API

Configuration dataclasses for all algorithms. Every config class provides from_dict(), merge(), and to_dict() helpers, plus TOML/YAML loading via TrainingConfig.

Base

rlox.config.ConfigMixin

Shared serialization/deserialization for all config dataclasses.

Provides from_dict, from_yaml, from_toml, merge, to_dict, to_yaml, and to_toml so individual config classes only need to declare their fields and __post_init__ validation.

Unified

rlox.config.TrainingConfig dataclass

Top-level config for YAML/TOML-driven training.

Combines algorithm selection, environment, seed, hyperparameters, callbacks, and logging into a single serializable config.

from_dict(d: dict[str, Any]) -> TrainingConfig classmethod

Construct from a dict, ignoring unknown keys.

from_yaml(path: str | Path) -> TrainingConfig classmethod

Load from a YAML file.

from_toml(path: str | Path) -> TrainingConfig classmethod

Load from a TOML file.

to_yaml(path: str | Path) -> None

Save to a YAML file.

to_toml(path: str | Path) -> None

Save to a TOML file.

On-Policy

rlox.config.PPOConfig dataclass

Bases: ConfigMixin

Configuration for PPO training.

Defaults match CleanRL's PPO implementation for CartPole-v1.

Attributes

n_envs : int Number of parallel environments (default 8). n_steps : int Rollout length per environment per update (default 128). n_epochs : int Number of SGD passes over each rollout (default 4). batch_size : int Minibatch size for SGD (default 256). learning_rate : float Adam learning rate (default 2.5e-4). clip_eps : float PPO clipping range for the probability ratio (default 0.2). vf_coef : float Value loss coefficient (default 0.5). ent_coef : float Entropy bonus coefficient (default 0.01). max_grad_norm : float Maximum gradient norm for clipping (default 0.5). gamma : float Discount factor (default 0.99). gae_lambda : float GAE lambda (default 0.95). normalize_advantages : bool Whether to normalise advantages per minibatch (default True). clip_vloss : bool Whether to clip the value loss (default True). anneal_lr : bool Whether to linearly anneal the learning rate (default True).

rlox.config.A2CConfig dataclass

Bases: ConfigMixin

Configuration for A2C (Advantage Actor-Critic) training.

A2C uses a single gradient step per rollout (no clipping, no epochs). Typically paired with short rollouts (n_steps=5) and RMSprop.

Attributes

learning_rate : float RMSprop learning rate (default 7e-4). n_steps : int Rollout length per update (default 5). gamma : float Discount factor (default 0.99). gae_lambda : float GAE lambda (default 1.0, equivalent to full n-step returns). vf_coef : float Value function loss coefficient (default 0.5). ent_coef : float Entropy bonus coefficient (default 0.01). max_grad_norm : float Gradient clipping threshold (default 0.5). normalize_advantages : bool Normalize advantages per batch (default False). n_envs : int Number of parallel environments (default 8). hidden : int Hidden layer width (default 64).

rlox.config.VPGConfig dataclass

Bases: ConfigMixin

Configuration for Vanilla Policy Gradient (REINFORCE with baseline).

Attributes

learning_rate : float Policy optimizer learning rate (default 3e-4). vf_lr : float Value function learning rate (default 1e-3). n_envs : int Number of parallel environments (default 8). n_steps : int Rollout length per environment per update (default 2048). gamma : float Discount factor (default 0.99). gae_lambda : float GAE lambda for bias-variance tradeoff (default 0.97). vf_epochs : int Value function SGD epochs per rollout (default 5). max_grad_norm : float Maximum gradient norm for clipping (default 0.5). ent_coef : float Entropy bonus coefficient (default 0.0 -- no entropy bonus). hidden : int Hidden layer size for auto-created policies (default 64).

rlox.config.TRPOConfig dataclass

Bases: ConfigMixin

Configuration for Trust Region Policy Optimization.

Attributes

max_kl : float Maximum KL divergence per update (default 0.01). damping : float Damping coefficient for Fisher vector product (default 0.1). cg_iters : int Conjugate gradient iterations (default 10). line_search_steps : int Backtracking line search steps (default 10). n_envs : int Number of parallel environments (default 8). n_steps : int Rollout length per environment per update (default 2048). gamma : float Discount factor (default 0.99). gae_lambda : float GAE lambda (default 0.97). vf_lr : float Value function learning rate (default 1e-3). vf_epochs : int Value function SGD epochs per update (default 5).

Off-Policy

rlox.config.SACConfig dataclass

Bases: ConfigMixin

Configuration for SAC training.

Defaults match rl-zoo3 SAC hyperparameters.

Attributes

learning_rate : float Learning rate for all optimisers (default 3e-4). buffer_size : int Replay buffer capacity (default 1M). batch_size : int Minibatch size for critic/actor updates (default 256). tau : float Polyak averaging coefficient for target networks (default 0.005). gamma : float Discount factor (default 0.99). target_entropy : float or None Target entropy for auto-tuning. None = -dim(action_space). auto_entropy : bool Whether to automatically tune the entropy coefficient (default True). learning_starts : int Number of random exploration steps before training (default 1000). hidden : int Hidden layer width for actor and critic networks (default 256).

from_toml(path: str | Path) -> SACConfig classmethod

Load config from a TOML file, ignoring unknown keys.

rlox.config.TD3Config dataclass

Bases: ConfigMixin

Configuration for TD3 (Twin Delayed DDPG) training.

Deterministic policy with target policy smoothing and delayed updates.

Attributes

learning_rate : float Adam learning rate for both actor and critic (default 3e-4). buffer_size : int Replay buffer capacity (default 1M). batch_size : int Minibatch size (default 256). tau : float Polyak averaging coefficient for target networks (default 0.005). gamma : float Discount factor (default 0.99). learning_starts : int Random exploration steps before training (default 1000). policy_delay : int Actor update frequency relative to critic (default 2). target_noise : float Noise added to target actions for smoothing (default 0.2). noise_clip : float Clipping range for target noise (default 0.5). exploration_noise : float Std of Gaussian exploration noise (default 0.1). hidden : int Hidden layer width (default 256). n_envs : int Number of parallel environments (default 1).

rlox.config.DQNConfig dataclass

Bases: ConfigMixin

Configuration for DQN training with Rainbow extensions.

Supports Double DQN, Dueling architecture, N-step returns, and Prioritized Experience Replay (PER).

Attributes

learning_rate : float Adam learning rate (default 1e-4). buffer_size : int Replay buffer capacity (default 1M). batch_size : int Minibatch size (default 64). gamma : float Discount factor (default 0.99). target_update_freq : int Steps between hard target network updates (default 1000). exploration_fraction : float Fraction of training for epsilon decay (default 0.1). exploration_initial_eps : float Starting epsilon for exploration (default 1.0). exploration_final_eps : float Final epsilon after decay (default 0.05). learning_starts : int Random exploration steps before training (default 1000). double_dqn : bool Use Double DQN action selection (default True). dueling : bool Use Dueling network architecture (default False). n_step : int N-step return horizon (default 1). prioritized : bool Use Prioritized Experience Replay (default False). alpha : float PER priority exponent (default 0.6). beta_start : float PER initial importance-sampling exponent (default 0.4). hidden : int Hidden layer width (default 256).

rlox.config.MPOConfig dataclass

Bases: ConfigMixin

Configuration for Maximum a Posteriori Policy Optimization.

Attributes

learning_rate : float Adam learning rate for actor and critic (default 3e-4). buffer_size : int Replay buffer capacity (default 1_000_000). batch_size : int Minibatch size (default 256). gamma : float Discount factor (default 0.99). tau : float Polyak averaging coefficient for target networks (default 0.005). n_action_samples : int Number of action samples for the E-step (default 20). epsilon : float KL constraint for the M-step (default 0.1). epsilon_penalty : float KL penalty coefficient (default 0.001). dual_lr : float Learning rate for dual variables (default 1e-2). hidden : int Hidden layer width (default 256). learning_starts : int Random exploration steps before training (default 1000).

Multi-Agent

rlox.config.MAPPOConfig dataclass

Bases: ConfigMixin

Configuration for Multi-Agent PPO (MAPPO) training.

Centralized training with decentralized execution (CTDE).

Attributes

n_agents : int Number of agents (default 2). learning_rate : float Adam learning rate (default 5e-4). n_steps : int Rollout length per environment per update (default 128). n_epochs : int Number of SGD passes per rollout (default 5). clip_range : float PPO clipping range (default 0.2). gamma : float Discount factor (default 0.99). gae_lambda : float GAE lambda (default 0.95). vf_coef : float Value loss coefficient (default 0.5). ent_coef : float Entropy bonus coefficient (default 0.01). max_grad_norm : float Maximum gradient norm for clipping (default 10.0). share_parameters : bool Whether agents share actor parameters (default False). hidden : int Hidden layer width (default 64). n_envs : int Number of parallel environments (default 8).

rlox.config.QMIXConfig dataclass

Bases: ConfigMixin

Configuration for QMIX training.

Attributes

n_agents : int Number of agents (default 3). hidden_dim : int Hidden dimension for agent Q-networks (default 64). mixing_embed_dim : int Mixing network hidden dimension (default 32). lr : float Adam learning rate (default 5e-4). buffer_size : int Replay buffer capacity (default 50_000). gamma : float Discount factor (default 0.99). target_update_freq : int Steps between target network updates (default 200). batch_size : int Minibatch size (default 32).

Model-Based

rlox.config.DreamerV3Config dataclass

Bases: ConfigMixin

Configuration for DreamerV3 (world-model-based RL) training.

Attributes

learning_rate : float Learning rate for all optimisers (default 1e-4). buffer_size : int Replay buffer capacity (default 1M). batch_size : int Number of sequences per training batch (default 16). seq_len : int Sequence length for training (default 50). gamma : float Discount factor (default 0.997). lambda_ : float Lambda for lambda-returns (default 0.95). deter_dim : int Deterministic state dimension in RSSM (default 512). stoch_dim : int Stochastic state dimension (number of categoricals, default 32). stoch_classes : int Number of classes per categorical (default 32). hidden : int Hidden layer width (default 512). imagination_horizon : int Steps to imagine ahead for actor-critic (default 15). kl_balance : float KL balancing coefficient (default 0.8). free_nats : float Free nats for KL loss (default 1.0).

Distributed

rlox.config.IMPALAConfig dataclass

Bases: ConfigMixin

Configuration for IMPALA (Importance Weighted Actor-Learner Architecture).

Attributes

learning_rate : float RMSprop learning rate (default 4e-4). n_actors : int Number of actor threads (default 4). n_steps : int Rollout length per actor per batch (default 20). gamma : float Discount factor (default 0.99). vf_coef : float Value loss coefficient (default 0.5). ent_coef : float Entropy bonus coefficient (default 0.01). max_grad_norm : float Maximum gradient norm for clipping (default 40.0). rho_clip : float V-trace truncation for importance weights (default 1.0). c_clip : float V-trace truncation for trace coefficients (default 1.0). queue_size : int Maximum experience queue size (default 16). hidden : int Hidden layer width (default 256). n_envs_per_actor : int Number of environments per actor thread (default 1).

Offline RL

rlox.config.DecisionTransformerConfig dataclass

Bases: ConfigMixin

Configuration for Decision Transformer training.

Attributes

context_length : int Number of timesteps in the context window (default 20). n_heads : int Number of attention heads (default 4). n_layers : int Number of transformer layers (default 3). embed_dim : int Embedding dimension (default 128). learning_rate : float Adam learning rate (default 1e-4). batch_size : int Minibatch size for offline training (default 64). dropout : float Dropout rate (default 0.1). target_return : float Desired return for evaluation (default 200.0). warmup_steps : int Data collection steps before training (default 500).

rlox.config.CalQLConfig dataclass

Bases: ConfigMixin

Configuration for Cal-QL (Calibrated Conservative Q-Learning).

Attributes

learning_rate : float Learning rate for all optimisers (default 3e-4). buffer_size : int Replay buffer capacity (default 100_000). batch_size : int Minibatch size (default 256). gamma : float Discount factor (default 0.99). tau : float Polyak averaging coefficient (default 0.005). cql_alpha : float CQL penalty weight (default 5.0). calibration_tau : float Quantile for calibration threshold (default 0.5). auto_alpha : bool Whether to auto-tune cql_alpha (default False).

Exploration & Meta

rlox.config.DiffusionPolicyConfig dataclass

Bases: ConfigMixin

Configuration for Diffusion Policy training.

Attributes

n_diffusion_steps : int Number of diffusion timesteps T (default 50). action_horizon : int Number of future actions to predict (default 8). obs_horizon : int Number of past observations to condition on (default 2). hidden_dim : int Hidden layer width (default 256). learning_rate : float Adam learning rate (default 1e-4). batch_size : int Minibatch size (default 256). noise_schedule : str "cosine" or "linear" (default "cosine"). beta_start : float Starting beta for linear schedule (default 0.0001). beta_end : float Ending beta for linear schedule (default 0.02). buffer_size : int Replay buffer capacity (default 1_000_000). n_inference_steps : int Denoising steps at inference (default 10).

rlox.config.DTPConfig dataclass

Bases: ConfigMixin

Configuration for Decision Tree Policies (RWDTP / RCDTP).

Implements Koirala & Fleming, "Solving Offline Reinforcement Learning with Decision Tree Regression," arXiv:2401.11630, 2024.

Attributes

method : str Which framework to use: "rwdtp" (return-weighted) or "rcdtp" (return-conditioned). Default "rwdtp". gamma : float Discount factor for return computation (default 1.0). return_power : float Exponent p applied to normalised returns in RWDTP (default 1.0). n_trees : int Number of boosting rounds / weak policies (default 500). max_depth : int Maximum depth per tree (default 6). learning_rate_xgb : float XGBoost shrinkage / step-size (default 0.1). target_return : float or None RCDTP runtime target return. If None, uses the dataset maximum. subsample : float Row subsampling ratio per boosting round (default 1.0). colsample_bytree : float Column subsampling ratio per tree (default 1.0). reg_alpha : float L1 regularization on leaf weights (default 0.0). reg_lambda : float L2 regularization on leaf weights (default 1.0).

rlox.config.SelfPlayConfig dataclass

Bases: ConfigMixin

Configuration for Self-Play training.

Attributes

pool_size : int Maximum number of historical policy snapshots (default 20). snapshot_freq : int Steps between policy snapshots (default 10_000). matchmaking : str Opponent selection strategy: "uniform", "latest", or "elo" (default "uniform"). initial_elo : float Starting Elo rating for new pool entries (default 1000.0). elo_k : float Elo K-factor controlling rating volatility (default 32.0). opponent_fraction : float Fraction of games played against pool opponents vs self (default 0.8).

rlox.config.GoExploreConfig dataclass

Bases: ConfigMixin

Configuration for Go-Explore archive-based exploration.

Attributes

archive_size : int Maximum number of cells in the archive (default 100_000). cell_resolution : int Discretization granularity for observations (default 8). exploration_steps : int Random exploration steps from each archived state (default 100). score_weight : float Weight for score when selecting cells (default 0.3). novelty_weight : float Weight for novelty (inverse visit count) when selecting cells (default 0.7).

rlox.config.PBTConfig dataclass

Bases: ConfigMixin

Configuration for Population-Based Training.

Attributes

population_size : int Number of agents in the population (default 8). interval : int Training timesteps between exploit/explore cycles (default 10_000). n_iterations : int Number of PBT iterations (default 20). exploit_fraction : float Bottom fraction of population replaced each cycle (default 0.2). perturb_factor : float Hyperparameter perturbation range (default 0.2).