捷徑

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),否則將使用 one-hot 編碼 (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() 之後,允許環境 (envs) 立即處於 done 狀態。預設值為 False

範例

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

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

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

檢視教學

資源

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

檢視資源