FLgo学习
https://github.com/WwZzz/easyFL
安装:pip install flgo numba
作者:https://zhuanlan.zhihu.com/p/614218973
quick-start
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?
有时间再研究下代码