MultiThreadedEnvWrapper¶
- torchrl.envs.MultiThreadedEnvWrapper(*args, **kwargs)[原始碼]¶
基於 envpool 的多執行緒環境封裝器。
GitHub: https://github.com/sail-sg/envpool
論文: https://arxiv.org/abs/2206.10558
- 引數:
env (envpool.python.envpool.EnvPoolMixin) – 要封裝的 envpool 例項。
categorical_action_encoding (bool, 可選) – 如果為
True,分類規格將轉換為 TorchRL 等效項 (torchrl.data.Categorical),否則將使用獨熱編碼 (torchrl.data.OneHot)。預設為False。
- 關鍵字引數:
disable_env_checker (bool, 可選) – 僅適用於 gym > 0.24。如果為
True(這些版本的預設值),則不會執行環境檢查器。frame_skip (int, 可選) – 如果提供,表示重複同一動作的步數。返回的觀測值將是序列中的最後一個觀測值,而獎勵將是所有步數的獎勵總和。
device (torch.device, 可選) – 如果提供,資料將被轉換到的裝置。預設為
torch.device("cpu")。allow_done_after_reset (bool, 可選) – 如果為
True,則允許環境在呼叫reset()後立即處於done狀態。預設為False。
- 變數:
batch_size – 同時執行的環境數量。
示例
>>> import envpool >>> from torchrl.envs import MultiThreadedEnvWrapper >>> env_base = envpool.make( ... task_id="Pong-v5", env_type="gym", num_envs=4, gym_reset_return_info=True ... ) >>> env = MultiThreadedEnvWrapper(envpool_env) >>> env.reset() >>> env.rand_step()