捷徑

TimeMaxPool

class torchrl.envs.transforms.TimeMaxPool(in_keys: Optional[Sequence[NestedKey]] = None, out_keys: Optional[Sequence[NestedKey]] = None, T: int = 1, reset_key: Optional[NestedKey] = None)[source]

取得最後 T 次觀察中每個位置的最大值。

此轉換會取得所有 in_keys 張量在最後 T 個時間步長中每個位置的最大值。

參數:
  • in_keys (NestedKey 序列, 選用) – 將套用最大池化的輸入鍵。如果留空,則預設為 “observation”。

  • out_keys (NestedKey 序列, 選用) – 輸出將寫入的輸出鍵。如果留空,則預設為 in_keys

  • T (int, 選用) – 應用最大池化的時間步長數。

  • reset_key (NestedKey, 選用) – 要用作部分重置指示器的重置鍵。必須是唯一的。如果未提供,則預設為父環境的唯一重置鍵(如果它只有一個),否則會引發例外。

範例

>>> from torchrl.envs import GymEnv
>>> base_env = GymEnv("Pendulum-v1")
>>> env = TransformedEnv(base_env, TimeMaxPool(in_keys=["observation"], T=10))
>>> torch.manual_seed(0)
>>> env.set_seed(0)
>>> rollout = env.rollout(10)
>>> print(rollout["observation"])  # values should be increasing up until the 10th step
tensor([[ 0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000],
        [ 0.0000,  0.0216,  0.0000],
        [ 0.0000,  0.1149,  0.0000],
        [ 0.0000,  0.1990,  0.0000],
        [ 0.0000,  0.2749,  0.0000],
        [ 0.0000,  0.3281,  0.0000],
        [-0.9290,  0.3702, -0.8978]])

注意

TimeMaxPool 目前僅支援根目錄中的 done 訊號。目前不支援巢狀 done,例如在 MARL 設定中找到的那些。如果需要此功能,請在 TorchRL 儲存庫上提出問題。

forward(tensordict: TensorDictBase) TensorDictBase[source]

讀取輸入 tensordict,並針對選定的鍵套用轉換。

transform_observation_spec(observation_spec: TensorSpec) TensorSpec[source]

轉換觀察規格 (observation spec),使產生的規格與轉換映射 (transform mapping) 相符。

參數:

observation_spec (TensorSpec) – 轉換前的規格。

回傳值:

轉換後預期的規格。

文件

取得 PyTorch 的完整開發者文件

查看文件

教學

取得針對初學者和進階開發人員的深入教學

查看教學

資源

尋找開發資源並獲得問題解答

查看資源