You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从零实现SAC训练BipedalWalker,咨询NormalizeObservation使用方式

关于Gymnasium中NormalizeObservation与RescaleAction的用法解答

你的代码用法是正确的,这种嵌套Wrapper的方式可以让NormalizeObservation对后续所有环境交互产生的观测生效,同时RescaleAction也能正确完成动作空间的缩放。

具体逻辑说明

Gymnasium的Wrapper采用嵌套链式工作模式,每一层Wrapper会处理上一层的输入或输出:

  • 当调用env.step(action)时,RescaleAction会先将你传入的0-1区间动作,缩放回BipedalWalker原环境的[-1,1]动作空间,再传递给底层环境执行;
  • 环境执行后返回的原始观测,会先经过NormalizeObservation的归一化处理(默认基于在线统计的均值和方差,将观测转换为均值0、方差1的分布),再返回给你的SAC算法,满足输入均衡的需求。

额外注意事项

  • NormalizeObservation默认是在线动态统计观测的均值和方差,训练过程中会持续更新。如果训练完成后要测试智能体,建议保存训练阶段统计的均值和方差,测试时固定使用这些值,避免测试阶段的新统计数据干扰结果;
  • 如果你需要观测严格归一化到0-1区间,NormalizeObservation的默认输出是标准正态分布,你可以额外添加MinMaxObservation Wrapper,或者在归一化后自行做线性变换;
  • BipedalWalker原动作空间为[-1,1],RescaleAction(min_action=0, max_action=1)的参数设置完全适配,动作缩放逻辑正确。

内容的提问来源于stack exchange,提问作者Anas Rzq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:12:13