SyncVectorEnv¶
- class gymnasium.vector.SyncVectorEnv(env_fns: Iterator[Callable[[], Env]] | Sequence[Callable[[], Env]], copy: bool = True)[源代码]¶
向量化环境,串行运行多个环境。
示例
>>> 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 – 可调用函数的可迭代对象,用于创建环境。
copy – 如果
True
,那么 :meth:reset
和 :meth:step
方法将返回观察结果的副本。
- 抛出:
RuntimeError – 如果某些子环境的观测空间与 observation_space 不匹配(或者,默认情况下,与第一个子环境的观测空间不匹配)。
- reset(*, seed: int | list[int] | None = None, options: dict[str, Any] | None = None) tuple[ObsType, dict[str, Any]] [源代码]¶
重置每个子环境并将结果连接在一起。
- 参数:
seed – 用于重置子环境的种子,可以是 *
None
- 所有环境的随机种子 *int
-[seed, seed+1, ..., seed+n]
* 整数列表 -[1, 2, 3, ..., n]
options – 用于每个子环境的选项信息
- 返回:
每个子环境的观察结果和信息连接
- step(actions: ActType) tuple[ObsType, ArrayType, ArrayType, ArrayType, dict[str, Any]] [源代码]¶
遍历每个环境并返回批处理结果。
- 返回:
批量环境步骤结果
- close(**kwargs: Any)¶
关闭所有并行环境并释放资源。
它还会关闭所有现有的图像查看器,然后调用 :meth:
close_extras
并将 :attr:closed
设置为True
。警告
这个函数本身不会关闭环境,它应该在 :meth:
close_extras
中处理。这对于同步和异步的向量化环境都是通用的。备注
这将在垃圾回收或程序退出时自动调用。
- 参数:
**kwargs – 传递给 :meth:
close_extras
的关键字参数
- call(name: str, *args: Any, **kwargs: Any) tuple[Any, ...] [源代码]¶
调用具有名称的子环境方法,并应用 args 和 kwargs。
- 参数:
name – 方法名称
*args – 方法参数
**kwargs – 方法 kwargs
- 返回:
结果元组
附加方法¶
- property SyncVectorEnv.np_random: tuple[Generator, ...]¶
返回一个包含被包装环境numpy随机数生成器的元组。
- property SyncVectorEnv.np_random_seed: tuple[int, ...]¶
返回一个包含包装环境随机种子的元组。