兼容Gym¶
Gymnasium 提供了许多兼容方法,用于使用旧版 Gym 环境实现。
加载OpenAI Gym环境¶
对于仅在OpenAI Gym中注册而未在Gymnasium中注册的环境,Gymnasium v0.26.3及更高版本允许通过特殊环境或封装器导入它们。 "GymV26Environment-v0"
环境是在Gymnasium v0.26.3中引入的,允许通过 env_name
参数以及其他相关的环境 kwargs 来导入Gym环境。要通过封装器进行转换,环境本身可以通过 env
kwarg 传递给 EnvCompatibility
封装器。
import gymnasium as gym
env = gym.make("GymV26Environment-v0", env_id="GymEnv-v1")
Gym v0.21 环境兼容性¶
许多环境尚未更新到最近的Gym更改,特别是自v0.21以来的更改。此更新对于引入 termination
和 truncation
签名以取代之前使用的 done
至关重要。为了实现向后兼容性,Gym和Gymnasium v0.26+在调用 make()
时包含一个 apply_api_compatibility
kwarg,它会自动将符合v0.21 API的环境转换为与v0.26+兼容的环境。
import gym
env = gym.make("OldV21Env-v0", apply_api_compatibility=True)
此外,在Gymnasium中,我们为兼容性提供了专业环境,对于 env_id
将调用 gym.make
。
import gymnasium
env = gymnasium.make("GymV21Environment-v0", env_id="CartPole-v1", render_mode="human")
# or
env = gymnasium.make("GymV21Environment-v0", env=OldV21Env())
步骤API兼容性¶
如果环境实现了(旧的)done 步骤API,Gymnasium 提供函数(gymnasium.utils.step_api_compatibility.convert_to_terminated_truncated_step_api()
)和封装器(gymnasium.wrappers.StepAPICompatibility
),它们将把使用旧步骤API(使用 done
)的环境转换为新步骤API(使用 termination
和 truncation
)。