https://github.com/WwZzz/easyFL
安装:pip install flgo numba
作者:https://zhuanlan.zhihu.com/p/614218973
quick-start
python
import flgo
import flgo.benchmark.mnist_classification as mnist
import flgo.benchmark.partition as fbp
import flgo.algorithm.fedavg as fedavg
# Line 1: Create a typical federated learning task
flgo.gen_task_by_(mnist, fbp.IIDPartitioner(num_clients=5), './my_task')
# Line 2: Running FedAvg on this task
fedavg_runner = flgo.init('./my_task', fedavg, {'gpu': [0,], 'num_rounds':20, 'num_epochs': 1})
# Line 3: Start Training
fedavg_runner.run()
# Show Training Result
import flgo.experiment.analyzer as fea
# Create the analysis plan
analysis_plan = {
'Selector':{'task': './my_task', 'header':['fedavg',], },
'Painter':{'Curve':[{'args':{'x':'communication_round', 'y':'val_loss'}}]},
}
fea.show(analysis_plan)

数据异构
- diversity 类型
- Dirichlet 分布
讨论两种数据异构类型,对训练准确率的影响
不知道为什么改 num_clients 就会报错,难道只能是100?
有时间再研究下代码