Skip to content

踩坑GitHub unitreerobotics/unitree_rl_mjlab6 个月前

Unitree Go2 Rough地形PPO训练崩溃报错normal expects std >=。 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Multi-GPU training crashes on Rough terrain task (NaN in PPO)(GitHub unitreerobotics/unitree_rl_mjlab #9)

状态:已解决

问题 ​

使用10张RTX A4000训练Mjlab-Velocity-Rough-Unitree-Go2任务时,前几次迭代即触发RuntimeError: normal expects all elements of std >= 0.0。

环境 ​

Unitree Go2, Ubuntu, Python 3.11, PyTorch CUDA, 10× NVIDIA RTX A4000, 56 CPU cores, num-envs=8192, torchrunx多卡训练

解决办法 ​

  1. 将代码仓库更新至最新版本,该版本已修复MuJoCo配置及上述数值稳定性问题
  2. 若无法立即更新,手动修改mjlab/terrains/config.py第64行,将num_waves=4改为num_waves=4.0以解决tyro类型错误
  3. 在actor_critic.py和actor_critic_recurrent.py中对self.std添加clamp(min=1e-6)约束,防止优化器将其推至负值或NaN
  4. 在ppo.py第297行对ratio计算增加torch.clamp(torch.exp(...), max=10.0)限制,避免log_prob差值过大导致exp溢出传播NaN

讨论原作者:@diaskabdualiev 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub unitreerobotics/unitree_rl_mjlab #9:Multi-GPU training crashes on Rough terrain task (NaN in PPO)访问 2026-10-26