快捷方式

MultiThreadedEnv

torchrl.envs.MultiThreadedEnv(*args, **kwargs)[原始碼]

基於 EnvPool 的環境的多執行緒執行。

GitHub: https://github.com/sail-sg/envpool

論文: https://arxiv.org/abs/2206.10558

這是 ParallelEnv 的一個替代方案,基於多執行緒。它速度更快,因為它不需要啟動新程序,但靈活性較低,因為它只支援 EnvPool 庫中實現的環境。目前,它只支援同步執行模式,當批處理大小等於工作執行緒數量時,請參閱 https://envpool.readthedocs.io/en/latest/content/python_interface.html#batch-size

引數:
  • num_workers (int) – 同時執行的環境數量。將與 ~.batch_size 的內容相同。

  • env_name (str) – 要構建的環境的名稱。

關鍵字引數:
  • create_env_kwargs (Dict[str, Any], optional) – 將傳遞給 envpool 環境建構函式的 kwargs。

  • categorical_action_encoding (bool, optional) – 如果為 True,則分類規範將轉換為 TorchRL 等效項 (torchrl.data.Categorical),否則將使用獨熱編碼 (torchrl.data.OneHot)。預設為 False

  • disable_env_checker (bool, optional) – 僅適用於 gym > 0.24。如果為 True (這些版本的預設值),則不會執行環境檢查器。

  • frame_skip (int, optional) – 如果提供,表示相同的動作需要重複多少步。返回的觀察值將是序列的最後一個觀察值,而獎勵將是跨步驟的獎勵總和。

  • device (torch.device, optional) – 如果提供,資料將被轉換到的裝置。預設為 torch.device("cpu")

  • allow_done_after_reset (bool, optional) – 如果為 True,則允許在呼叫 reset() 後立即將環境設定為 done。預設為 False

示例

>>> env = MultiThreadedEnv(num_workers=3, env_name="Pendulum-v1")
>>> env.reset()
>>> env.rand_step()
>>> env.rollout(5)
>>> env.close()

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

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

檢視教程

資源

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

檢視資源