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 对象。