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.DiscreteTensorSpec
),否则将使用独热编码 (torchrl.data.OneHotTensorSpec
)。默认为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()