From da1c8f750bc466843f10e8e0b059905ca41433e3 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Tue, 10 Jan 2023 00:01:28 +0100 Subject: [PATCH] Flower Baseline: FedAvg MNIST (#1497) --- .../publications/fedavg_mnist/.gitignore | 4 + .../publications/fedavg_mnist/README.md | 87 ++++++++++ .../publications/fedavg_mnist/__init__.py | 0 .../publications/fedavg_mnist/client.py | 122 ++++++++++++++ .../publications/fedavg_mnist/dataset.py | 121 ++++++++++++++ .../fedavg_mnist/docs/centralized_metrics.png | Bin 0 -> 56531 bytes .../fedavg_mnist/docs/conf/config.yaml | 9 ++ ...ized_metrics_cli=100_rds=1000_stag=0.0.png | Bin 0 -> 33982 bytes ...lized_metrics_cli=100_rds=200_stag=0.5.png | Bin 0 -> 38173 bytes ...lized_metrics_cli=100_rds=200_stag=0.9.png | Bin 0 -> 45399 bytes ...ralized_metrics_cli=100_rds=200_stag=0.png | Bin 0 -> 35314 bytes ...st_C=100_B=1000000_E=1_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes ...t_C=100_B=1000000_E=20_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes ...st_C=100_B=1000000_E=5_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes .../hist_C=100_B=10_E=1_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes .../hist_C=100_B=10_E=5_R=1000_stag=0.0.npy | Bin 0 -> 17348 bytes .../hist_C=100_B=50_E=1_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes .../hist_C=100_B=50_E=5_R=1000_stag=0.0.npy | Bin 0 -> 35296 bytes .../hist_C=10_B=10_E=1_R=5_stag=0.0.npy | Bin 0 -> 623 bytes .../hist_C=1_B=10_E=1_R=1_stag=0.0.npy | Bin 0 -> 511 bytes .../publications/fedavg_mnist/main.py | 80 ++++++++++ .../publications/fedavg_mnist/model.py | 150 ++++++++++++++++++ .../publications/fedavg_mnist/tests.py | 35 ++++ .../publications/fedavg_mnist/utils.py | 133 ++++++++++++++++ 24 files changed, 741 insertions(+) create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/.gitignore create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/README.md create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/__init__.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/client.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/dataset.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/centralized_metrics.png create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/conf/config.yaml create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=1000_stag=0.0.png create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=200_stag=0.5.png create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=200_stag=0.9.png create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=200_stag=0.png create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=1_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=20_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=5_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=10_E=1_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=10_E=5_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=50_E=1_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=50_E=5_R=1000_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=10_B=10_E=1_R=5_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=1_B=10_E=1_R=1_stag=0.0.npy create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/main.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/model.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/tests.py create mode 100644 baselines/flwr_baselines/publications/fedavg_mnist/utils.py diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/.gitignore b/baselines/flwr_baselines/publications/fedavg_mnist/.gitignore new file mode 100644 index 000000000000..d478002b47a1 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/.gitignore @@ -0,0 +1,4 @@ +dataset/ +outputs/ +playground.ipynb +multirun/ diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/README.md b/baselines/flwr_baselines/publications/fedavg_mnist/README.md new file mode 100644 index 000000000000..c5e2f1ac0e66 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/README.md @@ -0,0 +1,87 @@ +# Federated Averaging MNIST + +The following baseline replicates the experiments in *Communication-Efficient Learning of Deep Networks from Decentralized Data* (McMahan et al., 2017), which was the first paper to coin the term Federated Learning and to propose the FederatedAveraging algorthim. + +**Paper Abstract:** + +
+Modern mobile devices have access to a wealth +of data suitable for learning models, which in turn +can greatly improve the user experience on the +device. For example, language models can improve speech recognition and text entry, and image models can automatically select good photos. +However, this rich data is often privacy sensitive, +large in quantity, or both, which may preclude +logging to the data center and training there using +conventional approaches. We advocate an alternative that leaves the training data distributed on +the mobile devices, and learns a shared model by +aggregating locally-computed updates. We term +this decentralized approach Federated Learning. +We present a practical method for the federated +learning of deep networks based on iterative +model averaging, and conduct an extensive empirical evaluation, considering five different model architectures and four datasets. These experiments +demonstrate the approach is robust to the unbalanced and non-IID data distributions that are a +defining characteristic of this setting. Communication costs are the principal constraint, and +we show a reduction in required communication +rounds by 10–100× as compared to synchronized +stochastic gradient descent +
+ +**Paper Authors:** + +H. Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson, and Blaise Aguera y Arcas. + + +Note: If you use this implementation in your work, please remember to cite the original authors of the paper. + +**[Link to paper.](https://arxiv.org/abs/1602.05629)** + +## Training Setup + +### CNN Architecture + +The CNN architecture is detailed in the paper and used to create the **Federated Averaging MNIST** baseline. + +| Layer | Details| +| ----- | ------ | +| 1 | Conv2D(1, 32, 5, 1, 1)
ReLU, MaxPool2D(2, 2, 1) | +| 2 | Conv2D(32, 64, 5, 1, 1)
ReLU, MaxPool2D(2, 2, 1) | +| 3 | FC(64 * 7 * 7, 512)
ReLU | +| 5 | FC(512, 10) | + +### Training Paramaters + +| Description | Value | +| ----------- | ----- | +| loss | cross entropy loss | +| optimizer | SGD | +| learning rate | 0.1 (by default) | +| local epochs | 5 (by default) | +| local batch size | 10 (by default) | + +## Running experiments + +The `config.yaml` file containing all the tunable hyperparameters and the necessary variables can be found under the `conf` folder. +[Hydra](https://hydra.cc/docs/tutorials/) is used to manage the different parameters experiments can be ran with. + +To run using the default parameters, just enter `python main.py`, if some parameters need to be overwritten, you can do it like in the following example: + +```sh +python main.py num_epochs=5 num_rounds=1000 iid=True +``` + +Results will be stored as timestamped folders inside either `outputs` or `multiruns`, depending on whether you perform single- or multi-runs. + +### Example output + +To help visualize results, the script also plots evaluation curves. Here is an example: + +

+ Centralized evaluation results +

+ +You will also find the saved history in the `docs/results/` folder, +here `C` is referring to the number of clients, `B` the batch size, +`E` the number of local epochs, `R` the number of rounds, and `stag` +the proportion of clients that are unreachable at each round. + + diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/__init__.py b/baselines/flwr_baselines/publications/fedavg_mnist/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/client.py b/baselines/flwr_baselines/publications/fedavg_mnist/client.py new file mode 100644 index 000000000000..95ef8f12ac81 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/client.py @@ -0,0 +1,122 @@ +# pylint: disable=too-many-arguments +"""Defines the MNIST Flower Client and a function to instantiate it.""" + + +from collections import OrderedDict +from typing import Callable, List, Tuple + +import flwr as fl +import numpy as np +import torch +from torch.utils.data import DataLoader + +from flwr_baselines.publications.fedavg_mnist import model +from flwr_baselines.publications.fedavg_mnist.dataset import load_datasets + + +class FlowerClient(fl.client.NumPyClient): + """Standard Flower client for CNN training.""" + + def __init__( + self, + net: torch.nn.Module, + trainloader: DataLoader, + valloader: DataLoader, + device: torch.device, + num_epochs: int, + learning_rate: float, + ): + self.net = net + self.trainloader = trainloader + self.valloader = valloader + self.device = device + self.num_epochs = num_epochs + self.learning_rate = learning_rate + + def get_parameters(self, config) -> List[np.ndarray]: + """Returns the parameters of the current net.""" + return [val.cpu().numpy() for _, val in self.net.state_dict().items()] + + def set_parameters(self, parameters: List[np.ndarray]) -> None: + """Changes the parameters of the model using the given ones.""" + params_dict = zip(self.net.state_dict().keys(), parameters) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + self.net.load_state_dict(state_dict, strict=True) + + def fit( + self, parameters: List[np.ndarray], config + ) -> Tuple[List[np.ndarray], int, dict]: + """Implements distributed fit function for a given client.""" + self.set_parameters(parameters) + model.train( + self.net, + self.trainloader, + self.device, + epochs=self.num_epochs, + learning_rate=self.learning_rate, + ) + return self.get_parameters(self.net), len(self.trainloader), {} + + def evaluate(self, parameters: List[np.ndarray], config): + """Implements distributed evaluation for a given client.""" + self.set_parameters(parameters) + loss, accuracy = model.test(self.net, self.valloader, self.device) + return float(loss), len(self.valloader), {"accuracy": float(accuracy)} + + +def gen_client_fn( + device: torch.device, + iid: bool, + num_clients: int, + num_epochs: int, + batch_size: int, + learning_rate: float, +) -> Tuple[Callable[[str], FlowerClient], DataLoader]: + """Generates the client function that creates the Flower Clients. + + Parameters + ---------- + device : torch.device + The device on which the the client will train on and test on. + iid : bool + The way to partition the data for each client, i.e. whether the data + should be independent and identically distributed between the clients + or if the data should first be sorted by labels and distributed by chunks + to each client (used to test the convergence in a worst case scenario) + num_clients : int + The number of clients present in the setup + num_epochs : int + The number of local epochs each client should run the training for before + sending it to the server. + batch_size : int + The size of the local batches each client trains on. + learning_rate : float + The learning rate for the SGD optimizer of clients. + + Returns + ------- + Tuple[Callable[[str], FlowerClient], DataLoader] + A tuple containing the client function that creates Flower Clients and + the DataLoader that will be used for testing + """ + trainloaders, valloaders, testloader = load_datasets( + iid=iid, num_clients=num_clients, batch_size=batch_size + ) + + def client_fn(cid: str) -> FlowerClient: + """Create a Flower client representing a single organization.""" + + # Load model + net = model.Net().to(device) + + # Note: each client gets a different trainloader/valloader, so each client + # will train and evaluate on their own unique data + trainloader = trainloaders[int(cid)] + valloader = valloaders[int(cid)] + + # Create a single Flower client representing a single organization + return FlowerClient( + net, trainloader, valloader, device, num_epochs, learning_rate + ) + + return client_fn, testloader diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/dataset.py b/baselines/flwr_baselines/publications/fedavg_mnist/dataset.py new file mode 100644 index 000000000000..7bc910f74626 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/dataset.py @@ -0,0 +1,121 @@ +"""MNIST dataset utilities for federated learning.""" + + +from typing import List, Optional, Tuple + +import numpy as np +import torch +import torchvision.transforms as transforms +from torch.utils.data import ConcatDataset, DataLoader, Dataset, Subset, random_split +from torchvision.datasets import MNIST + + +def load_datasets( + num_clients: int = 10, + iid: Optional[bool] = True, + val_ratio: float = 0.1, + batch_size: Optional[int] = 32, + seed: Optional[int] = 42, +) -> Tuple[DataLoader, DataLoader, DataLoader]: + """Creates the dataloaders to be fed into the model. + + Parameters + ---------- + num_clients : int, optional + The number of clients that hold a part of the data, by default 10 + iid : bool, optional + Whether the data should be independent and identically distributed between the + clients or if the data should first be sorted by labels and distributed by chunks + to each client (used to test the convergence in a worst case scenario), by default True + val_ratio : float, optional + The ratio of training data that will be used for validation (between 0 and 1), + by default 0.1 + batch_size : int, optional + The size of the batches to be fed into the model, by default 32 + seed : int, optional + Used to set a fix seed to replicate experiments, by default 42 + + Returns + ------- + Tuple[DataLoader, DataLoader, DataLoader] + The DataLoader for training, the DataLoader for validation, the DataLoader for testing. + """ + datasets, testset = _partition_data(num_clients, iid, seed) + # Split each partition into train/val and create DataLoader + trainloaders = [] + valloaders = [] + for dataset in datasets: + len_val = int(len(dataset) / (1 / val_ratio)) + len_train = len(dataset) - len_val + lengths = [len_train, len_val] + ds_train, ds_val = random_split( + dataset, lengths, torch.Generator().manual_seed(seed) + ) + trainloaders.append(DataLoader(ds_train, batch_size=batch_size, shuffle=True)) + valloaders.append(DataLoader(ds_val, batch_size=batch_size)) + return trainloaders, valloaders, DataLoader(testset, batch_size=batch_size) + + +def _download_data() -> Tuple[Dataset, Dataset]: + """Downloads (if necessary) and returns the MNIST dataset. + + Returns + ------- + Tuple[MNIST, MNIST] + The dataset for training and the dataset for testing MNIST. + """ + transform = transforms.Compose( + [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))] + ) + trainset = MNIST("./dataset", train=True, download=True, transform=transform) + testset = MNIST("./dataset", train=False, download=True, transform=transform) + return trainset, testset + + +def _partition_data( + num_clients: int = 10, + iid: Optional[bool] = True, + seed: Optional[int] = 42, +) -> Tuple[List[Dataset], Dataset]: + """Split training set into iid or non iid partitions to simulate the + federated setting. + + Parameters + ---------- + num_clients : int, optional + The number of clients that hold a part of the data, by default 10 + iid : bool, optional + Whether the data should be independent and identically distributed between + the clients or if the data should first be sorted by labels and distributed by chunks + to each client (used to test the convergence in a worst case scenario), by default True + seed : int, optional + Used to set a fix seed to replicate experiments, by default 42 + + Returns + ------- + Tuple[List[Dataset], Dataset] + A list of dataset for each client and a single dataset to be use for testing the model. + """ + trainset, testset = _download_data() + partition_size = int(len(trainset) / num_clients) + lengths = [partition_size] * num_clients + if iid: + datasets = random_split(trainset, lengths, torch.Generator().manual_seed(seed)) + else: + shard_size = int(partition_size / 2) + idxs = trainset.targets.argsort() + sorted_data = Subset(trainset, idxs) + tmp = [] + for idx in range(num_clients * 2): + tmp.append( + Subset(sorted_data, np.arange(shard_size * idx, shard_size * (idx + 1))) + ) + idxs_list = torch.randperm( + num_clients * 2, generator=torch.Generator().manual_seed(seed) + ) + datasets = [ + ConcatDataset((tmp[idxs_list[2 * i]], tmp[idxs_list[2 * i + 1]])) + for i in range(num_clients) + ] + + return datasets, testset diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/centralized_metrics.png b/baselines/flwr_baselines/publications/fedavg_mnist/docs/centralized_metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..44a78041834a4084fed0aae03f8f68a8acd37b0f GIT binary patch literal 56531 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 N$f0Ack6StY_Fs?A`+)!e literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=200_stag=0.5.png b/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/centralized_metrics_cli=100_rds=200_stag=0.5.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbe9379eae0569ee9ab771e5baecfa25b74e6f3 GIT binary patch literal 38173 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
  • E2j(EVK}qs`j77z7+aXBwiw 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 literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=20_R=1000_stag=0.0.npy b/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=20_R=1000_stag=0.0.npy new file mode 100644 index 0000000000000000000000000000000000000000..24e9baa064069ccd4f1ea77adf1459959b15ff86 GIT binary patch literal 35296 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%0D{~r4$lqg}*qDq*Powa%&!2_p9?* zN(G|$ck18H6DeioPfujsZ_ZOGrRwoX8eZ#ucb>`LP;Pk5Oi2$|_aEoEoQafy_WEDv zh1Bes^i%fs^0fHRc`2pH{(Wo0$vc}n z`^uV>NHnCo|Jr0yA<>Zz|FgG9d9inQ=O5)2`NJ zL=qq$E_alEj5V2%gvi^sMZXQ0U`=Ku5%S`6*P`DBT9XAyj6C$a$0jS11Xa`DI!=0;K> zqx^1?$%CXuhL$K^Fn)e(enNgg`uQ*3CNJ_MGPwD}&tY<&^C4-F=4r;~yc^q^{771) zmfxu}1(0-z*SASyO+h3*5*pL%fSW={29Z-s*82BhVI-r-g(Jx~p6xf>nj%Ohk()28 zTuU+{yER3T%pw=}x0fDjWowEdSwzlfkY|`YR7`OstH{|w|9OvXQv%5*a%Mt>)QKMK zwk8D0E^_)H?})9eDT(AjetzP0ug%X$PLWfO{1+`#3dw~mknVV-!PfkO%2fHp#MT#Tk>Ul44rW#TLDG+Obyv12l9SK3Q+?;T( ziZnkpkdjDhzp*zpk)M&6jpPlkwKcVnQb;6;TwJ+nO>N{CkrQ79ZhW++4pN#r;i7om zJ5v`aL!E1{Pkc+f*%|_JmCGW>q!lat#u|x6hO1l-+4qYyC7-NmfP^C3dU^pB(-0|- ztdI31;@WN2G(svMe~k2AXG~+HA~IJxlk)munjjK%3puem(AG6YDk1&-2eoO2R7N_= zt6YvH)-*?|AYlV}m$s$_QWa@>+P}hEBGr)kA2XJV@rO07km^XyQnii^mlit=sex4Z z&)-jLq$cu89uu%-=COXO5KqAt0tX^YgRⅈ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 literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=5_R=1000_stag=0.0.npy b/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=1000000_E=5_R=1000_stag=0.0.npy new file mode 100644 index 0000000000000000000000000000000000000000..3c25a8877f73ec7d8d6195e96094b2f65c3e8930 GIT binary patch literal 35296 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 literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=10_E=1_R=1000_stag=0.0.npy b/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=100_B=10_E=1_R=1000_stag=0.0.npy new file mode 100644 index 0000000000000000000000000000000000000000..a7277646db1c5f1b6358b31b7b1e0d417034a56e GIT binary patch literal 35296 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 JNugSj9suBo%WnVx literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=1_B=10_E=1_R=1_stag=0.0.npy b/baselines/flwr_baselines/publications/fedavg_mnist/docs/results/hist_C=1_B=10_E=1_R=1_stag=0.0.npy new file mode 100644 index 0000000000000000000000000000000000000000..56e2510c49e765b4b6cecc81a54d7e794ef95355 GIT binary patch literal 511 zcmbu5Jxjwt7{`;=mzvg>w!Xj7Eh$K5ap@pfF_?-V#G#bra?(PY^troKqYda_Ygfh5 z)lsbC;umo8D+rEGf?q&S?NDc*;g0+Np6B<#UFbWTTf3rA7mj2bQ$*yIjNB;5OBs33 zBaE1C$s;!Yj@L|wVxH5oS;PFTWS25w=6@v}N0IASYk`V9g4L?;u!>2D8Av69k>^rI ze8eOWe!C>s{-q#l!YM>nMGK-W=-Y;VMH92#CYuE{EWv;g5d@*I41?{n7R0t;NYSE( z$g>7Wx~^}0^7=Wn9D}&kE(=il5XUT!~{FoBIU zw^lK?p}*S65T^dXUhi}WGe(S0nh5#CL;=heVeV&BCvkWA_S$K}{P(8!;QApxsx)B% LQ{OTfEL!RpwcVnh literal 0 HcmV?d00001 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/main.py b/baselines/flwr_baselines/publications/fedavg_mnist/main.py new file mode 100644 index 000000000000..64595d819c05 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/main.py @@ -0,0 +1,80 @@ +"""Runs CNN federated learning for MNST dataset.""" + +from pathlib import Path + +import flwr as fl +import hydra +import numpy as np +import torch +from omegaconf import DictConfig + +from flwr_baselines.publications.fedavg_mnist import client, utils + +DEVICE: str = torch.device("cpu") + + +@hydra.main(config_path="docs/conf", config_name="config", version_base=None) +def main(cfg: DictConfig) -> None: + """Main function to run CNN federated learning on MNIST. + + Parameters + ---------- + cfg : DictConfig + An omegaconf object that stores the hydra config. + """ + client_fn, testloader = client.gen_client_fn( + num_epochs=cfg.num_epochs, + batch_size=cfg.batch_size, + device=DEVICE, + num_clients=cfg.num_clients, + iid=cfg.iid, + learning_rate=cfg.learning_rate, + ) + + evaluate_fn = utils.gen_evaluate_fn(testloader, DEVICE) + + strategy = fl.server.strategy.FedAvg( + fraction_fit=cfg.client_fraction, + fraction_evaluate=0.0, + min_fit_clients=int(cfg.num_clients * cfg.client_fraction), + min_evaluate_clients=0.0, + min_available_clients=cfg.num_clients, + evaluate_fn=evaluate_fn, + evaluate_metrics_aggregation_fn=utils.weighted_average, + ) + + # Start simulation + history = fl.simulation.start_simulation( + client_fn=client_fn, + num_clients=cfg.num_clients, + config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), + strategy=strategy, + ) + np.save( + Path(cfg.save_path) + / Path( + f"hist_C={cfg.num_clients}" + f"_B={cfg.batch_size}" + f"_E={cfg.num_epochs}" + f"_R={cfg.num_rounds}" + f"_stag={1 - cfg.client_fraction}" + ), + history, + ) + + utils.plot_metric_from_history( + history, + cfg.save_path, + cfg.expected_maximum, + ( + f"_C={cfg.num_clients}" + f"_B={cfg.batch_size}" + f"_E={cfg.num_epochs}" + f"_R={cfg.num_rounds}" + f"_stag={1 - cfg.client_fraction}" + ), + ) + + +if __name__ == "__main__": + main() diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/model.py b/baselines/flwr_baselines/publications/fedavg_mnist/model.py new file mode 100644 index 000000000000..ea7864c38057 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/model.py @@ -0,0 +1,150 @@ +"""CNN model architecutre, training and testing functions for MNIST.""" + + +from typing import Tuple + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.data import DataLoader + + +class Net(nn.Module): + """Convolutional Neural Network architecture as described in McMahan 2017 + paper : + + [Communication-Efficient Learning of Deep Networks from + Decentralized Data] (https://arxiv.org/pdf/1602.05629.pdf) + """ + + def __init__(self) -> None: + super().__init__() + self.conv1 = nn.Conv2d(1, 32, 5, padding=1) + self.conv2 = nn.Conv2d(32, 64, 5, padding=1) + self.pool = nn.MaxPool2d(kernel_size=(2, 2), padding=1) + self.fc1 = nn.Linear(64 * 7 * 7, 512) + self.fc2 = nn.Linear(512, 10) + + def forward(self, input_tensor: torch.Tensor) -> torch.Tensor: + """Forward pass of the CNN. + + Parameters + ---------- + x : torch.Tensor + Input Tensor that will pass through the network + + Returns + ------- + torch.Tensor + The resulting Tensor after it has passed through the network + """ + output_tensor = F.relu(self.conv1(input_tensor)) + output_tensor = self.pool(output_tensor) + output_tensor = F.relu(self.conv2(output_tensor)) + output_tensor = self.pool(output_tensor) + output_tensor = nn.Flatten()(output_tensor) + output_tensor = F.relu(self.fc1(output_tensor)) + output_tensor = self.fc2(output_tensor) + return output_tensor + + +def train( + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + epochs: int, + learning_rate: float, +) -> None: + """Train the network on the training set. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + epochs : int + The number of epochs the model should be trained for. + learning_rate : float + The learning rate for the SGD optimizer. + """ + criterion = torch.nn.CrossEntropyLoss() + optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate) + net.train() + for _ in range(epochs): + net = _training_loop(net, trainloader, device, criterion, optimizer) + + +def _training_loop( + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + criterion: torch.nn.CrossEntropyLoss, + optimizer: torch.optim.Adam, +) -> nn.Module: + """Train for one epoch. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + criterion : torch.nn.CrossEntropyLoss + The loss function to use for training + optimizer : torch.optim.Adam + The optimizer to use for training + + Returns + ------- + nn.Module + The model that has been trained for one epoch. + """ + for images, labels in trainloader: + images, labels = images.to(device), labels.to(device) + optimizer.zero_grad() + loss = criterion(net(images), labels) + loss.backward() + optimizer.step() + return net + + +def test( + net: nn.Module, testloader: DataLoader, device: torch.device +) -> Tuple[float, float]: + """Evaluate the network on the entire test set. + + Parameters + ---------- + net : nn.Module + The neural network to test. + testloader : DataLoader + The DataLoader containing the data to test the network on. + device : torch.device + The device on which the model should be tested, either 'cpu' or 'cuda'. + + Returns + ------- + Tuple[float, float] + The loss and the accuracy of the input model on the given data. + """ + criterion = torch.nn.CrossEntropyLoss() + correct, total, loss = 0, 0, 0.0 + net.eval() + with torch.no_grad(): + for images, labels in testloader: + images, labels = images.to(device), labels.to(device) + outputs = net(images) + loss += criterion(outputs, labels).item() + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + if len(testloader.dataset) == 0: + raise ValueError("Testloader can't be 0, exiting...") + loss /= len(testloader.dataset) + accuracy = correct / total + return loss, accuracy diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/tests.py b/baselines/flwr_baselines/publications/fedavg_mnist/tests.py new file mode 100644 index 000000000000..2d2455bc61e2 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/tests.py @@ -0,0 +1,35 @@ +"""Used to test the model and the data partitionning.""" + + +from flwr_baselines.publications.fedavg_mnist import dataset, model + + +def test_cnn_size_mnist() -> None: + """Test number of parameters with MNIST-sized inputs.""" + # Prepare + net = model.Net() + expected = 1_663_370 + + # Execute + actual = sum([p.numel() for p in net.parameters()]) + + # Assert + assert actual == expected + + +def test_non_iid_partitionning(num_clients: int = 100) -> None: + """Test the non iid partitionning of the MNIST dataset. + + Parameters + ---------- + num_clients : int, optional + The number of clients to distribute the data to, by default 100 + """ + trainloaders, _, _ = dataset.load_datasets( + batch_size=1, num_clients=num_clients, iid=False + ) + for trainloader in trainloaders: + labels = [] + for _, label in trainloader: + labels.append(label.item()) + assert len(set(labels)) <= 2 diff --git a/baselines/flwr_baselines/publications/fedavg_mnist/utils.py b/baselines/flwr_baselines/publications/fedavg_mnist/utils.py new file mode 100644 index 000000000000..3f992f50f202 --- /dev/null +++ b/baselines/flwr_baselines/publications/fedavg_mnist/utils.py @@ -0,0 +1,133 @@ +"""Contains utility functions for CNN FL on MNIST.""" + + +from collections import OrderedDict +from pathlib import Path +from typing import Callable, Dict, List, Optional, Tuple + +import matplotlib.pyplot as plt +import numpy as np +import torch +from flwr.common import Metrics +from flwr.common.typing import NDArrays, Scalar +from flwr.server.history import History +from torch.utils.data import DataLoader + +from flwr_baselines.publications.fedavg_mnist import model + + +def plot_metric_from_history( + hist: History, + save_plot_path: Path, + expected_maximum: float, + suffix: Optional[str] = "", +) -> None: + """Function to plot from Flower server History. + + Parameters + ---------- + hist : History + Object containing evaluation for all rounds. + save_plot_path : Path + Folder to save the plot to. + expected_maximum : float + The expected maximum accuracy from the original paper. + suffix: Optional[str] + Optional string to add at the end of the filename for the plot. + """ + metric_type = "centralized" + metric_dict = ( + hist.metrics_centralized + if metric_type == "centralized" + else hist.metrics_distributed + ) + rounds, values = zip(*metric_dict["accuracy"]) + fig = plt.figure() + axis = fig.add_subplot(111) + plt.plot(np.asarray(rounds), np.asarray(values), label="FedAvg") + # Set expected graph for data + plt.axhline( + y=expected_maximum, + color="r", + linestyle="--", + label=f"Paper's best result @{expected_maximum}", + ) + # Set paper's results + plt.axhline( + y=0.99, + color="silver", + label="Paper's baseline @0.9900", + ) + plt.ylim([0.97, 1]) + plt.title(f"{metric_type.capitalize()} Validation - MNIST") + plt.xlabel("Rounds") + plt.ylabel("Accuracy") + plt.legend(loc="lower right") + + # Set the apect ratio to 1.0 + xleft, xright = axis.get_xlim() + ybottom, ytop = axis.get_ylim() + axis.set_aspect(abs((xright - xleft) / (ybottom - ytop)) * 1.0) + + plt.savefig(Path(save_plot_path) / Path(f"{metric_type}_metrics{suffix}.png")) + plt.close() + + +def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: + """Aggregation function for weighted average during evaluation. + + Parameters + ---------- + metrics : List[Tuple[int, Metrics]] + The list of metrics to aggregate. + + Returns + ------- + Metrics + The weighted average metric. + """ + # Multiply accuracy of each client by number of examples used + accuracies = [num_examples * m["accuracy"] for num_examples, m in metrics] + examples = [num_examples for num_examples, _ in metrics] + + # Aggregate and return custom metric (weighted average) + return {"accuracy": int(sum(accuracies)) / int(sum(examples))} + + +def gen_evaluate_fn( + testloader: DataLoader, device: torch.device +) -> Callable[ + [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] +]: + """Generates the function for centralized evaluation. + + Parameters + ---------- + testloader : DataLoader + The dataloader to test the model with. + device : torch.device + The device to test the model on. + + Returns + ------- + Callable[ [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] ] + The centralized evaluation function. + """ + + def evaluate( + server_round: int, parameters_ndarrays: NDArrays, config: Dict[str, Scalar] + ) -> Optional[Tuple[float, Dict[str, Scalar]]]: + # pylint: disable=unused-argument + """Use the entire MNIST test set for evaluation.""" + # determine device + net = model.Net() + params_dict = zip(net.state_dict().keys(), parameters_ndarrays) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + net.load_state_dict(state_dict, strict=True) + net.to(device) + + loss, accuracy = model.test(net, testloader, device=device) + # return statistics + return loss, {"accuracy": accuracy} + + return evaluate