VecGymEnvTransform¶
- class torchrl.envs.transforms.VecGymEnvTransform(final_name='final')[source]¶
GymWrapper 子类的转换,以一致的方式处理自动重置。
Gym、gymnasium 和 SB3 提供了自动重置的向量化(读取、并行或批处理)环境。发生这种情况时,操作产生的实际观测结果会保存在 info 中的一个键中。类
torchrl.envs.libs.gym.terminal_obs_reader
读取该观测结果并将其存储在输出 tensordict 中的"final"
键中。反过来,此转换读取最终数据,将其与实际重置产生的观测结果交换,并将重置输出保存在私有容器中。结果数据真实地反映了步骤的输出。此类适用于 gym 0.13 到最新的 gymnasium 版本。
注意
Gym 版本 < 0.22 不返回最终观测结果。对于这些版本,我们只需用 NaN 填充下一个观测结果(因为它已丢失),并在下一步进行交换。
然后,当调用 env.reset 时,保存的数据将被写回其所属的位置(并且 reset 是一个空操作)。
每当使用异步环境创建包装器时,此转换都会自动附加到 gym 环境。
- 参数:
final_name (str, 可选) – 字典中最终观测结果的名称。默认为 “final”。
注意
一般来说,此类不应直接处理。每当向量化环境放置在
GymWrapper
中时,就会创建它。- transform_observation_spec(observation_spec: TensorSpec) TensorSpec [source]¶
转换观测规范,使结果规范与转换映射匹配。
- 参数:
observation_spec (TensorSpec) – 转换前的规范
- 返回:
转换后的预期规范