SignTransform¶
- class torchrl.envs.transforms.SignTransform(in_keys=None, out_keys=None, in_keys_inv=None, out_keys_inv=None)[source]¶
计算 TensorDict 值符号的转换。
此转换读取
in_keys
和in_keys_inv
中的张量,计算其元素的符号,并将结果符号张量分别写入out_keys
和out_keys_inv
。- 参数:
in_keys (嵌套键列表) – 输入项(读取)
out_keys (嵌套键列表) – 输入项(写入)
in_keys_inv (嵌套键列表) – 在
inv()
调用期间的输入项(读取)。out_keys_inv (嵌套键列表) – 在
inv()
调用期间的输入项(写入)。
示例
>>> from torchrl.envs import GymEnv, TransformedEnv, SignTransform >>> base_env = GymEnv("Pendulum-v1") >>> env = TransformedEnv(base_env, SignTransform(in_keys=['observation'])) >>> r = env.rollout(100) >>> obs = r["observation"] >>> assert (torch.logical_or(torch.logical_or(obs == -1, obs == 1), obs == 0.0)).all()
- transform_observation_spec(observation_spec: TensorSpec) TensorSpec [source]¶
转换观察规范,使结果规范与转换映射匹配。
- 参数:
observation_spec (TensorSpec) – 转换前的规范
- 返回:
转换后的预期规范
- transform_reward_spec(reward_spec: TensorSpec) TensorSpec [source]¶
转换奖励规范,使结果规范与转换映射匹配。
- 参数:
reward_spec (TensorSpec) – 转换前的规范
- 返回:
转换后的预期规范