相容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)。