快捷方式

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” 條目,將跳過已達到該狀態的環境的後續步驟。

注意

如果在 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: 轉換前的 spec :type output_spec: TensorSpec

返回:

轉換後的預期規範

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源