check_env_specs¶
- torchrl.envs.check_env_specs(env: torchrl.envs.EnvBase, return_contiguous: bool | None = None, check_dtype=True, seed: int | None = None, tensordict: TensorDictBase | None = None, break_when_any_done: bool | Literal['both'] = None)[源码]¶
使用简短的 rollout 来测试环境规范。
此测试函数应作为 torchrl 的 EnvBase 子类包装的环境的健全性检查:预期的数据与收集到的数据之间的任何差异都应引发断言错误。
损坏的环境规范很可能会使并行环境无法使用。
- 参数:
env (EnvBase) – 要检查其规格与数据是否匹配的环境。
return_contiguous (bool, optional) – 如果设置为
True
,则将使用 return_contiguous=True 调用随机 rollouts。这在某些情况下(例如,输入/输出的异构形状)会失败。默认为None
(由动态规格的存在决定)。check_dtype (bool, optional) – 如果为 False,则会跳过 dtype 检查。默认为 True。
seed (int, optional) – 为了可复现性,可以设置一个种子。种子将临时设置在 PyTorch 中,然后 RNG 状态将恢复到之前的状态。对于环境,我们设置了种子,但由于将 RNG 状态恢复到以前的状态并不是大多数环境的功能,因此我们将其留给用户自行完成。默认为
None
。tensordict (TensorDict, optional) – 用于重置的可选 tensordict 实例。
break_when_any_done (bool 或 str, optional) –
rollout()
中break_when_any_done
的值。如果设置为"both"
,则在 True 和 False 上都会运行测试。
注意:此函数会重置环境种子。它应该“离线”使用,以检查环境是否已充分构建,但它可能会影响实验的播种,因此应将其排除在训练脚本之外。