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