Shortcuts

worker.learner.comm

学习者通信

BaseCommLearner

class ding.worker.learner.comm.base_comm_learner.BaseCommLearner(cfg: EasyDict)[source]
Overview:

CommLearner 的抽象基类。

Interfaces:

__init__, send_policy, get_data, send_learn_info, start, close

Property:

hooks4call

__init__(cfg: EasyDict) None[source]
Overview:

初始化方法。

Arguments:
  • cfg (EasyDict): 配置字典

close() None[source]
Overview:

关闭通信学习器。

abstract get_data(batch_size: int) list[source]
Overview:

从协调器获取批处理的元数据。 将会在基础学习器中注册。

Arguments:
  • batch_size (int): 批量大小。

Returns:
  • stepdata (list): 训练数据的列表,每个元素是一个轨迹。

abstract send_learn_info(learn_info: dict) None[source]
Overview:

将学习信息发送给协调器。 将会在基础学习器中注册。

Arguments:
  • learn_info (dict): 以字典类型的学习信息。

abstract send_policy(state_dict: dict) None[source]
Overview:

将学习者的策略保存在相应的路径中。 将会在基础学习者中注册。

Arguments:
  • state_dict (dict): 运行时策略的状态字典。

start() None[来源]
Overview:

启动通信学习器。

Flask文件系统学习器

class ding.worker.learner.comm.flask_fs_learner.FlaskFileSystemLearner(cfg: EasyDict)[源代码]
Overview:

CommLearner 的一个实现,使用 flask 和文件系统。

Interfaces:

__init__, send_policy, get_data, send_learn_info, start, close

Property:

hooks4call

__init__(cfg: EasyDict) None[source]
Overview:

初始化方法。

Arguments:
  • cfg (EasyDict): 配置字典。

close() None[source]
Overview:

加入学习者线程并关闭仍在运行的学习者。 然后关闭学习者从属和学习者本身。

get_data(batch_size: int) List[Callable][source]
Overview:

获取数据加载函数的列表,这些函数可以通过dataloader实现从文件中读取数据。

Arguments:
  • batch_size (int): 批量大小。

Returns:
  • 数据 (List[Callable]): 一个可调用的数据加载函数列表。

send_learn_info(learn_info: dict) None[source]
Overview:

将学习信息字典存储在队列中,该队列将由回调函数“deal_with_learner_learn”在学习者从节点中检索,然后发送给协调器。

Arguments:
  • learn_info (dict): 学习信息以dict类型表示。键值包括‘learner_step’、‘priority_info’、‘finished_task’等。您可以参考learn_info``(``worker/learner/base_learner.py)获取详细信息。

send_policy(state_dict: dict) None[source]
Overview:

将学习者的策略保存在相应的路径中,由SendPolicyHook调用。

Arguments:
  • state_dict (dict): 策略的状态字典。

start() None[source]
Overview:

启动通信学习器本身和学习器从属。

create_comm_learner

Overview:

给定键(comm_learner_name),如果在comm_map的值中,则创建一个新的comm learner实例,否则抛出KeyError。换句话说,派生的comm learner必须首先注册,然后才能调用create_comm_learner来获取实例。

Arguments:
  • cfg (dict): 学习器配置。必要的键:[import_names, comm_learner_type]。

Returns:
  • 学习者 (BaseCommLearner): 创建的新通信学习者,应该是comm_map值之一的实例。