From 2bd4c05e1b66012faf1e0af315697e5a700d3f6f Mon Sep 17 00:00:00 2001 From: 8x54zj-m <8x54zj-m@motrixlab.local> Date: Wed, 1 Jul 2026 16:56:07 +0800 Subject: [PATCH] fix: fixed schedule, init_noise 0.5, AdaBoot cap 0.9 (keep vel head gradient) --- motrix_rl/src/motrix_rl/rslrl/torch/train/dreamwaq_ppo.py | 4 ++-- motrix_rl/src/motrix_rl/tasks/go1.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/motrix_rl/src/motrix_rl/rslrl/torch/train/dreamwaq_ppo.py b/motrix_rl/src/motrix_rl/rslrl/torch/train/dreamwaq_ppo.py index 7680404..a5a0bc2 100644 --- a/motrix_rl/src/motrix_rl/rslrl/torch/train/dreamwaq_ppo.py +++ b/motrix_rl/src/motrix_rl/rslrl/torch/train/dreamwaq_ppo.py @@ -222,8 +222,8 @@ class DreamWaQPPO(PPO): cv = std_r / (mean_r + 1e-6) if not (0 <= cv < 1e6): # NaN 或 Inf → 保持当前 prob return - # CV → bootstrap 概率(CV 高→不稳定→多用 GT;映射系数 5.0 可调) - self.actor._adaboot_prob = max(0.0, min(1.0, cv * 5.0)) + # CV → bootstrap 概率(CV 高→不稳定→多用 GT;上限 0.9 保证 CENet vel head 有梯度) + self.actor._adaboot_prob = max(0.0, min(0.9, cv * 5.0)) def _compute_surrogate_loss( self, actions_batch, actions_log_prob_batch, diff --git a/motrix_rl/src/motrix_rl/tasks/go1.py b/motrix_rl/src/motrix_rl/tasks/go1.py index 48d086e..215f8bd 100644 --- a/motrix_rl/src/motrix_rl/tasks/go1.py +++ b/motrix_rl/src/motrix_rl/tasks/go1.py @@ -126,7 +126,7 @@ class rslrl: runner.algorithm.entropy_coef = 0.01 # 上游 Go1RoughCfgPPO runner.algorithm.desired_kl = 0.01 # 上游 0.01 (默认 0.008) runner.algorithm.clip_param = 0.2 - runner.algorithm.schedule = "adaptive" # 上游原值,前期 bug 已修 + runner.algorithm.schedule = "fixed" # 4096 envs 采样够大,不需要 adaptive 加噪 runner.algorithm.gamma = 0.99 runner.algorithm.lam = 0.95 runner.algorithm.max_grad_norm = 1.0 @@ -136,7 +136,7 @@ class rslrl: runner.actor.class_name = ( "motrix_rl.rslrl.torch.models.cenet_actor:CENetActorModel") runner.actor.hidden_dims = [512, 256, 128] - runner.actor.init_noise_std = 1.0 # 上游原值,adaptive 会自行调节 + runner.actor.init_noise_std = 0.5 # 与 fixed schedule 配合 # Critic:标准 MLPModel,输入 privileged_obs runner.critic.class_name = "MLPModel"