ray.rllib.algorithms.algorithm_config.AlgorithmConfig.学习者#

AlgorithmConfig.learners(*, num_learners: int | None = <ray.rllib.utils.from_config._NotProvided object>, num_cpus_per_learner: int | float | None = <ray.rllib.utils.from_config._NotProvided object>, num_gpus_per_learner: int | float | None = <ray.rllib.utils.from_config._NotProvided object>, local_gpu_idx: int | None = <ray.rllib.utils.from_config._NotProvided object>)[源代码]#

设置 LearnerGroup 和 Learner 工作器相关的配置。

参数:
  • num_learners – 用于更新 RLModule 的学习者工作者的数量。值为 0 表示训练在主进程的本地学习者上进行,使用 CPU 或 1 个 GPU(由 num_gpus_per_learner 决定)。对于多 GPU 训练,您必须将 num_learners 设置为 > 1,并相应地设置 num_gpus_per_learner`(例如,总共 4 GPU 且模型适合 1 GPU:`num_learners=4; num_gpus_per_learner=1 或者 总共 4 个 GPU 且模型需要 2 个 GPU:num_learners=2; num_gpus_per_learner=2)。

  • num_cpus_per_learner – 每个学习者工作器分配的CPU数量。仅在每个学习者内部的自定义处理管道需要多个CPU核心时才需要。如果 num_learners=0,则忽略此项。

  • num_gpus_per_learner – 每个学习者工作器分配的GPU数量。如果 num_learners=0,任何大于0的值将在主进程的单个GPU上运行训练,而值为0则在主进程的CPU上运行训练。如果 num_gpus_per_learner 大于0,则不应更改 `num_cpus_per_learner`(从其默认值1)。

  • local_gpu_idx – 如果 num_gpus_per_learner > 0,且 num_learners < 2,则 RLlib 使用此 GPU 索引进行训练。这是可用 CUDA 设备的索引。例如,如果 os.environ["CUDA_VISIBLE_DEVICES"] = "1"local_gpu_idx=0,RLlib 使用节点上 ID=1 的 GPU。

返回:

这个更新的 AlgorithmConfig 对象。