VecGymEnvTransform¶
- class torchrl.envs.transforms.VecGymEnvTransform(final_name='final')[原始碼]¶
一種 GymWrapper 子類別的轉換,以一致的方式處理自動重設。
Gym、gymnasium 和 SB3 提供向量化(讀取、平行或批次)的環境,這些環境會自動重設。發生這種情況時,由動作產生的實際觀察會儲存在 info 中的一個鍵中。類別
torchrl.envs.libs.gym.terminal_obs_reader
會讀取該觀察,並將其儲存在輸出 tensordict 中的"final"
鍵中。反過來,這個轉換會讀取該最終資料,將其與實際重設產生的觀察值交換,並將重設輸出儲存在私有容器中。產生的資料真正反映了步驟的輸出。這個類別適用於 gym 0.13 到最新的 gymnasium 版本。
注意
Gym 版本 < 0.22 不會傳回最終觀察值。對於這些版本,我們只需用 NaN 填寫下一個觀察值(因為它已遺失),並在下一步執行交換。
然後,當呼叫 env.reset 時,儲存的資料會寫回其應有的位置(且 reset 不執行任何操作)。
每當使用非同步環境建立包裝函式時,此轉換會自動附加到 gym 環境。
- 參數:
final_name (str, optional) – dict 中最終觀察值的名稱。預設為 “final”。
注意
一般來說,不應直接處理這個類別。每當向量化環境放置在
GymWrapper
中時,就會建立這個類別。- transform_observation_spec(observation_spec: TensorSpec) TensorSpec [原始碼]¶
轉換觀察值規格,使產生的規格符合轉換映射。
- 參數:
observation_spec (TensorSpec) – 轉換前的規格 (spec)
- 回傳值:
轉換後預期的規格 (spec)