ClipTransform¶
- 类 torchrl.envs.transforms.ClipTransform(in_keys=None, out_keys=None, in_keys_inv=None, out_keys_inv=None, *, low=None, high=None)[源代码]¶
用于裁剪输入(状态、动作)或输出(观测、奖励)值的 transform。
此 transform 可以接受多个输入或输出键,但每个 transform 仅支持一个值。如果需要多个裁剪值,则应将多个 transform 依次附加。
- 参数:
in_keys (NestedKeys 列表) – 输入条目 (读取)
out_keys (NestedKeys 列表) – 输入条目 (写入)
in_keys_inv (NestedKeys 列表) – 在
inv()
调用期间的输入条目 (读取)。out_keys_inv (NestedKeys 列表) – 在
inv()
调用期间的输入条目 (写入)。
- 关键字参数:
low (标量, 可选) – 裁剪空间的下界。
high (标量, 可选) – 裁剪空间的上界。
注意
只提供
low
或high
参数中的一个是被允许的,但至少必须提供一个。示例
>>> from torchrl.envs.libs.gym import GymEnv >>> base_env = GymEnv("Pendulum-v1") >>> env = TransformedEnv(base_env, ClipTransform(in_keys=['observation'], low=-1, high=0.1)) >>> r = env.rollout(100) >>> assert (r["observation"] <= 0.1).all()
- transform_observation_spec(observation_spec: TensorSpec) TensorSpec [源代码]¶
转换观测空间的 spec,使结果 spec 与 transform 映射匹配。
- 参数:
observation_spec (TensorSpec) – transform 前的 spec
- 返回:
transform 后的预期 spec
- transform_reward_spec(reward_spec: TensorSpec) TensorSpec [源代码]¶
转换奖励空间的 spec,使结果 spec 与 transform 映射匹配。
- 参数:
reward_spec (TensorSpec) – transform 前的 spec
- 返回:
transform 后的预期 spec