一、References
flwr api-docs
本篇博客主要记录flwr中主要使用到的api备忘。
二、API
2.1 Client抽象类
class flwr.client.NumpyClient
Abstract base class for Flower clients using NumPy.
继承该类要实现以下几个函数:
-
evaluate(parameters, config):在本地数据集上评估给定模型
参数:
parameters config 现有的全局模型的参数 dict形式,配置参数,可用于从Server端向Client端传任意值 返回:
loss num_examples metrics 给定模型在本地数据集上计算出的损失值 用于评估的examples的数量 dict形式,将如bool、bytes、floa、int或者str类型的值映射到string键上,可用于向Server端反传任意值 -
fit(parameters, config):在本地数据集上训练模型
参数:
parameters config 当前的全局模型参数 配置参数,通过该参数Server端可以对Client端的训练产生影响,可用于从Server端向Client端传递任意值 返回:
parameters num_exapmles metrics 本地传回的模型参数 用于训练的数据量 dict形式,可用于传递任意值到Server端 -
get_parameters(config):
参数:
config Server端请求的配置参数,可用于告诉Client端需要什么参数 返回:
parameters 以Numpy ndarrays的形式返回本地模型的参数 -
get_properties(config):返回Client的一些properties
参数:
config |
---|
Server端请求的配置参数,可用于告诉Client端需要什么参数 |
返回:
properties |
---|
dict形式,可用于向Server端传递任意property值 |
2.2 Client启动训练
flwr.client.start_numpy_client(*, server_address: str, client: NumPyClient, grpc_max_message_length: int = 536870912, root_certificates: Optional[bytes] = None) → None
参数:
server_address | client | grpc_max_message_length | root_certificates |
---|---|---|---|
Server端的IPv6地址 | 实现了抽象类的Client类 | 与Flower Server端交换的最长gRPC信息长度 | The PEM-encoded root certificates a byte string,如果提供该参数,可以建立一个SSL-enabled Server |