SyncVectorEnv¶
- class gymnasium.vector.SyncVectorEnv(env_fns: Iterator[Callable[[], Env]] | Sequence[Callable[[], Env]], copy: bool = True, observation_mode: str | Space = 'same', autoreset_mode: str | AutoresetMode = AutoresetMode.NEXT_STEP)[source]¶
序列執行多個環境的向量化環境。
示例
>>> import gymnasium as gym >>> envs = gym.make_vec("Pendulum-v1", num_envs=2, vectorization_mode="sync") >>> envs SyncVectorEnv(Pendulum-v1, num_envs=2) >>> envs = gym.vector.SyncVectorEnv([ ... lambda: gym.make("Pendulum-v1", g=9.81), ... lambda: gym.make("Pendulum-v1", g=1.62) ... ]) >>> envs SyncVectorEnv(num_envs=2) >>> obs, infos = envs.reset(seed=42) >>> obs array([[-0.14995256, 0.9886932 , -0.12224312], [ 0.5760367 , 0.8174238 , -0.91244936]], dtype=float32) >>> infos {} >>> _ = envs.action_space.seed(42) >>> actions = envs.action_space.sample() >>> obs, rewards, terminates, truncates, infos = envs.step(actions) >>> obs array([[-0.1878752 , 0.98219293, 0.7695615 ], [ 0.6102389 , 0.79221743, -0.8498053 ]], dtype=float32) >>> rewards array([-2.96562607, -0.99902063]) >>> terminates array([False, False]) >>> truncates array([False, False]) >>> infos {} >>> envs.close()
- 引數:
env_fns – 可呼叫函式的可迭代物件,用於建立環境。
observation_mode – 定義環境觀測空間應如何批次處理。
'same'定義應有n個相同空間的副本。'different'定義可以有多個觀測空間,它們長度相同但高/低值不同,可以批次處理。傳遞Space物件允許使用者設定 'same' 或 'different' 未涵蓋的自定義觀測空間模式。autoreset_mode – 使用的自動重置模式,更多資訊請參閱 https://farama.org/Vector-Autoreset-Mode。
- 丟擲:
RuntimeError – 如果某些子環境的觀測空間與
observation_space不匹配(或者,預設情況下,與第一個子環境的觀測空間不匹配)。
- reset(*, seed: int | list[int | None] | None = None, options: dict[str, Any] | None = None) tuple[ObsType, dict[str, Any]][source]¶
重置每個子環境並將結果合併。
- 引數:
seed – 用於重置子環境的種子,可以是: *
None- 所有環境的隨機種子 *int-[seed, seed+1, ..., seed+n]*int列表 -[1, 2, 3, ..., n]options – 用於每個子環境的選項資訊。
- 返回:
每個子環境的合併觀測和資訊。
- step(actions: ActType) tuple[ObsType, ArrayType, ArrayType, ArrayType, dict[str, Any]][source]¶
逐步執行每個環境並返回批次結果。
- 返回:
批次環境步進結果。
- close(**kwargs: Any)¶
關閉所有並行環境並釋放資源。
它還會關閉所有現有的影像檢視器,然後呼叫
close_extras()並將closed設定為True。警告
此函式本身不關閉環境,應在
close_extras()中處理。這對於同步和異步向量化環境都是通用的。注意
當垃圾回收或程式退出時,此函式將自動呼叫。
- 引數:
**kwargs – 傳遞給
close_extras()的關鍵字引數。
- call(name: str, *args: Any, **kwargs: Any) tuple[Any, ...][source]¶
呼叫一個帶有
name的子環境方法,並應用args和kwargs。- 引數:
name – 方法名稱。
*args – 方法引數。
**kwargs – 方法關鍵字引數。
- 返回:
結果元組。
附加方法¶
- property SyncVectorEnv.np_random: tuple[Generator, ...]¶
返回封裝環境的 NumPy 偽隨機數生成器元組。
- property SyncVectorEnv.np_random_seed: tuple[int, ...]¶
返回封裝環境的 NumPy 隨機種子元組。