快捷方式

MultiThreadedEnv

torchrl.envs.MultiThreadedEnv(*args, **kwargs)[source]

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

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

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

基於多執行緒的 ParallelEnv 替代方案。它更快,因為它不需要啟動新程序,但靈活性較低,因為它只支援 EnvPool 庫中實現的環境。目前只支援同步執行模式,即批處理大小等於 worker 數量,詳情請參閱 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 環境建構函式的關鍵字引數。

  • 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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並解答您的疑問

檢視資源