與 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 以來。 此更新對於引入 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())
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(使用 termination
和 truncation
)。