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

自定义Gymnasium环境经Stable Baseline3训练后状态异常求助

训练后环境动作返回结果不同的原因
  • 训练结束后环境状态未重置
    Stable Baseline3的model.learn()会在训练全程持续与环境交互,调用step()推进环境状态,训练结束后环境不会自动回到初始状态,而是停留在训练最后一步的状态。此时执行env.step(2),是基于训练末尾的状态而非初始状态计算结果,自然会得到不同的观测值。

  • 自定义环境的状态管理存在疏漏
    若你自定义的Gymnasium环境没有正确实现状态隔离逻辑,比如把环境状态存在类的静态属性而非实例的独立属性中,训练过程中对状态的修改会被永久保留,导致后续调用step()时使用的是被修改后的状态。

  • TimeLimit包装器的状态残留
    训练后返回的info字典新增了{'TimeLimit.truncated': False},说明环境被TimeLimit包装器包裹。训练过程中该包装器会累计环境步数,训练结束后这个计数未被重置,可能影响观测值的计算逻辑,导致结果变化。

验证方法

在训练后先执行env.reset()重置环境到初始状态,再调用env.step(2),若返回结果与训练前一致,即可确认是状态未重置导致的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:10:08