This experiment code accompanies the paper
Sameer Bibikar, Haris Vikalo, Zhangyang Wang, and Xiaohan Chen, "Federated Dynamic Sparse Training: Computing Less, Communicating Less, Yet Learning Better," 2021.
- Python 3.6 or greater
- PyTorch, torchvision
- tqdm
Run git submodule init followed by git submodule update to download the dataset code we use.
| Experiment | Command line |
|---|---|
| FedAvg on CIFAR-10 | python3 dst.py --dataset cifar10 --sparsity 0.0 |
| FedProx on CIFAR-10 (mu = 1) | python3 dst.py --dataset cifar10 --sparsity 0.0 --prox 1 |
| FedDST on CIFAR-10 (S=0.8, alpha=0.01, R_adj=15) | python3 dst.py --dataset cifar10 --sparsity 0.8 --readjustment-ratio 0.01 --rounds-between-readjustments 15 |
| FedDST on CIFAR-100 (S=0.5, alpha=0.01, R_adj=10) | python3 dst.py --dataset cifar100 --sparsity 0.5 --readjustment-ratio 0.01 --distribution dirichlet --beta 0.1 |
| FedDST+FedProx on CIFAR-10 (S=0.8, alpha=0.01, R_adj=15, mu=1) | python3 dst.py --dataset cifar10 --sparsity 0.8 --readjustment-ratio 0.01 --rounds-between-readjustments 15 --prox 1 |
| RandomMask on MNIST (S=0.8) | python3 dst.py --dataset mnist --sparsity 0.8 --readjustment-ratio 0.0 |
| PruneFL on MNIST | python3 prunefl.py --dataset mnist --rounds-between-readjustments 50 --initial-rounds 1000 |