Awesome
Does Federated Learning Really Need Backpropagation?
Here is the official implementation of the model BAFFLE in paper Does Federated Learning Really Need Backpropagation?
Setup
Install Package Dependencies
python >= 3.6
torch >= 1.2.0
torchvision >= 0.4.0
wandb
ast
torch_ema
BAFFLE For MNIST with IID Participation ($C=10,\sigma=10^{-4}$)
Evaluate BAFFLE with Different K
# For LeNet
python main.py --K 100 --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --ema --normalization NoNorm
# For WRN-10-2
python main.py --K 100 --net-name wideresnet --depth 10 --width 2 --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --ema
Evaluate BAFFLE with Different Guidelines
# w/o EMA
python main.py --K 100 --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --normalization NoNorm
# ReLU
python main.py --K 100 --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --normalization NoNorm --ema --activation "ReLU"
# SELU
python main.py --K 100 --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --normalization NoNorm --ema --activation "SELU"
# Central Scheme
python main.py --K 50 --fd-format center --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --normalization NoNorm --ema
Evaluate BAFFLE with Epoch-level Communications
# One Epoch Communication
python main.py --K 100 --fedopt FedAvg --dataset MNIST --epochs 20 --lr 1e-2 --optimizer Adam --ema --normalization NoNorm