与 Gym 的兼容性

Gymnasium 为各种环境实现提供了一些兼容性方法。

加载 OpenAI Gym 环境

对于仅在 OpenAI Gym 中注册而不在 Gymnasium 中注册的环境,Gymnasium v0.26.3 及更高版本允许通过特殊环境或包装器导入它们。 "GymV26Environment-v0" 环境是在 Gymnasium v0.26.3 中引入的,允许通过 env_name 参数以及其他相关的环境 kwargs 环境 kwargs 导入 Gym 环境。 要通过包装器执行转换,可以将环境本身通过 EnvCompatibility 包装器通过 env kwarg 传递。

import gymnasium as gym

env = gym.make("GymV26Environment-v0", env_id="GymEnv-v1")

Gym v0.21 环境兼容性

许多环境尚未更新到最近的 Gym 更改,特别是自 v0.21 以来。 此更新对于在以前使用的 done 签名中引入 terminationtruncation 签名非常重要。 为了允许向后兼容性,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 兼容性

如果环境实现了(旧的)完成步骤 API,Gymnasium 提供了两个函数(gymnasium.utils.step_api_compatibility.convert_to_terminated_truncated_step_api())和包装器(gymnasium.wrappers.StepAPICompatibility),它们将使用旧步骤 API(使用 done)的环境转换为使用新步骤 API(使用 terminationtruncation)的环境。