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。
- Raises (引发):
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 – 用于每个子环境的选项信息
- Returns (返回):
来自每个子环境的连接观测和信息
- step(actions: ActType) tuple[ObsType, ArrayType, ArrayType, ArrayType, dict[str, Any]] [source]¶
步进遍历每个环境,返回批处理结果。
- Returns (返回):
批处理环境步进结果
- close(**kwargs: Any)¶
关闭所有并行环境并释放资源。
它还会关闭所有现有的图像查看器,然后调用
close_extras()
并将closed
设置为True
。Warning (警告)
此函数本身不关闭环境,应在
close_extras()
中处理。这对于同步和异步向量化环境都是通用的。Note (注意)
这将在垃圾回收或程序退出时自动调用。
- 参数:
**kwargs – 传递给
close_extras()
的关键字参数
- call(name: str, *args: Any, **kwargs: Any) tuple[Any, ...] [source]¶
使用名称调用子环境方法,并应用 args 和 kwargs。
- 参数:
name – 方法名称
*args – 方法 args
**kwargs – 方法 kwargs
- Returns (返回):
结果元组
附加方法¶
- property SyncVectorEnv.np_random: tuple[Generator, ...]¶
返回包装环境的 numpy 随机数生成器元组。
- property SyncVectorEnv.np_random_seed: tuple[int, ...]¶
返回包装环境的 np 随机种子元组。