Skip to content
desperadoccy edited this page May 28, 2024 · 4 revisions

客户端模块介绍

client模块主要用于模拟联邦学习中的客户端。

  • path: 该客户端类的路径
  • params: 初始化该类所需的params
  • model: 该客户端所使用的模型
  • epochs: 该客户端每次迭代的训练轮数
  • batch_size: 该客户端每次迭代的batch_size
  • loss: 该客户端所使用的损失函数可以自定义使用loss模块中的函数|loss会通过lossfactory创建
  • mu: 该客户端所使用的FedProx算法的近端项系数参数(由于很多算法都有mu参数,因此放在了基类中)
  • optimizer: 该客户端所使用的优化器
  • transform: **[optinal]**该客户端所使用的数据预处理函数|可以自定义使用transform模块中的函数
  • target_transform: **[optinal]**该客户端所使用的标签预处理函数|可以自定义使用transform模块中的函数

现有类介绍

本节下介绍的参数填写在params字段中

Client

该类为基类,定义了必须实现的函数,以及基本属性

NormalClient

支持上传基本参数的基本客户端类,支持FedAvg,FedAsync等基本算法

自行实现的算法建议继承该类

SemiClient

支持分组FL的基本客户端类

TestClient

支持客户端每轮进行acc测试的客户端

ActiveClient

该类训练结束会主动获取服务器模型,因此服务端需要关闭调度,配合NoSchedule使用

NovaClient

FedNova算法的客户端

BNClient

FedBN算法的客户端

DLClient

实现FedDL算法的客户端

ProxClient

实现FedProx算法的客户端,支持本地迭代次数随机化

More

需要增加特性,可自行继承Client及其子类进行拓展

Clone this wiki locally