與 Gym 的相容性

Gymnasium 為各種環境實作提供多種相容性方法。

載入 OpenAI Gym 環境

對於僅在 OpenAI Gym 而非 Gymnasium 中註冊的環境,Gymnasium v0.26.3 及更高版本允許通過特殊環境或封裝器導入它們。 "GymV26Environment-v0" 環境在 Gymnasium v0.26.3 中引入,並允許通過 env_name 參數以及其他相關 kwargs 環境 kwargs 導入 Gym 環境。 要通過封裝器執行轉換,環境本身可以通過 env kwarg 傳遞給封裝器 EnvCompatibility

import gymnasium as gym

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

Gym v0.21 環境相容性

許多環境尚未更新到最近的 Gym 變更,特別是自 v0.21 以來。 此更新對於引入 terminationtruncation 簽名以取代先前使用的 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())

Step API 相容性

如果環境實作了(舊的)done step API,Gymnasium 提供了函數 (gymnasium.utils.step_api_compatibility.convert_to_terminated_truncated_step_api()) 和封裝器 (gymnasium.wrappers.StepAPICompatibility),它們將把具有舊 step API(使用 done)的環境轉換為新的 step API(使用 terminationtruncation)。