快捷方式

MultiAction

class torchrl.envs.transforms.MultiAction(*, dim: int = 1, stack_rewards: bool = True, stack_observations: bool = False)[source]

一个执行父环境中多个动作的转换。

此转换沿特定维度解绑动作,并独立传递每个动作。返回的转换可以是收集到的观测值的堆栈,也可以仅是最后一个观测值(奖励同理,请参见下文参数)。

默认情况下,动作必须沿根 tensordict batch-dims 之后的第一个维度进行堆叠,即

>>> td = policy(td)
>>> actions = td.select(*env.action_keys)
>>> # Adapt the batch-size
>>> actions = actions.auto_batch_size_(td.ndim + 1)
>>> # Step-wise actions
>>> actions = actions.unbind(-1)

如果遇到 “done” 条目,则跳过已达到该状态的 env 的后续步骤。

注意

如果 MultiAction 之前附加了转换,则该转换将被调用多次。如果它之后附加,则它将针对每个宏观步骤调用一次。

关键字参数:
  • dim (int, optional) – 相对于 tensordict ndim 属性的堆叠维度。必须大于 0。默认为 1(batch-dims 之后的第一个维度)。

  • stack_rewards (bool, optional) – 如果为 True,则每个步骤的奖励将在输出 tensordict 中堆叠。如果为 False,则只返回最后一个奖励。奖励规范会相应调整。堆叠维度与动作堆叠维度相同。默认为 True

  • stack_observations (bool, optional) – 如果为 True,则每个步骤的观测值将在输出 tensordict 中堆叠。如果为 False,则只返回最后一个观测值。观测值规范会相应调整。堆叠维度与动作堆叠维度相同。默认为 False

transform_input_spec(input_spec: TensorSpec) TensorSpec[source]

转换输入规范,使结果规范与转换映射匹配。

参数:

input_spec (TensorSpec) – 转换前的规范

返回:

转换后的预期规范

transform_output_spec(output_spec: Composite) Composite[source]

转换输出规范,使结果规范与转换映射匹配。

此方法通常应保持不变。应通过 transform_observation_spec()transform_reward_spec()transform_full_done_spec() 实现更改。:param output_spec: 转换之前的规范 :type output_spec: TensorSpec

返回:

转换后的预期规范

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源