This repository contains the code to run simulations from the Multi-Task Federated Learning for Personalised Deep Neural Networks in Edge Computing, also published in IEEE TPDS journal.
Contains implementations of FedAvg, FedAvg-Adam, FedAdam [1], Per-FedAvg [2] and pFedMe [3] as described in the paper.
Package | Version |
---|---|
python | 3.7 |
pytorch | 1.7.0 |
torchvision | 0.8.1 |
numpy | 1.18.5 |
progressbar2 | 3.47.0 |
Requires MNIST and CIFAR10 datasets. For MNIST, the .gz files should be saved in a folder with path '../MNIST_data/'
, and for CIFAR10, the python pickle files should be saved in the folder '../CIFAR10_data/'
.
Run main.py. Each experiment setting requires different command-line arguments. Will save a .pkl
file in the same directory containing experiment data as numpy arrays.
[1] Adaptive Federated Optimization, Reddi et al. ICLR 2021.
[2] Personalized Federated Learning with Theoretical Guarantees: A Model-Agnostic Meta-Learning Approach, Fallah et al. NeurIPS 2020.
[3] Personalized Federated Learning with Moreau Envelopes, Dinh et al. NeurIPS 2020.