-
Notifications
You must be signed in to change notification settings - Fork 21
client
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字段中
该类为基类,定义了必须实现的函数,以及基本属性
支持上传基本参数的基本客户端类,支持FedAvg,FedAsync等基本算法
自行实现的算法建议继承该类
支持分组FL的基本客户端类
支持客户端每轮进行acc测试的客户端
该类训练结束会主动获取服务器模型,因此服务端需要关闭调度,配合NoSchedule使用
FedNova算法的客户端
FedBN算法的客户端
实现FedDL算法的客户端
实现FedProx算法的客户端,支持本地迭代次数随机化
需要增加特性,可自行继承Client及其子类进行拓展
Getting Started - 整体流程 - Module Guide - 现有算法 - Contact Us