SyncVectorEnv¶
- class gymnasium.vector.SyncVectorEnv(env_fns: Iterator[Callable[[], Env]] | Sequence[Callable[[], Env]], copy: bool = True, observation_mode: str | Space = 'same')[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()
- 参数:
- 引发:
RuntimeError – 如果某个子环境的观察空间与 observation_space 不匹配(或者,默认情况下,与第一个子环境的观察空间不匹配)。
- reset(*, seed: int | list[int] | None = None, options: dict[str, Any] | None = None) tuple[ObsType, dict[str, Any]] [source]¶
重置每个子环境并将结果连接在一起。
- 参数:
seed – 用于重置子环境的种子,可以是 *
None
- 为所有环境随机种子 *int
-[seed, seed+1, ..., seed+n]
* 整数列表 -[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 – 方法关键字参数
- 返回:
结果元组
其他方法¶
- property SyncVectorEnv.np_random: tuple[Generator, ...]¶
返回包装环境的 numpy 随机数生成器元组。
- property SyncVectorEnv.np_random_seed: tuple[int, ...]¶
返回包装环境的 np 随机种子元组。