ray.rllib.algorithms.algorithm.Algorithm#

class ray.rllib.algorithms.algorithm.Algorithm(config: AlgorithmConfig | None = None, env=None, logger_creator: Callable[[], Logger] | None = None, **kwargs)[源代码]#

基类:Checkpointable, Trainable, AlgorithmBase

一个负责优化一个或多个策略的RLlib算法。

算法在 self.env_runner_group 下包含一个 EnvRunnerGroup。EnvRunnerGroup 由一个本地 EnvRunner(self.env_runner_group.local_env_runner)组成,作为要训练的神经网络的参考副本,并且可选地包含一个或多个用于并行生成环境样本的远程 EnvRunner。EnvRunnerGroup 具有容错性和弹性。它跟踪所有管理的远程 EnvRunner 角色的健康状态。因此,算法永远不应直接访问底层角色句柄。相反,应始终通过分配了底层 EnvRunner ID 的所有 foreach API 来访问它们。

每个 EnvRunners(远程或本地)包含一个 PolicyMap,它本身可能包含一个策略用于单代理训练,或者一个或多个策略用于多代理训练。策略会定期使用 ray.remote 调用自动同步。确切的同步逻辑取决于所使用的特定算法,但这通常发生在从本地工作者到所有远程工作者,并在每次训练更新之后。

你可以通过从 Algorithm 或其任何内置子类派生来编写自己的算法类。这允许你重写 training_step 方法以实现你自己的算法逻辑。你可以在各自的主 .py 文件中找到不同内置算法的 training_step() 方法,例如 rllib.algorithms.dqn.dqn.py 或 rllib.algorithms.impala.impala.py。

算法公开的最重要API方法是 train()evaluate()save_to_path()restore_from_path()

方法

__init__

初始化一个算法实例。

add_module

将一个新的(单智能体)RLModule 添加到此算法的 MARLModule 中。

add_policy

向此算法添加新策略。

compute_actions

在本地Worker上为指定策略计算一个动作。

compute_single_action

在本地工作者上为指定策略计算一个动作。

evaluate

evaluation_config 设置下评估当前策略。

export_model

基于 export_formats 导出模型。

export_policy_checkpoint

将导出策略检查点保存到本地目录并返回一个 AIR 检查点。

export_policy_model

将具有给定 policy_id 的导出策略模型导出到本地目录。

from_checkpoint

从给定的检查点创建一个新的算法实例。

from_state

从状态对象中恢复算法。

get_config

返回由 Tune 传递的配置。

get_default_policy_class

返回一个给定配置的默认策略类。

get_metadata

返回可写入的JSON元数据,进一步描述实现类。

get_module

返回具有 model_id 的(单一代理)RLModule(如果未找到 ID 则返回 None)。

get_policy

返回指定id的退货政策,或为None。

get_weights

返回一个将模块/策略ID映射到权重的字典。

merge_algorithm_configs

将完整的算法配置字典与部分覆盖字典合并。

remove_module

从此算法的MARLModule中移除一个新的(单智能体)RLModule。

remove_policy

从此算法中移除一个策略。

reset

重置试用以用于新的配置。

reset_config

在不重新启动试验的情况下重置配置。

restore

从给定的模型检查点恢复训练状态。

restore_workers

尝试恢复不健康的 EnvRunner,如果成功,则与本地同步。

save

将当前模型状态保存到检查点。

save_checkpoint

将检查点导出到本地目录。

save_to_path

将实现类的状态(或 state)保存到 path

set_weights

通过模块/策略ID设置RL模块/策略的权重。

step

实现主 Algorithm.train() 逻辑。

stop

释放此可训练对象使用的所有资源。

train

运行一次训练的逻辑迭代。

train_buffered

运行多个训练迭代。

training_step

算法的默认单次迭代逻辑。

validate_env

此算法类的环境验证器函数。

属性

CLASS_AND_CTOR_ARGS_FILE_NAME

METADATA_FILE_NAME

STATE_FILE_NAME

env_runner

eval_env_runner

iteration

当前训练迭代。

logdir

此可训练模型的结果和检查点的目录。

training_iteration

当前训练迭代次数(与 self.iteration 相同)。

trial_id

Trainable 对应试验的试验 ID。

trial_name

与此可训练对象对应的试验名称。

trial_resources

当前分配给此可训练对象试验的资源。