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