federated learning
1.0.0
这部分是从分散数据的深入网络进行沟通效率学习论文的复制品
到目前为止,仅对MNIST和CIFAR10(IID和非IID)进行实验。
注意:如果没有并行计算,脚本将很慢。
python> = 3.6
pytorch> = 0.4
MLP和CNN模型由:
python main_nn.py
使用MLP和CNN联合学习由以下方式生产:
python main_fed.py
请参阅options.py中的参数。
例如:
python main_fed.py-dataset mnist -iid -num_channels 1 - 模型CNN -epochs 50 -gpu 0
--all_clients平均所有客户端模型
NB:对于CIFAR-10, num_channels必须为3。
结果显示在表1和表2中,其中参数c = 0.1,b = 10,e = 5。
表1。学习率为0.01的10个时期训练的结果
| 模型 | ACC。 iid | ACC。非IID |
|---|---|---|
| FedAvg-MLP | 94.57% | 70.44% |
| FedAvg-CNN | 96.59% | 77.72% |
表2。学习率为0.01的50个时期训练的结果
| 模型 | ACC。 iid | ACC。非IID |
|---|---|---|
| FedAvg-MLP | 97.21% | 93.03% |
| FedAvg-CNN | 98.60% | 93.81% |
致谢给Youkaichao。
McMahan,Brendan,Eider Moore,Daniel Ramage,Seth Hampson和Blaise Aguera Y Arcas。从分散数据中对深网的沟通有效学习。人工智能和统计学(AISTATS),2017年。
shaoxiong ji。 (2018年3月30日)。联合学习的Pytorch实施。 Zenodo。 http://doi.org/10.5281/Zenodo.4321561