Code accompanying the paper "Decentralized Federated Learning through Proxy Model Sharing" published in Nature Communications.
Authors: Shivam Kalra*, Junfeng Wen*, Jesse C. Cresswell*, Maksims Volkovs, Hamid R. Tizhoosh†
- * Denotes equal contribution
- † University of Waterloo / Vector Institute
- Python 3.9
conda create -n ProxyFL python=3.9
conda activate ProxyFL
- PyTorch 1.9.0
conda install pytorch=1.9.0 torchvision=0.10.0 numpy=1.21.2 -c pytorch
- mpi4py 3.1.2
conda install -c conda-forge mpi4py=3.1.2
- opacus 0.14.0
pip install 'opacus==0.14.0'
- matplotlib 3.4.3
conda install -c conda-forge matplotlib=3.4.3
Download data via
bash download_data.sh
Then run the script
bash run_exp.sh
If you find this code useful in your research, please cite the following paper:
@article{kalra2021proxyfl,
author={Kalra, Shivam and Wen, Junfeng and Cresswell, Jesse C. and Volkovs, Maksims and Tizhoosh, H. R.},
title={Decentralized federated learning through proxy model sharing},
journal={Nature Communications},
year={2023},
month={May},
day={22},
volume={14},
number={1},
pages={2899},
issn={2041-1723},
doi={10.1038/s41467-023-38569-4}
}