lebeausc / MTFL-For-Personalised-DNNs

Code for 'Multi-Task Federated Learning for Personalised Deep Neural Networks in Edge Computing', published in IEEE TPDS.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multi-Task Federated Learning for Personalised Deep Neural Networks in Edge Computing

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.

Requirements

Package Version
python 3.7
pytorch 1.7.0
torchvision 0.8.1
numpy 1.18.5
progressbar2 3.47.0

Data

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/'.

Running

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.

References

[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.

About

Code for 'Multi-Task Federated Learning for Personalised Deep Neural Networks in Edge Computing', published in IEEE TPDS.


Languages

Language:Python 100.0%