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 随机种子元组。