diff --git a/_modules/fl_sim/data_processing/_register.html b/_modules/fl_sim/data_processing/_register.html index fb771d6..b7adf83 100644 --- a/_modules/fl_sim/data_processing/_register.html +++ b/_modules/fl_sim/data_processing/_register.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_cifar.html b/_modules/fl_sim/data_processing/fed_cifar.html index df82a54..989bcc3 100644 --- a/_modules/fl_sim/data_processing/fed_cifar.html +++ b/_modules/fl_sim/data_processing/fed_cifar.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_dataset.html b/_modules/fl_sim/data_processing/fed_dataset.html index bda662d..2447302 100644 --- a/_modules/fl_sim/data_processing/fed_dataset.html +++ b/_modules/fl_sim/data_processing/fed_dataset.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -497,7 +498,7 @@

    Source code for fl_sim.data_processing.fed_dataset

    """Download data if needed.""" if self.url: if self.datadir is None: - dst_dir = CACHED_DATA_DIR + dst_dir = CACHED_DATA_DIR / self.__class__.__name__ elif self.datadir.exists() and len(list(self.datadir.iterdir())) > 0: print("data dir exists, skip downloading") return diff --git a/_modules/fl_sim/data_processing/fed_emnist.html b/_modules/fl_sim/data_processing/fed_emnist.html index 00f03a0..4094a8a 100644 --- a/_modules/fl_sim/data_processing/fed_emnist.html +++ b/_modules/fl_sim/data_processing/fed_emnist.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_mnist.html b/_modules/fl_sim/data_processing/fed_mnist.html index 561f0c6..4ebe1f9 100644 --- a/_modules/fl_sim/data_processing/fed_mnist.html +++ b/_modules/fl_sim/data_processing/fed_mnist.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_rotated_cifar10.html b/_modules/fl_sim/data_processing/fed_rotated_cifar10.html index 9fbed39..9f92d13 100644 --- a/_modules/fl_sim/data_processing/fed_rotated_cifar10.html +++ b/_modules/fl_sim/data_processing/fed_rotated_cifar10.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -668,6 +669,7 @@

    Source code for fl_sim.data_processing.fed_rotated_cifar10

    static_transform = transforms.Compose( [ ImageArrayToTensor(), + ImageTensorScale(), transforms.Normalize(CIFAR10_MEAN, CIFAR10_STD), ] ) @@ -708,6 +710,8 @@

    Source code for fl_sim.data_processing.fed_rotated_cifar10

    [docs] def extra_repr_keys(self) -> List[str]: return [ "n_class", + "num_clients", + "num_rotations", ] + super().extra_repr_keys()
    [docs] def evaluate(self, probs: torch.Tensor, truths: torch.Tensor) -> Dict[str, float]: diff --git a/_modules/fl_sim/data_processing/fed_rotated_mnist.html b/_modules/fl_sim/data_processing/fed_rotated_mnist.html index fdd067d..f5c0414 100644 --- a/_modules/fl_sim/data_processing/fed_rotated_mnist.html +++ b/_modules/fl_sim/data_processing/fed_rotated_mnist.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_shakespeare.html b/_modules/fl_sim/data_processing/fed_shakespeare.html index 01b067c..bd61ce7 100644 --- a/_modules/fl_sim/data_processing/fed_shakespeare.html +++ b/_modules/fl_sim/data_processing/fed_shakespeare.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fed_synthetic.html b/_modules/fl_sim/data_processing/fed_synthetic.html index 3b3606d..768ff00 100644 --- a/_modules/fl_sim/data_processing/fed_synthetic.html +++ b/_modules/fl_sim/data_processing/fed_synthetic.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fedprox_femnist.html b/_modules/fl_sim/data_processing/fedprox_femnist.html index 7ecfea0..73b6e2e 100644 --- a/_modules/fl_sim/data_processing/fedprox_femnist.html +++ b/_modules/fl_sim/data_processing/fedprox_femnist.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fedprox_mnist.html b/_modules/fl_sim/data_processing/fedprox_mnist.html index 1d897e9..6ad870c 100644 --- a/_modules/fl_sim/data_processing/fedprox_mnist.html +++ b/_modules/fl_sim/data_processing/fedprox_mnist.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/fedprox_sent140.html b/_modules/fl_sim/data_processing/fedprox_sent140.html index 9fca20a..92fda8c 100644 --- a/_modules/fl_sim/data_processing/fedprox_sent140.html +++ b/_modules/fl_sim/data_processing/fedprox_sent140.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/libsvm_datasets.html b/_modules/fl_sim/data_processing/libsvm_datasets.html index 6f3ab89..8b5a114 100644 --- a/_modules/fl_sim/data_processing/libsvm_datasets.html +++ b/_modules/fl_sim/data_processing/libsvm_datasets.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/data_processing/tiny_imagenet.html b/_modules/fl_sim/data_processing/tiny_imagenet.html new file mode 100644 index 0000000..6aab2a5 --- /dev/null +++ b/_modules/fl_sim/data_processing/tiny_imagenet.html @@ -0,0 +1,856 @@ + + + + + + + + + + + fl_sim.data_processing.tiny_imagenet — fl-sim 0.0.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + + + +
    + +
    + + + +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    + + + +
    +

    + +
    +
    + +
    +
    +
    + + + + +
    + +

    Source code for fl_sim.data_processing.tiny_imagenet

    +import io
    +import json
    +import os
    +from pathlib import Path
    +from typing import Callable, Dict, List, Optional, Tuple, Union
    +
    +import numpy as np
    +import pandas as pd
    +import requests
    +import torch
    +import torch.utils.data as torchdata
    +import torchvision.transforms as transforms
    +from datasets import load_dataset
    +
    +from ..models import nn as mnn
    +from ..models.utils import top_n_accuracy
    +from ..utils._download_data import url_is_reachable
    +from ..utils.const import TINY_IMAGENET_MEAN, TINY_IMAGENET_STD
    +from ._noniid_partition import non_iid_partition_with_dirichlet_distribution
    +from ._ops import CategoricalLabelToTensor, ImageArrayToTensor, ImageTensorScale
    +from ._register import register_fed_dataset
    +from .fed_dataset import FedVisionDataset, VisionDataset
    +
    +if os.environ.get("HF_ENDPOINT", None) is not None and (not url_is_reachable(os.environ["HF_ENDPOINT"])):
    +    os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
    +elif os.environ.get("HF_ENDPOINT", None) is None and (not url_is_reachable("https://huggingface.co")):
    +    os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
    +
    +
    +__all__ = ["TinyImageNet"]
    +
    +
    +
    [docs]@register_fed_dataset() +class TinyImageNet(FedVisionDataset): + """Tiny ImageNet dataset. + + The Tiny ImageNet dataset is a subset of the ImageNet dataset. It consists of 200 classes, each with 500 training + images and 50 validation images and 50 test images. The images are downsampled to 64x64 pixels. + + The original dataset [1]_ contains the test images while the hugingface dataset [3]_ does not contain the test images. + We use the hugingface dataset [3]_ for simplicity, and treat the validation set as the test set. + + Parameters + ---------- + datadir : Union[pathlib.Path, str], optional + Directory to store data. + If ``None``, use default directory. + num_clients : int, default 100 + Number of clients. + alpha : float, default 0.5 + Concentration parameter for the Dirichlet distribution. + transform : Union[str, Callable], default "none" + Transform to apply to data. Conventions: + ``"none"`` means no transform, using TensorDataset. + seed : int, default 0 + Random seed for data partitioning. + **extra_config : dict, optional + Extra configurations. + + References + ---------- + .. [1] http://cs231n.stanford.edu + .. [2] https://kaggle.com/competitions/tiny-imagenet + .. [3] https://huggingface.co/datasets/zh-plus/tiny-imagenet + + """ + + __name__ = "TinyImageNet" + + def __init__( + self, + datadir: Optional[Union[Path, str]] = None, + num_clients: int = 100, + alpha: float = 0.5, + transform: Optional[Union[str, Callable]] = "none", + seed: int = 0, + ) -> None: + self.num_clients = num_clients + self.alpha = alpha + super().__init__(datadir=datadir, transform=transform, seed=seed) + + def _preload(self, datadir: Optional[Union[str, Path]] = None) -> None: + """Preload the dataset. + + Parameters + ---------- + datadir : Union[pathlib.Path, str], optional + Directory to store data. + If ``None``, use default directory. + + Returns + ------- + None + + """ + if datadir is None: + ds = load_dataset("zh-plus/tiny-imagenet") + else: + ds = load_dataset("zh-plus/tiny-imagenet", data_dir=str(datadir)) + self.datadir = Path(datadir or "~/.cache/huggingface/datasets/zh-plus___tiny-imagenet").expanduser().resolve() + self.datadir.mkdir(parents=True, exist_ok=True) + self._dataset_info = json.loads(list(self.datadir.rglob("dataset_info.json"))[0].read_text()) + + self.DEFAULT_TRAIN_CLIENTS_NUM = self.num_clients + self.DEFAULT_TEST_CLIENTS_NUM = self.num_clients + self.DEFAULT_BATCH_SIZE = 20 + self.DEFAULT_TRAIN_FILE = [item["filename"] for item in ds.cache_files["train"]] + self.DEFAULT_TEST_FILE = [item["filename"] for item in ds.cache_files["valid"]] + self._IMGAE = "image" + self._LABEL = "label" + + # load wnid to label mapping from imagenet website + timeout = 3 + try: + self._wnid2label = pd.read_csv( + io.StringIO(requests.get("https://image-net.org/data/words.txt", timeout=timeout).text), sep="\t", header=None + ) + except requests.exceptions.RequestException: + self._wnid2label = pd.DataFrame(columns=["wnid", "label"]) + self._wnid2label.columns = ["wnid", "label"] + self._wnid2label["label"] = self._wnid2label["label"].apply(lambda x: str(x).split(",")[0]) + self._wnid2label = self._wnid2label.set_index("wnid")["label"].to_dict() + + # set criterion + self.criterion = torch.nn.CrossEntropyLoss() + + # set transforms for creating dataset + if self.transform is None: + # set dynamic transform for train set + self.transform = transforms.Compose( + [ + transforms.AutoAugment( + policy=transforms.AutoAugmentPolicy.IMAGENET, + ), + ImageTensorScale(), + transforms.Normalize(TINY_IMAGENET_MEAN, TINY_IMAGENET_STD), + ] + ) + self.target_transform = transforms.Compose([CategoricalLabelToTensor()]) + + # load data + print("Loading data...") + self._train_data_dict = { + self._IMGAE: np.array( + [np.moveaxis(np.asarray(item[self._IMGAE].convert("RGB")), [0, 1], [1, 2]) for item in ds["train"]] + ), + self._LABEL: np.array([item[self._LABEL] for item in ds["train"]]), + } + self._test_data_dict = { + self._IMGAE: np.array( + [np.moveaxis(np.asarray(item[self._IMGAE].convert("RGB")), [0, 1], [1, 2]) for item in ds["valid"]] + ), + self._LABEL: np.array([item[self._LABEL] for item in ds["valid"]]), + } + + self._n_class = 200 + + # distribute data into clients + print("Distributing data...") + self.indices = {} + self.indices["train"] = non_iid_partition_with_dirichlet_distribution( + label_list=self._train_data_dict[self._LABEL], + client_num=self.num_clients, + classes=self.n_class, + alpha=self.alpha, + ) + self.indices["test"] = non_iid_partition_with_dirichlet_distribution( + label_list=self._test_data_dict[self._LABEL], + client_num=self.num_clients, + classes=self.n_class, + alpha=self.alpha, + ) + +
    [docs] def get_dataloader( + self, + train_bs: Optional[int] = None, + test_bs: Optional[int] = None, + client_idx: Optional[int] = None, + ) -> Tuple[torchdata.DataLoader, torchdata.DataLoader]: + """Get local dataloader at client `client_idx` or get the global dataloader. + + Parameters + ---------- + train_bs : int, optional + Batch size for training dataloader. + If ``None``, use default batch size. + test_bs : int, optional + Batch size for testing dataloader. + If ``None``, use default batch size. + client_idx : int, optional + Index of the client to get dataloader. + If ``None``, get the dataloader containing all data. + Usually used for centralized training. + + Returns + ------- + train_dl : :class:`torch.utils.data.DataLoader` + Training dataloader. + test_dl : :class:`torch.utils.data.DataLoader` + Testing dataloader. + + """ + if client_idx is None: + train_slice = slice(None) + test_slice = slice(None) + else: + train_slice = self.indices["train"][client_idx] + test_slice = self.indices["test"][client_idx] + + # static transform + static_transform = transforms.Compose( + [ + ImageArrayToTensor(), + ImageTensorScale(), + transforms.Normalize(TINY_IMAGENET_MEAN, TINY_IMAGENET_STD), + ] + ) + + if self.transform == "none": + # apply only static transform + train_ds = torchdata.TensorDataset( + static_transform(self._train_data_dict[self._IMGAE][train_slice].copy()), + self.target_transform(self._train_data_dict[self._LABEL][train_slice].copy()), + ) + else: + # use non-trivial dynamic transform + train_ds = VisionDataset( + images=torch.from_numpy(self._train_data_dict[self._IMGAE][train_slice].copy()).to(torch.uint8), + targets=self.target_transform(self._train_data_dict[self._LABEL][train_slice].copy()), + transform=self.transform, + ) + train_dl = torchdata.DataLoader( + dataset=train_ds, + batch_size=train_bs or self.DEFAULT_BATCH_SIZE, + shuffle=True, + drop_last=False, + ) + + test_ds = torchdata.TensorDataset( + static_transform(self._test_data_dict[self._IMGAE][test_slice].copy()), + self.target_transform(self._test_data_dict[self._LABEL][test_slice].copy()), + ) + test_dl = torchdata.DataLoader( + dataset=test_ds, + batch_size=test_bs or self.DEFAULT_BATCH_SIZE, + shuffle=False, + drop_last=False, + ) + + return train_dl, test_dl
    + +
    [docs] def extra_repr_keys(self) -> List[str]: + return [ + "n_class", + "num_clients", + "alpha", + ] + super().extra_repr_keys()
    + +
    [docs] def evaluate(self, probs: torch.Tensor, truths: torch.Tensor) -> Dict[str, float]: + """Evaluation using predictions and ground truth. + + Parameters + ---------- + probs : torch.Tensor + Predicted probabilities. + truths : torch.Tensor + Ground truth labels. + + Returns + ------- + Dict[str, float] + Evaluation results. + + """ + return { + "acc": top_n_accuracy(probs, truths, 1), + "top3_acc": top_n_accuracy(probs, truths, 3), + "top5_acc": top_n_accuracy(probs, truths, 5), + "loss": self.criterion(probs, truths).item(), + "num_samples": probs.shape[0], + }
    + + @property + def candidate_models(self) -> Dict[str, torch.nn.Module]: + """A set of candidate models.""" + return { + "resnet10": mnn.ResNet10(num_classes=self.n_class), + "resnet18": mnn.ResNet18(num_classes=self.n_class), + } + + @property + def doi(self) -> List[str]: + """DOI(s) related to the dataset.""" + return ["10.1109/cvpr.2009.5206848"] + + @property + def url(self) -> str: + """URL for downloading the original dataset.""" + return "http://cs231n.stanford.edu/tiny-imagenet-200.zip" + + @property + def label_map(self) -> dict: + """Label map for the dataset.""" + return { + idx: self._wnid2label.get(label, label) + for idx, label in enumerate(self._dataset_info["features"]["label"]["names"]) + } + +
    [docs] def view_image(self, client_idx: int, image_idx: int) -> None: + """View a single image. + + Parameters + ---------- + client_idx : int + Index of the client on which the image is located. + image_idx : int + Index of the image in the client. + + Returns + ------- + None + + """ + import matplotlib.pyplot as plt + + if client_idx >= self.num_clients: + raise ValueError(f"client_idx must be less than {self.num_clients}, got {client_idx}") + + total_num_images = len(self.indices["train"][client_idx]) + len(self.indices["test"][client_idx]) + if image_idx >= total_num_images: + raise ValueError(f"image_idx must be less than {total_num_images}, got {image_idx}") + if image_idx < len(self.indices["train"][client_idx]): + image = self._train_data_dict[self._IMGAE][self.indices["train"][client_idx][image_idx]] + label = self._train_data_dict[self._LABEL][self.indices["train"][client_idx][image_idx]] + image_idx = self.indices["train"][client_idx][image_idx] + else: + image_idx -= len(self.indices["train"][client_idx]) + image = self._test_data_dict[self._IMGAE][self.indices["test"][client_idx][image_idx]] + label = self._test_data_dict[self._LABEL][self.indices["test"][client_idx][image_idx]] + image_idx = self.indices["test"][client_idx][image_idx] + # image: channel first to channel last + image = image.transpose(1, 2, 0) + plt.imshow(image) + plt.title(f"image_idx: {image_idx}, label: {label} ({self.label_map[int(label)]}") + plt.show()
    + +
    [docs] def random_grid_view(self, nrow: int, ncol: int, save_path: Optional[Union[str, Path]] = None) -> None: + """Select randomly `nrow` x `ncol` images from the dataset + and plot them in a grid. + + Parameters + ---------- + nrow : int + Number of rows in the grid. + ncol : int + Number of columns in the grid. + save_path : Union[str, Path], optional + Path to save the figure. If ``None``, do not save the figure. + + Returns + ------- + None + + """ + import matplotlib.pyplot as plt + + rng = np.random.default_rng() + + fig, axes = plt.subplots(nrow, ncol, figsize=(ncol * 1, nrow * 1)) + selected = [] + for i in range(nrow): + for j in range(ncol): + while True: + client_idx = rng.integers(self.num_clients) + image_idx = rng.integers(len(self.indices["train"][client_idx])) + if (client_idx, image_idx) not in selected: + selected.append((client_idx, image_idx)) + break + image = self._train_data_dict[self._IMGAE][self.indices["train"][client_idx][image_idx]] + axes[i, j].imshow(image.transpose(1, 2, 0)) + axes[i, j].axis("off") + if save_path is not None: + fig.savefig(save_path, bbox_inches="tight", dpi=600) + plt.tight_layout() + plt.show()
    +
    + +
    + + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + + +
    + + +
    +
    +
    + + + + + +
    +
    + + \ No newline at end of file diff --git a/_modules/fl_sim/models/nn.html b/_modules/fl_sim/models/nn.html index 114b7bb..0caed7f 100644 --- a/_modules/fl_sim/models/nn.html +++ b/_modules/fl_sim/models/nn.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/models/utils.html b/_modules/fl_sim/models/utils.html index c50abc6..9024c82 100644 --- a/_modules/fl_sim/models/utils.html +++ b/_modules/fl_sim/models/utils.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/nodes.html b/_modules/fl_sim/nodes.html index b54466f..3ed2003 100644 --- a/_modules/fl_sim/nodes.html +++ b/_modules/fl_sim/nodes.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -863,7 +864,7 @@

    Source code for fl_sim.nodes

     
     
    [docs] @staticmethod def aggregate_results_from_json_log(d: Union[dict, str, Path], part: str = "val", metric: str = "acc") -> np.ndarray: - """Aggregate the federated results from csv log. + """Aggregate the federated results from json log. Parameters ---------- diff --git a/_modules/fl_sim/optimizers.html b/_modules/fl_sim/optimizers.html index c3ff10a..8d6bb94 100644 --- a/_modules/fl_sim/optimizers.html +++ b/_modules/fl_sim/optimizers.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -431,10 +432,12 @@

    Source code for fl_sim.optimizers

     from pathlib import Path
     from typing import Any, Iterable, Union
     
    +import packaging.version
     import torch.optim as opt
     import torch_optimizer as topt
     from torch.nn.parameter import Parameter
     from torch.optim import Optimizer
    +from torch.torch_version import __version__ as torch_version
     from torch_ecg.cfg import CFG
     from torch_ecg.utils import add_docstring
     
    @@ -541,7 +544,13 @@ 

    Source code for fl_sim.optimizers

             # ``Detected call of `lr_scheduler.step()` before `optimizer.step()`.``.
             # The risk is one has to check that scheduler.step() is called after
             # optimizer.step() in the training loop by himself.
    -        optimizer.step._with_counter = True
    +        if packaging.version.parse(torch_version) < packaging.version.parse("2.4.0"):
    +            optimizer.step._with_counter = True
    +        else:
    +            # NOTE: new in torch 2.4.0,
    +            # the check by `optimizer.step._with_counter` is replaced by
    +            # `optimizer.step._wrapped_by_lr_sched`
    +            optimizer.step._wrapped_by_lr_sched = True
             return optimizer
     
         try:
    @@ -554,7 +563,10 @@ 

    Source code for fl_sim.optimizers

                 optimizer.step,
                 **{k: v for k, v in _extra_kwargs.items() if k not in step_args},
             )
    -        optimizer.step._with_counter = True
    +        if packaging.version.parse(torch_version) < packaging.version.parse("2.4.0"):
    +            optimizer.step._with_counter = True
    +        else:
    +            optimizer.step._wrapped_by_lr_sched = True
             # print(f"optimizer_name: {optimizer_name}")
             return optimizer
         except Exception:
    @@ -571,7 +583,10 @@ 

    Source code for fl_sim.optimizers

                     optimizer.step,
                     **{k: v for k, v in _extra_kwargs.items() if k not in step_args},
                 )
    -            optimizer.step._with_counter = True
    +            if packaging.version.parse(torch_version) < packaging.version.parse("2.4.0"):
    +                optimizer.step._with_counter = True
    +            else:
    +                optimizer.step._wrapped_by_lr_sched = True
                 return optimizer
             except Exception:
                 pass
    diff --git a/_modules/fl_sim/optimizers/_register.html b/_modules/fl_sim/optimizers/_register.html
    index 589660e..3e833d3 100644
    --- a/_modules/fl_sim/optimizers/_register.html
    +++ b/_modules/fl_sim/optimizers/_register.html
    @@ -185,6 +185,7 @@
     
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/regularizers/regularizers.html b/_modules/fl_sim/regularizers/regularizers.html index fbec88c..0e6ab3e 100644 --- a/_modules/fl_sim/regularizers/regularizers.html +++ b/_modules/fl_sim/regularizers/regularizers.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/utils/imports.html b/_modules/fl_sim/utils/imports.html index e95ce9a..45cebc3 100644 --- a/_modules/fl_sim/utils/imports.html +++ b/_modules/fl_sim/utils/imports.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/fl_sim/utils/loggers.html b/_modules/fl_sim/utils/loggers.html index 979d197..ee53ce4 100644 --- a/_modules/fl_sim/utils/loggers.html +++ b/_modules/fl_sim/utils/loggers.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -409,7 +410,6 @@

    Source code for fl_sim.utils.loggers

     
     """
     
    -import csv
     import json
     import logging
     import re
    @@ -420,7 +420,6 @@ 

    Source code for fl_sim.utils.loggers

     from pathlib import Path
     from typing import Any, Dict, List, Optional, Union
     
    -import pandas as pd
     import torch
     import yaml
     from torch_ecg.utils import ReprMixin, add_docstring, get_date_str, get_kwargs, init_logger
    @@ -432,7 +431,6 @@ 

    Source code for fl_sim.utils.loggers

     __all__ = [
         "BaseLogger",
         "TxtLogger",
    -    "CSVLogger",
         "JsonLogger",
         "LoggerManager",
     ]
    @@ -738,131 +736,6 @@ 

    Source code for fl_sim.utils.loggers

             return str(self.log_dir / self.log_file)
    -
    [docs]class CSVLogger(BaseLogger): - """Logger that logs to a CSV file. - - Parameters - ---------- - algorithm, dataset, model : str - Used to form the prefix of the log file. - log_dir : str or pathlib.Path, optional - Directory to save the log file - log_suffix : str, optional - Suffix of the log file. - verbose : int, default 1 - The verbosity level. - Not used in this logger, - but is kept for compatibility with other loggers. - - """ - - __name__ = "CSVLogger" - - def __init__( - self, - algorithm: str, - dataset: str, - model: str, - log_dir: Optional[Union[str, Path]] = None, - log_suffix: Optional[str] = None, - verbose: int = 1, - ) -> None: - assert all([isinstance(x, str) for x in [algorithm, dataset, model]]), "algorithm, dataset, model must be str" - self.log_prefix = re.sub("[\\s]+", "_", f"{algorithm}-{dataset}-{model}") - self._log_dir = self.set_log_dir(log_dir) - if log_suffix is None: - self.log_suffix = "" - else: - self.log_suffix = f"_{log_suffix}" - self.log_file = f"{self.log_prefix}_{get_date_str()}{self.log_suffix}.csv" - self.logger = pd.DataFrame() - self.step = -1 - self._flushed = True - -
    [docs] def log_metrics( - self, - client_id: Union[int, type(None)], - metrics: Dict[str, Union[Real, torch.Tensor]], - step: Optional[int] = None, - epoch: Optional[int] = None, - part: str = "val", - ) -> None: - if step is not None: - self.step = step - else: - self.step += 1 - row = {"step": self.step, "time": datetime.now(), "part": part} - if epoch is not None: - row.update({"epoch": epoch}) - node = "Server" if client_id is None else f"Client{client_id}" - row.update({f"{node}-{k}": v.item() if isinstance(v, torch.Tensor) else v for k, v in metrics.items()}) - # self.logger = self.logger.append(row, ignore_index=True) - self.logger = pd.concat([self.logger, pd.DataFrame([row])], ignore_index=True) - self._flushed = False
    - -
    [docs] def log_message(self, msg: str, level: int = logging.INFO) -> None: - pass
    - -
    [docs] def flush(self) -> None: - if not self._flushed: - self.logger.to_csv(self.filename, quoting=csv.QUOTE_NONNUMERIC, index=False) - print(f"CSV log file saved to {self.filename}") - # clear the logger buffer - self.logger = pd.DataFrame() - self._flushed = True
    - -
    [docs] def close(self) -> None: - self.flush()
    - -
    [docs] def reset(self) -> None: - """Reset the logger. - - Close the current logger and create a new one, - with new log file name. - """ - self.close() - self.log_file = f"{self.log_prefix}_{get_date_str()}{self.log_suffix}.csv" - self.logger = pd.DataFrame() - self.step = -1 - self._flushed = True
    - - def __del__(self): - self.flush() - del self - -
    [docs] @classmethod - def from_config(cls, config: Dict[str, Any]) -> "CSVLogger": - """Create a :class:`CSVLogger` instance from a configuration. - - Parameters - ---------- - config : dict - Configuration for the logger. The following keys are used: - - - ``"algorithm"``: :obj:`str`, - name of the algorithm. - - ``"dataset"``: :obj:`str`, - name of the dataset. - - ``"model"``: :obj:`str`, - name of the model. - - ``"log_dir"``: :obj:`str` or :class:`pathlib.Path`, optional, - directory to save the log file. - - ``"log_suffix"``: :obj:`str`, optional, - suffix of the log file. - - Returns - ------- - CSVLogger - A :class:`CSVLogger` instance. - - """ - return cls(**config)
    - - @property - def filename(self) -> str: - return str(self.log_dir / self.log_file)
    - -
    [docs]class JsonLogger(BaseLogger): """Logger that logs to a JSON file, or a yaml file. @@ -1097,19 +970,6 @@

    Source code for fl_sim.utils.loggers

                 )
             )
     
    -    def _add_csv_logger(self) -> None:
    -        """Add a :class:`CSVLogger` instance to the manager."""
    -        self.loggers.append(
    -            CSVLogger(
    -                self._algorith,
    -                self._dataset,
    -                self._model,
    -                self._log_dir,
    -                self._log_suffix,
    -                self._verbose,
    -            )
    -        )
    -
         def _add_json_logger(self, fmt: str = "json") -> None:
             """Add a :class:`JsonLogger` instance to the manager."""
             self.loggers.append(
    @@ -1202,8 +1062,6 @@ 

    Source code for fl_sim.utils.loggers

                       suffix of the log files.
                     - ``"txt_logger"``: :obj:`bool`, optional,
                       whether to add a :class:`TxtLogger` instance.
    -                - ``"csv_logger"``: :obj:`bool`, optional,
    -                  whether to add a :class:`CSVLogger` instance.
                     - ``"json_logger"``: :obj:`bool`, optional,
                       whether to add a :class:`JsonLogger` instance.
                     - ``"fmt"``: {"json", "yaml"}, optional,
    @@ -1228,11 +1086,6 @@ 

    Source code for fl_sim.utils.loggers

             )
             if config.get("txt_logger", True):
                 lm._add_txt_logger()
    -        if config.get("csv_logger", False):
    -            # for federated learning, csv logger has too many empty values,
    -            # resulting in a very large csv file,
    -            # hence it is not recommended to use csv logger.
    -            lm._add_csv_logger()
             if config.get("json_logger", True):
                 lm._add_json_logger(fmt=config.get("fmt", get_kwargs(JsonLogger)["fmt"]))
             return lm
    diff --git a/_modules/fl_sim/utils/misc.html b/_modules/fl_sim/utils/misc.html index c6e3c0d..8d82580 100644 --- a/_modules/fl_sim/utils/misc.html +++ b/_modules/fl_sim/utils/misc.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/_modules/index.html b/_modules/index.html index 21e29ac..0f4240d 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -185,6 +185,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -412,6 +413,7 @@

    All modules for which code is available

  • fl_sim.data_processing.fedprox_mnist
  • fl_sim.data_processing.fedprox_sent140
  • fl_sim.data_processing.libsvm_datasets
  • +
  • fl_sim.data_processing.tiny_imagenet
  • fl_sim.models.nn
  • fl_sim.models.utils
  • fl_sim.nodes
  • diff --git a/_sources/api/generated/fl_sim.data_processing.TinyImageNet.rst b/_sources/api/generated/fl_sim.data_processing.TinyImageNet.rst new file mode 100644 index 0000000..376d9d3 --- /dev/null +++ b/_sources/api/generated/fl_sim.data_processing.TinyImageNet.rst @@ -0,0 +1,8 @@ +.. currentmodule:: fl_sim.data_processing + + +TinyImageNet +============ + +.. autoclass:: TinyImageNet + :members: \ No newline at end of file diff --git a/algorithms.html b/algorithms.html index 0ca0fec..a547354 100644 --- a/algorithms.html +++ b/algorithms.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/algorithms/operator_splitting.html b/algorithms/operator_splitting.html index 7fca175..2eeeeb0 100644 --- a/algorithms/operator_splitting.html +++ b/algorithms/operator_splitting.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/algorithms/overview.html b/algorithms/overview.html index 74cdbc5..3e01f16 100644 --- a/algorithms/overview.html +++ b/algorithms/overview.html @@ -188,6 +188,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/algorithms/primal_dual.html b/algorithms/primal_dual.html index 64bed01..f6bc6f4 100644 --- a/algorithms/primal_dual.html +++ b/algorithms/primal_dual.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/algorithms/proximal.html b/algorithms/proximal.html index 15b1101..3ef0fc9 100644 --- a/algorithms/proximal.html +++ b/algorithms/proximal.html @@ -188,6 +188,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/algorithms/skipping.html b/algorithms/skipping.html index 55d22b4..7720bab 100644 --- a/algorithms/skipping.html +++ b/algorithms/skipping.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/datasets.html b/api/datasets.html index d3ae11b..406a811 100644 --- a/api/datasets.html +++ b/api/datasets.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -537,6 +538,9 @@

    Vision datasets<

    FedProxMNIST([datadir, transform, seed])

    Federeated MNIST proposed in FedProx.

    +

    TinyImageNet([datadir, num_clients, alpha, ...])

    +

    Tiny ImageNet dataset.

    +

    diff --git a/api/generated/fl_sim.data_processing.FedCIFAR.html b/api/generated/fl_sim.data_processing.FedCIFAR.html index e525361..a2dee75 100644 --- a/api/generated/fl_sim.data_processing.FedCIFAR.html +++ b/api/generated/fl_sim.data_processing.FedCIFAR.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedCIFAR100.html b/api/generated/fl_sim.data_processing.FedCIFAR100.html index 04776ba..6f77525 100644 --- a/api/generated/fl_sim.data_processing.FedCIFAR100.html +++ b/api/generated/fl_sim.data_processing.FedCIFAR100.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedDataset.html b/api/generated/fl_sim.data_processing.FedDataset.html index f94633c..d9b3a1b 100644 --- a/api/generated/fl_sim.data_processing.FedDataset.html +++ b/api/generated/fl_sim.data_processing.FedDataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedEMNIST.html b/api/generated/fl_sim.data_processing.FedEMNIST.html index dc548aa..f8bd731 100644 --- a/api/generated/fl_sim.data_processing.FedEMNIST.html +++ b/api/generated/fl_sim.data_processing.FedEMNIST.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedLibSVMDataset.html b/api/generated/fl_sim.data_processing.FedLibSVMDataset.html index da349a3..25c0d16 100644 --- a/api/generated/fl_sim.data_processing.FedLibSVMDataset.html +++ b/api/generated/fl_sim.data_processing.FedLibSVMDataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedMNIST.html b/api/generated/fl_sim.data_processing.FedMNIST.html index a3c1d04..7d8ac4d 100644 --- a/api/generated/fl_sim.data_processing.FedMNIST.html +++ b/api/generated/fl_sim.data_processing.FedMNIST.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedNLPDataset.html b/api/generated/fl_sim.data_processing.FedNLPDataset.html index aa17d61..fd4bb32 100644 --- a/api/generated/fl_sim.data_processing.FedNLPDataset.html +++ b/api/generated/fl_sim.data_processing.FedNLPDataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedProxFEMNIST.html b/api/generated/fl_sim.data_processing.FedProxFEMNIST.html index aca634c..eab709e 100644 --- a/api/generated/fl_sim.data_processing.FedProxFEMNIST.html +++ b/api/generated/fl_sim.data_processing.FedProxFEMNIST.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedProxMNIST.html b/api/generated/fl_sim.data_processing.FedProxMNIST.html index a09303d..1d6c858 100644 --- a/api/generated/fl_sim.data_processing.FedProxMNIST.html +++ b/api/generated/fl_sim.data_processing.FedProxMNIST.html @@ -54,7 +54,7 @@ - + @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -661,11 +662,11 @@

    FedProxMNIST

    next

    -

    FedShakespeare

    +

    TinyImageNet

    diff --git a/api/generated/fl_sim.data_processing.FedProxSent140.html b/api/generated/fl_sim.data_processing.FedProxSent140.html index a63f91e..d3b1570 100644 --- a/api/generated/fl_sim.data_processing.FedProxSent140.html +++ b/api/generated/fl_sim.data_processing.FedProxSent140.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedRotatedCIFAR10.html b/api/generated/fl_sim.data_processing.FedRotatedCIFAR10.html index 5372dae..a7b630a 100644 --- a/api/generated/fl_sim.data_processing.FedRotatedCIFAR10.html +++ b/api/generated/fl_sim.data_processing.FedRotatedCIFAR10.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedRotatedMNIST.html b/api/generated/fl_sim.data_processing.FedRotatedMNIST.html index 154476e..608bf73 100644 --- a/api/generated/fl_sim.data_processing.FedRotatedMNIST.html +++ b/api/generated/fl_sim.data_processing.FedRotatedMNIST.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedShakespeare.html b/api/generated/fl_sim.data_processing.FedShakespeare.html index ac75dd6..4f1508c 100644 --- a/api/generated/fl_sim.data_processing.FedShakespeare.html +++ b/api/generated/fl_sim.data_processing.FedShakespeare.html @@ -55,7 +55,7 @@ - + @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -682,12 +683,12 @@

    FedShakespeare

    previous

    -

    FedProxMNIST

    +

    TinyImageNet

    FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.FedVisionDataset.html b/api/generated/fl_sim.data_processing.FedVisionDataset.html index 362d0ab..c00b09e 100644 --- a/api/generated/fl_sim.data_processing.FedVisionDataset.html +++ b/api/generated/fl_sim.data_processing.FedVisionDataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.TinyImageNet.html b/api/generated/fl_sim.data_processing.TinyImageNet.html new file mode 100644 index 0000000..707ddc9 --- /dev/null +++ b/api/generated/fl_sim.data_processing.TinyImageNet.html @@ -0,0 +1,757 @@ + + + + + + + + + + + + TinyImageNet — fl-sim 0.0.1 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + +
    + + + + + + + + + + + + + +
    + +
    + + + +
    + +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    + + + + + + + + +
    + +
    +

    TinyImageNet#

    +
    +
    +class fl_sim.data_processing.TinyImageNet(datadir: Path | str | None = None, num_clients: int = 100, alpha: float = 0.5, transform: str | Callable | None = 'none', seed: int = 0)[source]#
    +

    Bases: FedVisionDataset

    +

    Tiny ImageNet dataset.

    +

    The Tiny ImageNet dataset is a subset of the ImageNet dataset. It consists of 200 classes, each with 500 training +images and 50 validation images and 50 test images. The images are downsampled to 64x64 pixels.

    +

    The original dataset [1] contains the test images while the hugingface dataset [3] does not contain the test images. +We use the hugingface dataset [3] for simplicity, and treat the validation set as the test set.

    +
    +
    Parameters:
    +
      +
    • datadir (Union[pathlib.Path, str], optional) – Directory to store data. +If None, use default directory.

    • +
    • num_clients (int, default 100) – Number of clients.

    • +
    • alpha (float, default 0.5) – Concentration parameter for the Dirichlet distribution.

    • +
    • transform (Union[str, Callable], default "none") – Transform to apply to data. Conventions: +"none" means no transform, using TensorDataset.

    • +
    • seed (int, default 0) – Random seed for data partitioning.

    • +
    • **extra_config (dict, optional) – Extra configurations.

    • +
    +
    +
    +

    References

    + +
    +
    +property candidate_models: Dict[str, Module]#
    +

    A set of candidate models.

    +
    + +
    +
    +property doi: List[str]#
    +

    DOI(s) related to the dataset.

    +
    + +
    +
    +evaluate(probs: Tensor, truths: Tensor) Dict[str, float][source]#
    +

    Evaluation using predictions and ground truth.

    +
    +
    Parameters:
    +
    +
    +
    Returns:
    +

    Evaluation results.

    +
    +
    Return type:
    +

    Dict[str, float]

    +
    +
    +
    + +
    +
    +extra_repr_keys() List[str][source]#
    +

    Extra keys for __repr__() and __str__().

    +
    + +
    +
    +get_dataloader(train_bs: int | None = None, test_bs: int | None = None, client_idx: int | None = None) Tuple[DataLoader, DataLoader][source]#
    +

    Get local dataloader at client client_idx or get the global dataloader.

    +
    +
    Parameters:
    +
      +
    • train_bs (int, optional) – Batch size for training dataloader. +If None, use default batch size.

    • +
    • test_bs (int, optional) – Batch size for testing dataloader. +If None, use default batch size.

    • +
    • client_idx (int, optional) – Index of the client to get dataloader. +If None, get the dataloader containing all data. +Usually used for centralized training.

    • +
    +
    +
    Returns:
    +

    +

    +
    +
    +
    + +
    +
    +property label_map: dict#
    +

    Label map for the dataset.

    +
    + +
    +
    +random_grid_view(nrow: int, ncol: int, save_path: Path | str | None = None) None[source]#
    +

    Select randomly nrow x ncol images from the dataset +and plot them in a grid.

    +
    +
    Parameters:
    +
      +
    • nrow (int) – Number of rows in the grid.

    • +
    • ncol (int) – Number of columns in the grid.

    • +
    • save_path (Union[str, Path], optional) – Path to save the figure. If None, do not save the figure.

    • +
    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +property url: str#
    +

    URL for downloading the original dataset.

    +
    + +
    +
    +view_image(client_idx: int, image_idx: int) None[source]#
    +

    View a single image.

    +
    +
    Parameters:
    +
      +
    • client_idx (int) – Index of the client on which the image is located.

    • +
    • image_idx (int) – Index of the image in the client.

    • +
    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    + +
    + + +
    + + + + + + + + +
    + + + + + + +
    +
    + + +
    + + +
    +
    +
    + + + + + +
    +
    + + \ No newline at end of file diff --git a/api/generated/fl_sim.data_processing.get_fed_dataset.html b/api/generated/fl_sim.data_processing.get_fed_dataset.html index 90f020c..fa7519c 100644 --- a/api/generated/fl_sim.data_processing.get_fed_dataset.html +++ b/api/generated/fl_sim.data_processing.get_fed_dataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.list_fed_dataset.html b/api/generated/fl_sim.data_processing.list_fed_dataset.html index f182e1b..79ef435 100644 --- a/api/generated/fl_sim.data_processing.list_fed_dataset.html +++ b/api/generated/fl_sim.data_processing.list_fed_dataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.data_processing.register_fed_dataset.html b/api/generated/fl_sim.data_processing.register_fed_dataset.html index 0c4174f..e501930 100644 --- a/api/generated/fl_sim.data_processing.register_fed_dataset.html +++ b/api/generated/fl_sim.data_processing.register_fed_dataset.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CLFMixin.html b/api/generated/fl_sim.models.CLFMixin.html index 588c9cd..0c49c45 100644 --- a/api/generated/fl_sim.models.CLFMixin.html +++ b/api/generated/fl_sim.models.CLFMixin.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNCifar.html b/api/generated/fl_sim.models.CNNCifar.html index be56a1e..dace867 100644 --- a/api/generated/fl_sim.models.CNNCifar.html +++ b/api/generated/fl_sim.models.CNNCifar.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNCifar_Small.html b/api/generated/fl_sim.models.CNNCifar_Small.html index 2e8861f..21344d2 100644 --- a/api/generated/fl_sim.models.CNNCifar_Small.html +++ b/api/generated/fl_sim.models.CNNCifar_Small.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNCifar_Tiny.html b/api/generated/fl_sim.models.CNNCifar_Tiny.html index 03e2e55..267e676 100644 --- a/api/generated/fl_sim.models.CNNCifar_Tiny.html +++ b/api/generated/fl_sim.models.CNNCifar_Tiny.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNFEMnist.html b/api/generated/fl_sim.models.CNNFEMnist.html index 3c097f8..b8f0d4c 100644 --- a/api/generated/fl_sim.models.CNNFEMnist.html +++ b/api/generated/fl_sim.models.CNNFEMnist.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNFEMnist_Tiny.html b/api/generated/fl_sim.models.CNNFEMnist_Tiny.html index 32b5187..893bbee 100644 --- a/api/generated/fl_sim.models.CNNFEMnist_Tiny.html +++ b/api/generated/fl_sim.models.CNNFEMnist_Tiny.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.CNNMnist.html b/api/generated/fl_sim.models.CNNMnist.html index 6be7df4..6dc382c 100644 --- a/api/generated/fl_sim.models.CNNMnist.html +++ b/api/generated/fl_sim.models.CNNMnist.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.DiffMixin.html b/api/generated/fl_sim.models.DiffMixin.html index 741d183..70bf66b 100644 --- a/api/generated/fl_sim.models.DiffMixin.html +++ b/api/generated/fl_sim.models.DiffMixin.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.FedPDMLP.html b/api/generated/fl_sim.models.FedPDMLP.html index e444292..bbe5559 100644 --- a/api/generated/fl_sim.models.FedPDMLP.html +++ b/api/generated/fl_sim.models.FedPDMLP.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.LogisticRegression.html b/api/generated/fl_sim.models.LogisticRegression.html index 00db58e..7187f56 100644 --- a/api/generated/fl_sim.models.LogisticRegression.html +++ b/api/generated/fl_sim.models.LogisticRegression.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.MLP.html b/api/generated/fl_sim.models.MLP.html index 27e4141..d8b77ca 100644 --- a/api/generated/fl_sim.models.MLP.html +++ b/api/generated/fl_sim.models.MLP.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.REGMixin.html b/api/generated/fl_sim.models.REGMixin.html index 1266bf3..5393a3b 100644 --- a/api/generated/fl_sim.models.REGMixin.html +++ b/api/generated/fl_sim.models.REGMixin.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.RNN_OriginalFedAvg.html b/api/generated/fl_sim.models.RNN_OriginalFedAvg.html index 9a6da32..9b2fe13 100644 --- a/api/generated/fl_sim.models.RNN_OriginalFedAvg.html +++ b/api/generated/fl_sim.models.RNN_OriginalFedAvg.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.RNN_Sent140.html b/api/generated/fl_sim.models.RNN_Sent140.html index b14c11d..a4bc54f 100644 --- a/api/generated/fl_sim.models.RNN_Sent140.html +++ b/api/generated/fl_sim.models.RNN_Sent140.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.RNN_Sent140_LITE.html b/api/generated/fl_sim.models.RNN_Sent140_LITE.html index 5a776bf..b24bc33 100644 --- a/api/generated/fl_sim.models.RNN_Sent140_LITE.html +++ b/api/generated/fl_sim.models.RNN_Sent140_LITE.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.RNN_StackOverFlow.html b/api/generated/fl_sim.models.RNN_StackOverFlow.html index 8cc48a1..51d3195 100644 --- a/api/generated/fl_sim.models.RNN_StackOverFlow.html +++ b/api/generated/fl_sim.models.RNN_StackOverFlow.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.ResNet10.html b/api/generated/fl_sim.models.ResNet10.html index 6db5bee..b01d480 100644 --- a/api/generated/fl_sim.models.ResNet10.html +++ b/api/generated/fl_sim.models.ResNet10.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.ResNet18.html b/api/generated/fl_sim.models.ResNet18.html index b9aeb6a..f308e92 100644 --- a/api/generated/fl_sim.models.ResNet18.html +++ b/api/generated/fl_sim.models.ResNet18.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.SVC.html b/api/generated/fl_sim.models.SVC.html index 521a384..3a17538 100644 --- a/api/generated/fl_sim.models.SVC.html +++ b/api/generated/fl_sim.models.SVC.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.SVR.html b/api/generated/fl_sim.models.SVR.html index 4731ed3..244cd8d 100644 --- a/api/generated/fl_sim.models.SVR.html +++ b/api/generated/fl_sim.models.SVR.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.ShrinkedResNet.html b/api/generated/fl_sim.models.ShrinkedResNet.html index fd2e708..9f8d002 100644 --- a/api/generated/fl_sim.models.ShrinkedResNet.html +++ b/api/generated/fl_sim.models.ShrinkedResNet.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.reset_parameters.html b/api/generated/fl_sim.models.reset_parameters.html index a91a067..01dda8b 100644 --- a/api/generated/fl_sim.models.reset_parameters.html +++ b/api/generated/fl_sim.models.reset_parameters.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.models.top_n_accuracy.html b/api/generated/fl_sim.models.top_n_accuracy.html index 60a3bc5..ec8302d 100644 --- a/api/generated/fl_sim.models.top_n_accuracy.html +++ b/api/generated/fl_sim.models.top_n_accuracy.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.nodes.Client.html b/api/generated/fl_sim.nodes.Client.html index 46e34f5..f157eaa 100644 --- a/api/generated/fl_sim.nodes.Client.html +++ b/api/generated/fl_sim.nodes.Client.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.nodes.ClientConfig.html b/api/generated/fl_sim.nodes.ClientConfig.html index 7c614a6..0ba0aa4 100644 --- a/api/generated/fl_sim.nodes.ClientConfig.html +++ b/api/generated/fl_sim.nodes.ClientConfig.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • diff --git a/api/generated/fl_sim.nodes.Node.html b/api/generated/fl_sim.nodes.Node.html index 3422119..e1ced4f 100644 --- a/api/generated/fl_sim.nodes.Node.html +++ b/api/generated/fl_sim.nodes.Node.html @@ -186,6 +186,7 @@
  • FedRotatedMNIST
  • FedProxFEMNIST
  • FedProxMNIST
  • +
  • TinyImageNet
  • FedShakespeare
  • FedProxSent140
  • FedSynthetic
  • @@ -496,7 +497,7 @@

    Node#
    static aggregate_results_from_json_log(d: dict | str | Path, part: str = 'val', metric: str = 'acc') ndarray[source]#
    -

    Aggregate the federated results from csv log.

    +

    Aggregate the federated results from json log.

    Parameters:
    -
  • CSVLogger -
  • JsonLogger
  • -
    class fl_sim.utils.loggers.JsonLogger(algorithm: str, dataset: str, model: str, fmt: str = 'json', log_dir: Path | str | None = None, log_suffix: str | None = None, verbose: int = 1)[source]#
    @@ -1073,8 +945,6 @@

    fl_sim.utils"txt_logger": bool, optional, whether to add a TxtLogger instance.

    -
  • "csv_logger": bool, optional, -whether to add a CSVLogger instance.

  • "json_logger": bool, optional, whether to add a JsonLogger instance.

  • "fmt": {“json”, “yaml”}, optional, @@ -1634,16 +1504,6 @@

    fl_sim.utilsBaseLogger.set_log_dir()

  • -
  • CSVLogger -
  • JsonLogger
  • char_to_id() (fl_sim.data_processing.FedShakespeare method) @@ -486,18 +489,16 @@

    C

  • CLFMixin (class in fl_sim.models)
  • Client (class in fl_sim.nodes) -
  • -
  • client_cls (fl_sim.nodes.Server property)
  • @@ -639,6 +640,8 @@

    E

  • (fl_sim.data_processing.FedShakespeare method)
  • (fl_sim.data_processing.FedSynthetic method) +
  • +
  • (fl_sim.data_processing.TinyImageNet method)
  • (fl_sim.nodes.Client method)
  • @@ -669,6 +672,8 @@

    E

  • (fl_sim.data_processing.FedRotatedMNIST method)
  • (fl_sim.data_processing.FedSynthetic method) +
  • +
  • (fl_sim.data_processing.TinyImageNet method)
  • (fl_sim.nodes.Client method)
  • @@ -726,8 +731,6 @@

    F

  • filename (fl_sim.utils.loggers.BaseLogger property)
  • + +
    • fl_sim.optimizers @@ -763,8 +768,6 @@

      F

    • module
    - -
  • LInfNorm (class in fl_sim.regularizers) @@ -1011,8 +1014,6 @@

    L

  • log_message() (fl_sim.utils.loggers.BaseLogger method)
      +
    • required_config_fields (fl_sim.nodes.Node property) +
    • reset() (fl_sim.utils.loggers.BaseLogger method)
        -
      • (fl_sim.utils.loggers.CSVLogger method) -
      • (fl_sim.utils.loggers.JsonLogger method)
      • (fl_sim.utils.loggers.LoggerManager method) @@ -1253,6 +1252,8 @@

        S

        T

        @@ -1327,6 +1330,8 @@

        V

      • (fl_sim.data_processing.FedRotatedCIFAR10 method)
      • (fl_sim.data_processing.FedRotatedMNIST method) +
      • +
      • (fl_sim.data_processing.TinyImageNet method)
      • diff --git a/index.html b/index.html index 13a7024..48a86e3 100644 --- a/index.html +++ b/index.html @@ -187,6 +187,7 @@
      • FedRotatedMNIST
      • FedProxFEMNIST
      • FedProxMNIST
      • +
      • TinyImageNet
      • FedShakespeare
      • FedProxSent140
      • FedSynthetic
      • diff --git a/install.html b/install.html index d1c5264..f7f5acf 100644 --- a/install.html +++ b/install.html @@ -186,6 +186,7 @@
      • FedRotatedMNIST
      • FedProxFEMNIST
      • FedProxMNIST
      • +
      • TinyImageNet
      • FedShakespeare
      • FedProxSent140
      • FedSynthetic
      • diff --git a/objects.inv b/objects.inv index 189df54..40a85e5 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 4ff3794..8074518 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -188,6 +188,7 @@
      • FedRotatedMNIST
      • FedProxFEMNIST
      • FedProxMNIST
      • +
      • TinyImageNet
      • FedShakespeare
      • FedProxSent140
      • FedSynthetic
      • diff --git a/search.html b/search.html index 79e2bf5..8c2373b 100644 --- a/search.html +++ b/search.html @@ -187,6 +187,7 @@
      • FedRotatedMNIST
      • FedProxFEMNIST
      • FedProxMNIST
      • +
      • TinyImageNet
      • FedShakespeare
      • FedProxSent140
      • FedSynthetic
      • diff --git a/searchindex.js b/searchindex.js index 92195f6..d110ada 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["algorithms", "algorithms/operator_splitting", "algorithms/overview", "algorithms/primal_dual", "algorithms/proximal", "algorithms/skipping", "api/datasets", "api/generated/fl_sim.data_processing.FedCIFAR", "api/generated/fl_sim.data_processing.FedCIFAR100", "api/generated/fl_sim.data_processing.FedDataset", "api/generated/fl_sim.data_processing.FedEMNIST", "api/generated/fl_sim.data_processing.FedLibSVMDataset", "api/generated/fl_sim.data_processing.FedMNIST", "api/generated/fl_sim.data_processing.FedNLPDataset", "api/generated/fl_sim.data_processing.FedProxFEMNIST", "api/generated/fl_sim.data_processing.FedProxMNIST", "api/generated/fl_sim.data_processing.FedProxSent140", "api/generated/fl_sim.data_processing.FedRotatedCIFAR10", "api/generated/fl_sim.data_processing.FedRotatedMNIST", "api/generated/fl_sim.data_processing.FedShakespeare", "api/generated/fl_sim.data_processing.FedSynthetic", "api/generated/fl_sim.data_processing.FedVisionDataset", "api/generated/fl_sim.data_processing.get_fed_dataset", "api/generated/fl_sim.data_processing.list_fed_dataset", "api/generated/fl_sim.data_processing.register_fed_dataset", "api/generated/fl_sim.models.CLFMixin", "api/generated/fl_sim.models.CNNCifar", "api/generated/fl_sim.models.CNNCifar_Small", "api/generated/fl_sim.models.CNNCifar_Tiny", "api/generated/fl_sim.models.CNNFEMnist", "api/generated/fl_sim.models.CNNFEMnist_Tiny", "api/generated/fl_sim.models.CNNMnist", "api/generated/fl_sim.models.DiffMixin", "api/generated/fl_sim.models.FedPDMLP", "api/generated/fl_sim.models.LogisticRegression", "api/generated/fl_sim.models.MLP", "api/generated/fl_sim.models.REGMixin", "api/generated/fl_sim.models.RNN_OriginalFedAvg", "api/generated/fl_sim.models.RNN_Sent140", "api/generated/fl_sim.models.RNN_Sent140_LITE", "api/generated/fl_sim.models.RNN_StackOverFlow", "api/generated/fl_sim.models.ResNet10", "api/generated/fl_sim.models.ResNet18", "api/generated/fl_sim.models.SVC", "api/generated/fl_sim.models.SVR", "api/generated/fl_sim.models.ShrinkedResNet", "api/generated/fl_sim.models.reset_parameters", "api/generated/fl_sim.models.top_n_accuracy", "api/generated/fl_sim.nodes.Client", "api/generated/fl_sim.nodes.ClientConfig", "api/generated/fl_sim.nodes.Node", "api/generated/fl_sim.nodes.Server", "api/generated/fl_sim.nodes.ServerConfig", "api/generated/fl_sim.optimizers.get_optimizer", "api/generated/fl_sim.optimizers.register_optimizer", "api/generated/fl_sim.regularizers.L1Norm", "api/generated/fl_sim.regularizers.L2Norm", "api/generated/fl_sim.regularizers.L2NormSquared", "api/generated/fl_sim.regularizers.LInfNorm", "api/generated/fl_sim.regularizers.NullRegularizer", "api/generated/fl_sim.regularizers.Regularizer", "api/generated/fl_sim.regularizers.get_regularizer", "api/models", "api/nodes", "api/optimizers", "api/regularizers", "api/utils", "cli", "examples", "index", "install", "viz"], "filenames": ["algorithms.rst", "algorithms/operator_splitting.rst", "algorithms/overview.rst", "algorithms/primal_dual.rst", "algorithms/proximal.rst", "algorithms/skipping.rst", "api/datasets.rst", "api/generated/fl_sim.data_processing.FedCIFAR.rst", "api/generated/fl_sim.data_processing.FedCIFAR100.rst", "api/generated/fl_sim.data_processing.FedDataset.rst", "api/generated/fl_sim.data_processing.FedEMNIST.rst", "api/generated/fl_sim.data_processing.FedLibSVMDataset.rst", "api/generated/fl_sim.data_processing.FedMNIST.rst", "api/generated/fl_sim.data_processing.FedNLPDataset.rst", "api/generated/fl_sim.data_processing.FedProxFEMNIST.rst", "api/generated/fl_sim.data_processing.FedProxMNIST.rst", "api/generated/fl_sim.data_processing.FedProxSent140.rst", "api/generated/fl_sim.data_processing.FedRotatedCIFAR10.rst", "api/generated/fl_sim.data_processing.FedRotatedMNIST.rst", "api/generated/fl_sim.data_processing.FedShakespeare.rst", "api/generated/fl_sim.data_processing.FedSynthetic.rst", "api/generated/fl_sim.data_processing.FedVisionDataset.rst", "api/generated/fl_sim.data_processing.get_fed_dataset.rst", "api/generated/fl_sim.data_processing.list_fed_dataset.rst", "api/generated/fl_sim.data_processing.register_fed_dataset.rst", "api/generated/fl_sim.models.CLFMixin.rst", "api/generated/fl_sim.models.CNNCifar.rst", "api/generated/fl_sim.models.CNNCifar_Small.rst", "api/generated/fl_sim.models.CNNCifar_Tiny.rst", "api/generated/fl_sim.models.CNNFEMnist.rst", "api/generated/fl_sim.models.CNNFEMnist_Tiny.rst", "api/generated/fl_sim.models.CNNMnist.rst", "api/generated/fl_sim.models.DiffMixin.rst", "api/generated/fl_sim.models.FedPDMLP.rst", "api/generated/fl_sim.models.LogisticRegression.rst", "api/generated/fl_sim.models.MLP.rst", "api/generated/fl_sim.models.REGMixin.rst", "api/generated/fl_sim.models.RNN_OriginalFedAvg.rst", "api/generated/fl_sim.models.RNN_Sent140.rst", "api/generated/fl_sim.models.RNN_Sent140_LITE.rst", "api/generated/fl_sim.models.RNN_StackOverFlow.rst", "api/generated/fl_sim.models.ResNet10.rst", "api/generated/fl_sim.models.ResNet18.rst", "api/generated/fl_sim.models.SVC.rst", "api/generated/fl_sim.models.SVR.rst", "api/generated/fl_sim.models.ShrinkedResNet.rst", "api/generated/fl_sim.models.reset_parameters.rst", "api/generated/fl_sim.models.top_n_accuracy.rst", "api/generated/fl_sim.nodes.Client.rst", "api/generated/fl_sim.nodes.ClientConfig.rst", "api/generated/fl_sim.nodes.Node.rst", "api/generated/fl_sim.nodes.Server.rst", "api/generated/fl_sim.nodes.ServerConfig.rst", "api/generated/fl_sim.optimizers.get_optimizer.rst", "api/generated/fl_sim.optimizers.register_optimizer.rst", "api/generated/fl_sim.regularizers.L1Norm.rst", "api/generated/fl_sim.regularizers.L2Norm.rst", "api/generated/fl_sim.regularizers.L2NormSquared.rst", "api/generated/fl_sim.regularizers.LInfNorm.rst", "api/generated/fl_sim.regularizers.NullRegularizer.rst", "api/generated/fl_sim.regularizers.Regularizer.rst", "api/generated/fl_sim.regularizers.get_regularizer.rst", "api/models.rst", "api/nodes.rst", "api/optimizers.rst", "api/regularizers.rst", "api/utils.rst", "cli.rst", "examples.rst", "index.rst", "install.rst", "viz.rst"], "titles": ["Federated learning algorithms", "Operator Splitting Algorithms in Federated Learning", "Overview of Optimization Algorithms in Federated Learning", "Primal-Dual Algorithms in Federated Learning", "Proximal Algorithms in Federated Learning", "Skipping Algorithms in Federated Learning", "fl_sim.data_processing", "FedCIFAR", "FedCIFAR100", "FedDataset", "FedEMNIST", "FedLibSVMDataset", "FedMNIST", "FedNLPDataset", "FedProxFEMNIST", "FedProxMNIST", "FedProxSent140", "FedRotatedCIFAR10", "FedRotatedMNIST", "FedShakespeare", "FedSynthetic", "FedVisionDataset", "fl_sim.data_processing.get_fed_dataset", "fl_sim.data_processing.list_fed_dataset", "fl_sim.data_processing.register_fed_dataset", "CLFMixin", "CNNCifar", "CNNCifar_Small", "CNNCifar_Tiny", "CNNFEMnist", "CNNFEMnist_Tiny", "CNNMnist", "DiffMixin", "FedPDMLP", "LogisticRegression", "MLP", "REGMixin", "RNN_OriginalFedAvg", "RNN_Sent140", "RNN_Sent140_LITE", "RNN_StackOverFlow", "ResNet10", "ResNet18", "SVC", "SVR", "ShrinkedResNet", "fl_sim.models.reset_parameters", "fl_sim.models.top_n_accuracy", "Client", "ClientConfig", "Node", "Server", "ServerConfig", "fl_sim.optimizers.get_optimizer", "fl_sim.optimizers.register_optimizer", "L1Norm", "L2Norm", "L2NormSquared", "LInfNorm", "NullRegularizer", "Regularizer", "fl_sim.regularizers.get_regularizer", "fl_sim.models", "fl_sim.nodes", "fl_sim.optimizers", "fl_sim.regularizers", "fl_sim.utils", "Command line interface", "Usage examples", "Welcome to fl-sim\u2019s documentation!", "Installation instructions", "Visualization subsystem"], "terms": {"optim": [0, 3, 4, 12, 14, 37, 40, 48, 49, 51, 65, 66, 69], "have": [0, 2, 4, 9, 13, 21, 67, 71], "been": [0, 2, 14], "central": [0, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 51], "problem": [0, 2, 3, 4, 49, 64, 65], "field": [0, 2, 4, 50], "sinc": [0, 2, 4, 34, 43, 44], "its": [0, 2, 4, 37, 40, 46, 50], "incept": 0, "thi": [0, 2, 4, 6, 7, 10, 12, 14, 15, 19, 20, 28, 32, 34, 37, 39, 40, 41, 43, 44, 48, 51, 62, 64, 65, 66], "chapter": 0, "contain": [0, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 62, 64, 65, 66], "collect": [0, 19], "propos": [0, 2, 4, 14, 15, 20], "literatur": [0, 2], "which": [0, 2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 32, 49, 51, 53, 63, 66], "analyz": [0, 2], "from": [0, 4, 7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 25, 28, 29, 30, 31, 33, 37, 38, 40, 42, 50, 51, 53, 64, 66], "viewpoint": 0, "theori": [0, 2, 17, 18, 51], "espcial": [0, 2], "oper": [0, 2, 4, 55, 56, 57, 58, 59, 60, 71], "split": [0, 4], "overview": 0, "proxim": [0, 55, 56, 57, 58, 59, 60, 64], "primal": 0, "dual": [0, 64], "skip": [0, 2], "write": [1, 3, 4, 5, 68], "more": [1, 2, 3, 4, 5, 32, 50, 70], "The": [2, 4, 7, 10, 13, 14, 17, 18, 19, 20, 24, 25, 32, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 63, 66, 67, 70, 71], "most": [2, 7, 10], "import": [2, 53], "contribut": 2, "initi": [2, 51], "work": [2, 4, 19], "mcmahan": [2, 37, 40], "et": [2, 4, 17, 18, 37, 40], "al": [2, 4, 17, 18, 37, 40], "1": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 29, 30, 31, 33, 35, 37, 38, 40, 47, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 66, 67], "wa": 2, "introduct": 2, "mathemat": 2, "solv": [2, 3, 4, 49, 64], "follow": [2, 4, 10, 12, 14, 19, 50, 55, 56, 57, 58, 59, 60, 66, 70, 71], "minim": [2, 4], "empir": 2, "risk": 2, "function": [2, 4, 34, 35, 37, 40, 43, 44, 48, 51, 55, 56, 57, 58, 59, 60, 66], "declaremathoper": [2, 4], "expect": [2, 4], "mathbb": [2, 4], "e": [2, 4, 7, 55, 56, 57, 58, 59, 60, 70, 71], "newcommand": [2, 4], "r": [2, 4, 7, 55, 56, 57, 58, 59, 60], "begin": [2, 4], "arrai": [2, 4, 50, 66], "cl": [2, 4], "limits_": [2, 4], "theta": [2, 4], "d": [2, 4, 50, 66], "f": [2, 4, 7], "k": [2, 4], "sim": [2, 66, 67, 70, 71], "mathcal": [2, 4], "p": [2, 4, 67, 71], "f_k": [2, 4], "text": [2, 4, 66], "where": [2, 4, 7, 15, 21, 51, 55, 56, 57, 58, 59, 60], "x": [2, 7, 10, 12, 14, 15, 17, 18, 34, 43, 44, 66], "y": [2, 4, 37], "_k": [2, 4], "ell_k": 2, "end": [2, 4, 66], "i": [2, 3, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 25, 28, 35, 37, 41, 48, 50, 51, 55, 56, 57, 58, 59, 60, 63, 66, 67, 70, 71], "loss": [2, 35, 48, 50, 66], "client": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 49, 50, 51, 52, 66, 67], "data": [2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 33, 35, 36, 37, 48, 50, 51, 66], "distribut": [2, 4, 12, 20, 51], "If": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 35, 42, 51, 52, 54, 55, 56, 57, 58, 59, 60, 66], "we": [2, 4, 12, 14, 64, 67], "simpli": 2, "let": [2, 4], "2": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 32, 33, 35, 37, 38, 39, 50, 52, 53, 55, 56, 57, 58, 59, 60, 66], "ldot": 2, "can": [2, 4, 7, 35, 37, 40, 45, 48, 51, 53, 66, 67, 70, 71], "simplifi": 2, "sum": [2, 4, 48], "w_k": 2, "For": [2, 4, 50, 67, 70], "further": [2, 4, 14], "simplic": 2, "often": 2, "take": [2, 34, 43, 44], "frac": [2, 4, 55, 56, 57, 58, 59, 60], "ar": [2, 4, 7, 10, 17, 18, 39, 50, 51, 63, 66], "usual": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "assum": [2, 4], "satisfi": [2, 4], "condit": [2, 4], "a1": 2, "l": [2, 4, 58], "smooth": [2, 4, 71], "0": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 33, 35, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 66, 67], "thei": 2, "lipschitz": 2, "continu": 2, "gradient": [2, 4, 50, 51], "c": [2, 4, 7, 21], "lvert": [2, 4, 55, 56, 57, 58, 59, 60], "nabla": [2, 4], "rvert": [2, 4], "leqslant": [2, 4], "quad": 2, "foral": [2, 4], "a2": 2, "rang": [2, 10, 12, 14, 48, 51, 71], "dom": 2, "infti": 2, "nonempti": 2, "lower": [2, 10], "bound": [2, 4, 71], "exist": [2, 4, 24, 54], "constant": [2, 4, 49], "geqslant": 2, "equival": [2, 4, 59], "inf": [2, 4], "In": [2, 3, 4, 37, 40], "mani": 2, "case": [2, 4, 10, 51], "order": [2, 4, 14, 66], "facilit": 2, "analysi": [2, 4, 38, 39], "converg": [2, 4, 48, 50, 51], "also": [2, 4, 12, 37, 64, 66], "make": [2, 4, 66], "some": [2, 4, 64], "assumpt": 2, "about": 2, "object": [2, 4, 25, 32, 36, 38, 66], "a3": 2, "g": [2, 70, 71], "And": 2, "a4": 2, "ident": [2, 4], "independ": 2, "across": [2, 4], "ani": [2, 4, 7, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 22, 24, 49, 51, 52, 53, 54, 66], "varepsilon": [2, 4], "b": [2, 4, 66], "left": [2, 4], "middl": 2, "right": [2, 4], "non": [2, 4, 15], "need": [2, 4, 9, 11, 18, 34, 43, 44], "quantiti": 2, "measur": 2, "degre": 2, "statist": [2, 10, 14, 19, 37], "heterogen": [2, 4, 12, 14, 52], "defin": [2, 34, 43, 44], "number": [2, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 49, 50, 51, 52, 66], "wai": 2, "karimireddi": 2, "zhang": [2, 4], "3": [2, 4, 10, 21, 26, 27, 28, 50, 66, 67, 70], "li": [2, 4], "4": [2, 4, 18, 50, 66, 71], "5": [2, 4, 66], "exampl": [2, 7, 10, 19, 32, 48, 50, 53, 64, 66, 67, 69], "so": [2, 4, 45, 66], "call": [2, 4, 34, 43, 44], "dissimilar": [2, 4], "bgd": 2, "denot": [2, 4], "us": [2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 26, 27, 28, 29, 31, 35, 37, 38, 40, 41, 42, 49, 51, 52, 54, 55, 56, 57, 58, 59, 60, 64, 66, 67, 70, 71], "specif": [2, 4], "dfrac": 2, "It": [2, 4, 71], "should": [2, 4, 34, 43, 44, 50, 51, 53], "note": [2, 12, 14, 71], "degenr": 2, "sometim": 2, "proof": 2, "one": [2, 4, 32, 34, 43, 44, 51, 66, 70, 71], "convex": [2, 4], "a5": 2, "alpha": [2, 20], "set": [2, 4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 49, 50, 51, 52, 66], "strong": 2, "mu": [2, 4], "sai": 2, "strongli": 2, "due": 2, "natur": 2, "layer": [2, 33, 35, 37, 38, 39, 40, 45], "decoupl": 2, "structur": [2, 32, 37, 40, 50, 66], "consid": 2, "constrain": [2, 4], "theta_k": [2, 4], "subject": [2, 4], "easi": 2, "find": [2, 66], "between": [2, 32], "11": [2, 4], "unconstrain": 2, "formul": 2, "consensu": 2, "boyd": [2, 4], "6": [2, 4, 66, 70], "superior": 2, "becom": [2, 4], "block": [2, 45], "separ": [2, 66], "suitabl": 2, "design": [2, 4], "parallel": [2, 51], "core": [2, 63], "idea": [2, 4], "full": [2, 14], "local": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 48, 49, 50, 51, 64], "comput": [2, 32, 34, 43, 44, 50, 66], "resourc": 2, "each": [2, 11, 12, 13, 19, 20, 21, 25, 37, 40, 45, 52, 66], "perform": [2, 19, 34, 43, 44, 51, 66], "multipl": [2, 4, 17, 18, 67], "iter": [2, 4, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60], "befor": 2, "upload": 2, "model": [2, 4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 50, 51, 52, 53, 66, 67, 69], "server": [2, 4, 48, 49, 50, 52, 66, 67], "allevi": 2, "straggler": 2, "reduc": [2, 4], "commun": [2, 4, 37, 48, 50, 51], "overhead": [2, 4], "henc": [2, 4, 14, 39], "acceler": 2, "mai": 2, "well": [2, 63, 66], "thought": 2, "simpl": [2, 62, 69, 71], "form": [2, 4, 66], "were": [2, 4], "develop": 2, "mishchenko": 2, "7": [2, 4, 67], "loizou": 2, "8": [2, 4, 37], "pseudocod": [2, 4], "shown": 2, "achiev": [2, 51], "good": [2, 4], "numer": [2, 12, 71], "result": [2, 7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 50], "see": [2, 4], "section": [2, 67], "under": 2, "properli": 2, "khale": 2, "9": [2, 4, 12, 14, 18], "10": [2, 4, 7, 14, 17, 18, 20, 32, 53, 67], "There": 2, "sever": 2, "deal": 2, "issu": 2, "zhou": 2, "cong": 2, "extra": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 48, 49, 51, 52, 60, 66], "etc": [2, 35, 50, 66, 71], "fact": 2, "reformul": 2, "col": 2, "operatornam": 2, "theta_1": 2, "cdot": 2, "pmatrix": 2, "vdot": 2, "kd": 2, "project": [2, 69], "descent": [2, 4], "pgd": 2, "an": [2, 4, 17, 18, 19, 37, 40, 50, 66], "effect": 2, "method": [2, 3, 4, 7, 9, 10, 13, 21, 48, 51], "12": [2, 17, 18], "ha": [2, 4, 12, 14, 32, 41, 63, 71], "updat": [2, 4, 50, 51], "rule": 2, "t": [2, 4], "pi_": 2, "eta": 2, "onto": 2, "show": [2, 21, 71], "inde": [2, 4], "mapsto": 2, "kind": [2, 3], "stochast": 2, "spgd": 2, "sgd": [2, 53], "step": [2, 4, 48, 50, 66, 67], "14": 2, "base": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 66, 69, 71], "appli": [2, 7, 10, 12, 14, 15, 17, 18, 21], "techniqu": 2, "duchi": 2, "kingma": 2, "ba": 2, "13": 2, "zaheer": [2, 4, 37, 40], "reddi": [2, 37, 40], "15": 2, "rel": [2, 52], "doe": 2, "requir": [2, 50, 66, 70], "larg": [2, 4], "modif": 2, "whole": [2, 4], "framework": [2, 4, 17, 18, 63, 69], "author": 2, "paper": [2, 14, 16, 20, 37, 40], "put": 2, "practic": 2, "fedopt": 2, "16": [2, 19], "stronger": 2, "adapt": [2, 37, 38, 40, 66], "abov": [2, 4, 14], "aggreg": [2, 50, 51], "delta_": 2, "_": [2, 4, 55, 56, 57, 58, 59, 60], "": [2, 4, 7, 9, 10, 11, 12, 17, 18, 19, 20, 35, 51, 63], "refer": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 32, 37, 38, 40, 50, 66, 70], "inertia": [2, 51], "select": [2, 7, 10, 12, 14, 15, 17, 18, 71], "global": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51, 66], "delta": 2, "get": [2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 48, 50, 51, 53, 61, 66], "linear": [2, 32, 53], "combin": 2, "previou": [2, 4, 51], "beta_1": 2, "sum_": 2, "As": 2, "alreadi": 2, "notic": [2, 4], "compar": [2, 4, 51], "introduc": [2, 4], "momentum": 2, "term": [2, 4], "node": [2, 4, 48, 49, 51, 52, 69], "serveropt": 2, "list": [2, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 32, 35, 45, 48, 49, 50, 51, 52, 60, 66, 71], "option": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 32, 35, 37, 40, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 66, 67, 71], "fedadagrad": 2, "align": 2, "v": [2, 4], "eta_g": 2, "sqrt": [2, 4], "tau": 2, "fedyogi": 2, "beta_2": 2, "sign": 2, "fedadam": [2, 67], "frequent": [2, 3], "gener": [2, 14, 20, 50, 66], "machin": [2, 4, 43, 44, 71], "task": [2, 19, 34, 37, 40], "moreov": 2, "demonstr": 2, "kei": [2, 7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 48, 49, 51, 52, 60, 66], "featur": [2, 11, 20, 33, 34, 35, 37, 38, 39, 40, 43, 44, 48, 71], "To": [2, 4, 12, 70], "better": 2, "handl": 2, "other": [2, 32, 41, 49, 52, 66], "scenario": [2, 4], "differ": [2, 32, 37, 40], "bring": 2, "paramet": [2, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66], "along": [2, 71], "correct": 2, "varianc": 2, "reduct": 2, "johnson": 2, "17": 2, "first": [2, 4, 7], "new": [2, 4, 24, 54, 66], "scaffold": [2, 4, 67], "control": [2, 51], "flexibli": 2, "wide": 2, "howev": 2, "both": [2, 48], "c_k": 2, "maintain": [2, 4, 63], "increas": 2, "cost": [2, 4], "sensit": 2, "would": [2, 4, 49], "potenti": 2, "therefor": 2, "solut": [2, 4], "could": [2, 12], "next": [2, 19, 37, 40], "brendan": [2, 37, 40], "eider": [2, 37], "moor": [2, 37], "daniel": [2, 37], "ramag": [2, 37], "seth": [2, 37], "hampson": [2, 37], "blais": [2, 37], "aguera": [2, 37], "arca": [2, 37], "effici": [2, 17, 18, 37], "deep": [2, 4, 37], "network": [2, 4, 12, 26, 27, 28, 29, 31, 37], "decentr": [2, 37], "artifici": [2, 37], "intellig": [2, 37], "1273": [2, 37], "1282": [2, 37], "pmlr": [2, 4, 37], "2017": [2, 37], "praneeth": 2, "satyen": 2, "kale": 2, "mehryar": 2, "mohri": 2, "sashank": [2, 37, 40], "sebastian": 2, "stich": 2, "ananda": 2, "theertha": 2, "suresh": 2, "intern": [2, 4, 37, 40], "confer": [2, 4, 37, 40], "5132": 2, "5143": 2, "2020": [2, 4, 12, 50, 66], "xinwei": 2, "mingyi": 2, "hong": 2, "sairaj": 2, "dhopl": 2, "wotao": 2, "yin": [2, 17, 18], "yang": 2, "liu": [2, 4], "fedpd": [2, 28, 29, 30, 31, 33, 67], "With": 2, "iid": [2, 11, 15, 20], "ieee": [2, 17, 18], "transact": [2, 17, 18], "signal": 2, "process": [2, 4, 6, 10, 14, 48, 50, 51, 63], "69": 2, "6055": 2, "6070": 2, "2021": [2, 4, 37, 40], "doi": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "1109": [2, 17, 18], "tsp": 2, "3115952": 2, "xiang": 2, "kaixuan": 2, "huang": 2, "wenhao": 2, "shusen": 2, "wang": [2, 4], "zhihua": 2, "On": 2, "represent": [2, 4, 37, 40], "openreview": 2, "net": 2, "tian": [2, 4], "anit": [2, 4], "kumar": [2, 4, 37, 40], "sahu": [2, 4], "manzil": [2, 4, 37, 40], "maziar": [2, 4], "sanjabi": [2, 4], "ameet": [2, 4], "talwalkar": [2, 4], "virginia": [2, 4], "smith": [2, 4], "dhillon": [2, 4], "papailiopoulo": [2, 4], "sze": [2, 4], "editor": [2, 4], "proceed": [2, 4], "system": [2, 4, 52, 71], "volum": [2, 4], "429": [2, 4], "450": [2, 4], "stephen": [2, 4], "neal": [2, 4], "parikh": [2, 4], "eric": 2, "chu": 2, "via": [2, 4, 50, 51, 71], "altern": [2, 4, 70], "multipli": 2, "now": [2, 4], "publish": 2, "inc": [2, 4], "2011": 2, "konstantin": 2, "grigori": 2, "malinovski": 2, "peter": [2, 4], "richtarik": 2, "proxskip": [2, 67], "ye": 2, "provabl": 2, "lead": [2, 12], "final": 2, "kamalika": 2, "chaudhuri": 2, "stefani": 2, "jegelka": 2, "le": 2, "song": [2, 4], "csaba": 2, "szepesvari": 2, "gang": 2, "niu": 2, "sivan": 2, "sabato": 2, "39th": 2, "162": 2, "research": [2, 4], "15750": 2, "15769": 2, "2022": [2, 17, 18], "siqi": 2, "nicola": 2, "variat": 2, "inequ": [2, 4], "opt": 2, "neurip": 2, "workshop": 2, "ahm": 2, "richt\u00e1rik": 2, "gd": 2, "arxiv": [2, 4, 12, 20], "preprint": [2, 4], "1909": 2, "04715v2": 2, "2019": [2, 4], "48550": 2, "04715": 2, "tighter": 2, "silvia": 2, "chiappa": 2, "roberto": 2, "calandra": 2, "twenti": 2, "third": 2, "108": 2, "4519": 2, "4529": 2, "fan": 2, "guoj": 2, "properti": [2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 48, 50, 51, 66, 67], "nonconvex": [2, 4], "27th": 2, "joint": 2, "ijcai": 2, "18": 2, "3219": 2, "3227": 2, "aaai": 2, "press": 2, "2018": 2, "john": 2, "elad": 2, "hazan": 2, "yoram": 2, "singer": 2, "subgradi": 2, "onlin": 2, "journal": 2, "61": 2, "2121": 2, "2159": 2, "diederik": 2, "jimmi": 2, "adam": 2, "3rd": 2, "iclr": 2, "2015": 2, "san": 2, "diego": 2, "ca": 2, "usa": [2, 4], "track": 2, "j": [2, 4, 14, 37, 40], "devendra": 2, "sachan": 2, "sanjiv": [2, 37, 40], "32nd": 2, "neural": [2, 4, 26, 27, 28, 29, 31], "inform": [2, 4, 17, 18, 66], "nip": 2, "9815": 2, "9825": 2, "red": [2, 4], "hook": [2, 4, 34, 43, 44], "ny": [2, 4], "curran": [2, 4], "associ": [2, 4], "beyond": 2, "6th": 2, "url": [2, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "http": [2, 7, 10, 12, 16, 17, 18, 19, 20, 66, 70], "forum": 2, "id": [2, 7, 37, 40, 48, 52], "ryqu7f": 2, "rz": 2, "zachari": [2, 37, 40], "charl": [2, 37, 40], "garrett": [2, 37, 40], "keith": [2, 37, 40], "rush": [2, 37, 40], "jakub": [2, 37, 40], "kone": [2, 37, 40], "\u010d": [2, 37, 40], "n": [2, 7, 37, 40, 47], "\u00fd": [2, 37, 40], "hugh": [2, 37, 40], "rie": 2, "tong": [2, 4], "predict": [2, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 25, 36, 37, 38, 40], "burg": 2, "bottou": 2, "m": [2, 4], "z": [2, 14], "ghahramani": 2, "q": 2, "weinberg": 2, "advanc": [2, 4, 70], "26": 2, "2013": 2, "tradit": 3, "impact": 4, "aim": 4, "stabl": [4, 17, 18], "faster": 4, "do": [4, 7, 10, 12, 14, 15, 17, 18, 51], "mainli": 4, "relat": [4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "addit": [4, 14], "secur": 4, "zhu": 4, "detail": [4, 32, 50], "th": 4, "chang": 4, "h_k": 4, "penalti": 4, "center": 4, "obtain": 4, "overal": 4, "studi": [4, 12], "conduct": [4, 51], "hanz": 4, "richt": 4, "\u00e1": 4, "rik": 4, "later": 4, "summar": 4, "fedprox": [4, 14, 15, 16, 20, 38, 67], "gamma": [4, 67], "inexact": 4, "argmax": 4, "arg": [4, 55, 56, 57, 58, 59, 60], "max": [4, 10, 14], "argmin": 4, "min": [4, 10, 14], "prox": [4, 55, 56, 57, 58, 59, 60], "mathbf": [4, 55, 56, 57, 58, 59, 60], "approx": 4, "prox_": 4, "moreau": 4, "respect": 4, "sf_k": 4, "correspond": [4, 19], "envelop": 4, "yosida": 4, "regular": [4, 55, 56, 57, 58, 59, 69], "relationship": 4, "name": [4, 9, 11, 21, 22, 24, 25, 38, 49, 52, 53, 54, 61, 66, 67, 71], "regard": 4, "size": [4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 27, 31, 37, 40, 49, 51, 67, 71], "theorem": 4, "definit": 4, "l_": 4, "succcurlyeq": 4, "i_d": 4, "b_": 4, "point": 4, "hold": 4, "expectation_k": 4, "fix": [4, 17, 18], "rho": 4, "bar": [4, 71], "lb": 4, "2k": 4, "Then": 4, "stationari": 4, "decreas": 4, "nolimits_": 4, "observ": [4, 49, 52], "neighbourhood": 4, "zero": [4, 59], "cancel": 4, "same": [4, 10, 14, 19, 24, 32, 39, 54], "higher": 4, "goe": 4, "rapidli": 4, "infin": [4, 58], "thu": 4, "violat": 4, "meaningless": 4, "when": [4, 51, 66], "ideal": 4, "constantli": 4, "equal": 4, "mention": 4, "start": [4, 66], "seri": 4, "up": 4, "pathak": 4, "wainwright": 4, "tran": 4, "dinh": 4, "posit": [4, 16], "signific": 4, "ppa": 4, "although": [4, 34, 43, 44], "onli": [4, 7, 12, 14, 17, 18, 41, 51, 67], "inner": [4, 48, 49], "loop": [4, 48, 51], "strict": 4, "sens": 4, "provid": [4, 64, 66, 67], "theoret": 4, "A": [4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 37, 40, 66, 67, 69], "proport": [4, 52], "person": 4, "fedrat": 4, "acar": 4, "reli": 4, "similar": [4, 50, 71], "main": [4, 48, 51], "technic": 4, "tool": 4, "schemat": 4, "diagram": 4, "alpha_k": 4, "omega_k": 4, "apfl": 4, "feddyn": 4, "ligeng": 4, "zhijian": 4, "han": 4, "leakag": 4, "32": [4, 26, 27, 28], "14774": 4, "14784": 4, "filip": 4, "mixtur": 4, "2002": 4, "05516": 4, "shengyuan": 4, "hu": 4, "ahmad": 4, "beirami": 4, "ditto": [4, 67], "fair": 4, "robust": 4, "through": [4, 70], "marina": 4, "meila": 4, "38th": 4, "139": 4, "6357": 4, "6368": 4, "proximit\u00e9": 4, "dualit\u00e9": 4, "dan": 4, "un": 4, "espac": 4, "hilbertien": 4, "bulletin": 4, "de": 4, "la": 4, "soci\u00e9t\u00e9": 4, "math\u00e9matiqu": 4, "franc": 4, "79": 4, "273": 4, "299": 4, "1965": 4, "24033": 4, "bsmf": 4, "1625": 4, "foundat": 4, "trend": 4, "127": 4, "239": 4, "2014": 4, "1561": 4, "2400000003": 4, "rees": 4, "martin": 4, "fedsplit": [4, 67], "fast": [4, 48, 51], "h": [4, 7, 21, 37, 38, 39, 40], "larochel": 4, "ranzato": 4, "hadsel": 4, "balcan": 4, "lin": 4, "33": 4, "7057": 4, "7066": 4, "quoc": 4, "nhan": 4, "pham": 4, "dzung": 4, "phan": 4, "lam": 4, "nguyen": 4, "feddr": [4, 14, 67], "random": [4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 52, 66], "dougla": 4, "rachford": 4, "composit": 4, "beygelzim": 4, "dauphin": 4, "liang": 4, "wortman": 4, "vaughan": 4, "durmu": 4, "alp": 4, "emr": 4, "yue": 4, "zhao": 4, "ramon": 4, "mata": 4, "matthew": 4, "mattina": 4, "paul": 4, "whatmough": 4, "venkatesh": 4, "saligrama": 4, "dynam": [4, 7, 66], "canh": 4, "tuan": 4, "dung": 4, "34th": 4, "yinchuan": 4, "xiaofeng": 4, "xu": 4, "yunfeng": 4, "shao": 4, "qing": 4, "yanhui": 4, "geng": 4, "maxim": 4, "correl": 4, "spars": 4, "hierarch": 4, "extens": 4, "2107": 4, "05330": 4, "modul": [6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 32, 34, 37, 38, 39, 40, 43, 44, 46, 48, 50, 51, 62, 64, 65, 66, 69], "feder": [6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 37, 40, 50, 51, 53, 64, 67, 69], "class": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 66, 67], "fl_sim": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 69], "data_process": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 69], "n_class": [7, 11, 20, 21, 47], "int": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 66], "100": [7, 38, 39, 50, 66, 67], "datadir": [7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 67], "path": [7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 50, 52, 66, 67], "str": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, 35, 37, 38, 40, 48, 49, 50, 51, 52, 53, 54, 60, 61, 66], "none": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 32, 35, 37, 40, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 66, 67], "transform": [7, 8, 10, 12, 14, 15, 17, 18, 21, 67], "callabl": [7, 8, 10, 12, 14, 15, 17, 18, 21, 37, 40, 66], "seed": [7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 52, 66, 67], "extra_config": [7, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 51], "sourc": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66], "fedvisiondataset": [7, 10, 12, 14, 15, 17, 18], "cifar10": [7, 17], "dataset": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 38, 39, 48, 51, 66, 67], "load": [7, 19, 66], "tensorflow": [7, 10, 19], "tff": [7, 10, 19], "cifar100": 7, "load_data": [7, 19], "api": [7, 19], "save": [7, 10, 12, 14, 15, 16, 17, 18, 19, 66, 71], "h5py": 7, "file": [7, 16, 19, 49, 50, 66, 67, 71], "pre": [7, 38], "divid": 7, "500": 7, "train": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 38, 48, 49, 50, 51, 52, 63, 66], "50": [7, 39], "000": [7, 18], "total": 7, "test": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 66], "imag": [7, 10, 12, 14, 15, 17, 18, 21, 33, 35, 41, 42, 70], "channel": [7, 21], "last": 7, "format": [7, 66, 67, 71], "w": [7, 21, 55, 56, 57, 58, 59, 60], "NOT": 7, "pytorch": [7, 17, 18, 53, 66, 69], "singl": [7, 10, 12, 14, 15, 17, 18, 25], "similarli": 7, "label": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 25, 47, 48, 51], "coarse_label": 7, "access": [7, 48, 51, 53], "index": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 38, 51, 66, 69], "adopt": [7, 12], "modifi": [7, 10, 28, 29, 30, 31, 33, 37, 40], "fedml": [7, 10, 12, 19, 37, 40], "default": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 29, 30, 33, 35, 38, 39, 40, 41, 42, 45, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 66, 67], "pathlib": [7, 10, 12, 13, 14, 15, 17, 18, 19, 21, 50, 52, 66], "directori": [7, 10, 12, 13, 14, 15, 16, 19, 21, 52, 66, 67, 71], "built": [7, 16, 19, 53, 62, 70], "static": [7, 21, 50, 66, 67], "normal": [7, 10, 12, 14, 17, 18, 20, 67], "argument": [7, 49, 52, 66, 67], "visiondataset": 7, "augment": [7, 14, 17, 18, 67], "shuffl": 7, "dict": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 37, 40, 48, 49, 50, 51, 52, 53, 66], "configur": [7, 10, 12, 13, 14, 15, 16, 19, 20, 21, 66, 67], "www": [7, 10, 19], "org": [7, 10, 12, 17, 18, 19, 20], "api_doc": [7, 10, 19], "python": [7, 10, 19, 66, 70], "simul": [7, 10, 12, 17, 18, 19, 48, 51, 63, 69, 71], "ai": [7, 10, 12, 19], "candidate_model": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 67], "candid": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "evalu": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 48, 49, 51, 52, 55, 56, 57, 58, 59, 60], "prob": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "tensor": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 25, 32, 34, 36, 37, 38, 39, 40, 43, 44, 47, 48, 50, 51, 66], "truth": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "float": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 25, 32, 35, 47, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 66], "ground": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "torch": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 32, 36, 37, 38, 39, 40, 46, 47, 48, 50, 51, 53, 55, 56, 57, 58, 59, 60, 64, 66], "probabl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 25], "return": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 32, 36, 37, 38, 39, 40, 47, 48, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66], "type": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 31, 32, 36, 37, 38, 39, 40, 47, 48, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66], "extra_repr_kei": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 48, 49, 51, 52, 60, 66], "__repr__": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 48, 49, 51, 52, 60, 66], "__str__": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 48, 49, 51, 52, 60, 66], "get_dataload": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "train_b": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "test_b": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21], "client_idx": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 51], "tupl": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 48, 51, 66], "dataload": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 51], "batch": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 49, 50, 67], "all": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 34, 43, 44, 48, 51, 52, 63, 66, 67], "train_dl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "util": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 50, 69], "test_dl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "label_map": [7, 10, 12, 14, 15, 17, 18, 21], "map": [7, 10, 11, 12, 14, 15, 17, 18, 21, 25, 37, 40], "random_grid_view": [7, 10, 12, 14, 15, 17, 18], "nrow": [7, 10, 12, 14, 15, 17, 18], "ncol": [7, 10, 12, 14, 15, 17, 18], "save_path": [7, 10, 12, 14, 15, 17, 18], "randomli": [7, 10, 12, 14, 15, 17, 18], "plot": [7, 10, 12, 14, 15, 17, 18, 71], "them": [7, 10, 12, 14, 15, 17, 18, 34, 43, 44, 71], "grid": [7, 10, 12, 14, 15, 17, 18, 67], "row": [7, 10, 12, 14, 15, 17, 18], "column": [7, 10, 12, 14, 15, 17, 18], "union": [7, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 53, 66], "figur": [7, 10, 12, 14, 15, 17, 18], "view_imag": [7, 10, 12, 14, 15, 17, 18], "image_idx": [7, 10, 12, 14, 15, 17, 18], "view": [7, 10, 12, 14, 15, 16, 17, 18, 19, 51], "locat": [7, 10, 12, 14, 15, 16, 17, 18, 19], "fedcifar": 8, "download": [8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20], "reprmixin": [9, 49, 50, 52, 60, 66], "citationmixin": [9, 51], "abc": [9, 13, 21, 50, 60, 66], "implement": [9, 13, 21, 66, 71], "subclass": [9, 13, 21, 34, 43, 44, 63], "_preload": [9, 13, 21], "load_partition_data": [9, 11, 13, 20, 21], "load_partition_data_distribut": [9, 11, 13, 20, 21], "abstract": [9, 13, 21, 48, 50, 51, 60, 66], "data_part": 9, "part": [9, 48, 50, 51, 66], "download_if_need": [9, 11, 18], "batch_siz": [9, 11, 13, 20, 21, 26, 27, 28, 29, 30, 31, 37, 38, 39, 40, 47, 49, 50, 67], "partit": [9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21], "process_id": [9, 11, 13, 20, 21], "emnist": [10, 14], "extend": 10, "mnist": [10, 12, 15, 18, 31], "upper": 10, "english": 10, "charact": [10, 19, 37], "62": [10, 14, 29, 30], "400": 10, "671": 10, "585": 10, "77": 10, "483": 10, "store": [10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 51], "convent": [10, 12, 14, 15, 21], "mean": [10, 12, 14, 15, 21, 66, 71], "tensordataset": [10, 12, 14, 15, 21], "dataset_nam": 11, "num_client": [11, 17, 18, 20, 52, 67], "bool": [11, 20, 24, 25, 41, 42, 48, 50, 51, 52, 54, 66], "true": [11, 24, 42, 52, 54, 66], "criterion_nam": 11, "svm": [11, 35], "feddataset": [11, 13, 20, 21, 48, 51], "criteria_map": 11, "criterion": [11, 48], "classmethod": [11, 66], "list_all_libsvm_dataset": 11, "datafram": 11, "libsvm": 11, "list_dataset": 11, "avail": [11, 52, 70], "train_clients_num": [11, 13, 20, 21], "train_data_num": [11, 13, 20, 21], "test_data_num": [11, 13, 20, 21], "train_data_glob": [11, 13, 20, 21], "test_data_glob": [11, 13, 20, 21], "data_local_num_dict": [11, 13, 20, 21], "train_data_local_dict": [11, 13, 20, 21], "test_data_local_dict": [11, 13, 20, 21], "local_data_num": [11, 13, 20, 21], "train_data_loc": [11, 13, 20, 21], "test_data_loc": [11, 13, 20, 21], "num_class": [11, 20, 26, 27, 28, 29, 30, 31, 34, 38, 39, 41, 42, 43, 45], "num_featur": [11, 34, 43, 44], "reset_se": [11, 20], "reset": [11, 20, 46, 66], "re": [11, 20], "classif": [12, 25, 34, 35, 41, 42], "handwritten": [12, 18], "digit": [12, 18], "among": 12, "1000": [12, 45], "devic": [12, 48, 52], "sampl": [12, 16, 19, 48, 51, 52], "per": 12, "power": 12, "law": 12, "maximum": [12, 19], "valu": [12, 18, 55, 56, 57, 58, 59, 60, 71], "raw": [12, 14, 15, 32, 50], "264": 12, "2510681152344": 12, "instabl": 12, "pdf": [12, 71], "1812": [12, 20], "06127": [12, 20], "mlsy": 12, "nlp": 13, "get_word_dict": [13, 19], "vocab_len": 13, "length": [13, 19, 66], "vocabulari": [13, 40], "subset": 14, "femnist": [14, 29, 67], "subsampl": 14, "repartit": 14, "version": [14, 30, 45, 49, 52], "origin": [14, 17, 18], "impos": 14, "instruct": [14, 69], "instead": [14, 34, 43, 44], "perhap": [14, 51], "inappropri": 14, "litian96": [14, 15, 16, 20, 38], "unc": 14, "manner": 15, "raw_data": 15, "ndarrai": [15, 21, 25, 36, 50, 66], "fednlpdataset": [16, 19], "sentiment140": 16, "tweet": 16, "neg": 16, "sentiment": [16, 38, 39], "preprocess": [16, 19], "json": [16, 50, 52, 66], "help": 16, "com": [16, 66, 70], "view_sampl": [16, 19], "sample_idx": [16, 19], "num_rot": [17, 18], "200": 17, "rotat": [17, 18], "360": [17, 18], "ghosh": [17, 18], "vision": [17, 18, 21], "_modul": [17, 18], "torchvis": [17, 18, 21, 42], "cifar": [17, 26, 27, 28], "html": [17, 18], "50k": 17, "10k": 17, "32x32": 17, "rgb": 17, "specifi": [17, 18, 24, 52, 54, 67, 71], "reproduc": [17, 18, 66], "avishek": [17, 18], "jichan": [17, 18], "chung": [17, 18], "dong": [17, 18], "kannan": [17, 18], "ramchandran": [17, 18], "cluster": [17, 18], "learn": [17, 18, 37, 40, 49, 64, 66, 67, 69], "68": [17, 18], "8076": [17, 18], "8091": [17, 18], "tit": [17, 18], "3192506": [17, 18], "2400": 18, "60": [18, 20], "28x28": 18, "grayscal": 18, "typic": 18, "1200": 18, "4800": 18, "mirror": 18, "site": 18, "shakespear": [19, 37], "william": 19, "unzip": 19, "hdf5": 19, "715": 19, "068": 19, "2356": 19, "speak": 19, "role": 19, "least": 19, "two": [19, 32, 63], "line": [19, 69], "char_to_id": [19, 37], "char": 19, "convert": [19, 66], "integ": 19, "word": [19, 40], "dictionari": 19, "id_to_word": [19, 40], "idx": 19, "sentenc": [19, 37, 38, 40], "sequenc": [19, 33, 35, 50, 51, 52, 66], "max_seq_len": 19, "token": 19, "beta": 20, "dimens": [20, 33, 35, 39], "synthet": 20, "whether": [20, 24, 25, 48, 50, 51, 52, 54, 66], "ab": 20, "empti": 20, "get_class": 21, "show_imag": 21, "np": [21, 50, 66], "shape": [21, 26, 27, 28, 29, 30, 37, 38, 39, 40, 47], "height": 21, "width": 21, "must": 21, "pil": 21, "regist": [22, 23, 24, 34, 43, 44, 54], "overrid": [24, 54], "decor": [24, 54, 66], "mixin": [25, 32, 36], "classifi": [25, 43], "input": [25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 40, 43, 44, 51, 66], "thr": 25, "class_map": 25, "fals": [25, 41, 42, 51], "numpi": [25, 36, 50, 66], "threshold": 25, "multi": [25, 33, 35, 71], "predict_proba": 25, "multi_label": 25, "proba": 25, "sequenti": [26, 27, 28, 29, 30, 31, 33, 35, 45], "clfmixin": [26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 45], "sizemixin": [26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "diffmixin": [26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "convolut": [26, 27, 28, 29, 31], "output": [26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39, 41, 42, 43, 45, 48], "smaller": 27, "than": 27, "cnncifar": 27, "py": [28, 29, 30, 31, 33, 38], "too": 28, "tini": [28, 30], "28": [29, 30, 31], "cnnfemnist": 30, "modela": 32, "nn": [32, 39, 40, 46, 48, 50, 51, 53, 55, 56, 57, 58, 59, 60, 66], "def": 32, "__init__": 32, "self": [32, 48, 50, 51], "out_dim": 32, "super": 32, "fc": [32, 71], "model_1": 32, "model_2": 32, "diff": 32, "norm": [32, 50, 55, 56, 57, 58], "anoth": 32, "linalg": [32, 50], "dim_in": [33, 35], "dim_hidden": [33, 35], "dim_out": [33, 35], "ndim": [33, 35], "perceptron": [33, 35], "hidden": [33, 35, 37, 38, 39, 40], "vector": [33, 35, 37, 39, 40, 43, 44], "logist": [34, 35], "regress": [34, 35, 36], "forward": [34, 37, 38, 39, 40, 43, 44], "everi": [34, 43, 44], "overridden": [34, 43, 44], "recip": [34, 43, 44], "pass": [34, 37, 38, 39, 40, 43, 44], "within": [34, 43, 44], "instanc": [34, 43, 44, 53, 61, 66], "afterward": [34, 43, 44], "former": [34, 43, 44], "care": [34, 43, 44], "run": [34, 43, 44, 51, 66, 67, 70, 71], "while": [34, 43, 44], "latter": [34, 43, 44], "silent": [34, 43, 44], "ignor": [34, 43, 44, 51, 66], "activ": 35, "relu": 35, "dropout": 35, "cross": 35, "entropi": 35, "crossentropyloss": 35, "bcewithlogitsloss": 35, "mse": 35, "hing": 35, "multimarginloss": 35, "multilabelmarginloss": 35, "rate": [35, 49, 66], "regressor": [36, 44], "target": [36, 48, 50], "embedding_dim": [37, 39], "vocab_s": [37, 40], "90": 37, "hidden_s": 37, "256": 37, "creat": [37, 40, 66, 71], "rnn": [37, 40], "lstm": [37, 38, 39, 40], "languag": 37, "replic": [37, 40], "recommend": [37, 51], "embed": [37, 38, 39, 40], "appear": [37, 40], "state": [37, 38, 39, 40], "input_seq": [37, 38, 40], "seq_len": [37, 38, 39, 40], "dtype": [37, 38, 40], "long": [37, 38, 40, 66], "float32": [37, 38, 40], "pipelin": [37, 38, 40], "truncated_sent": [37, 40], "id_to_char": 37, "given": [37, 40, 48, 51, 53, 55, 56, 57, 58, 59, 60, 66], "truncat": [37, 40], "latent_s": [38, 39, 40], "num_lay": [38, 39, 40], "glove": [38, 39], "6b": 38, "50d": 38, "stack": [38, 39], "sent140": [38, 39], "flearn": 38, "stacked_lstm": 38, "recurr": [38, 39, 40], "gloveembed": 38, "embed_dim": 39, "rnn_sent140": 39, "without": [39, 51], "embedd": 39, "emb": 39, "10000": 40, "num_oov_bucket": 40, "embedding_s": 40, "96": 40, "670": 40, "stackoverflow": [40, 66], "out": 40, "bucket": 40, "hidden_st": 40, "extended_vocab_s": 40, "word_to_id": 40, "pretrain": [41, 42], "resnet": [41, 42, 45], "Not": [41, 49, 52, 66], "compat": [41, 66], "support": [43, 44, 71], "regmixin": 44, "shrink": 45, "macro": 45, "custom": [45, 64], "children": 46, "pred": 47, "top": 47, "accuraci": 47, "d_1": 47, "d_n": 47, "client_id": [48, 50, 66], "config": [48, 49, 50, 51, 52, 53, 66, 67], "clientconfig": [48, 51], "respons": [48, 51], "either": 48, "val": [48, 50, 66], "metric": [48, 49, 50, 51, 66, 71], "get_all_data": 48, "helper": [48, 51], "includ": [48, 66], "valid": [48, 66], "is_converg": [48, 50, 51], "sample_data": 48, "solve_inn": 48, "solver": [48, 64], "basic": 48, "epoch_loss": 48, "epoch": [48, 49, 50, 66], "num_epoch": [48, 49, 50, 67], "batch_loss": 48, "batch_idx": 48, "enumer": 48, "train_load": [48, 50], "zero_grad": 48, "backward": 48, "append": [48, 50], "item": [48, 51], "len": 48, "lr_schedul": [48, 66], "algorithm": [49, 52, 66, 67, 69], "lr": [49, 53, 67], "schedul": [49, 66, 67], "extra_observ": [49, 52], "verbos": [49, 52, 66], "latenc": 49, "kwarg": [49, 52, 66], "attribut": [49, 51, 52, 53], "dure": [49, 52], "record": 49, "sent": 49, "written": 49, "log": [49, 50, 52, 66, 71], "level": [49, 52, 66], "current": [49, 50, 52, 66], "reserv": [49, 52], "futur": [49, 52], "aggregate_results_from_json_log": 50, "acc": [50, 66], "csv": [50, 66], "yaml": [50, 66, 67], "curv": [50, 71], "client0": [50, 66], "time": [50, 66], "01": [50, 66], "00": [50, 66], "top3_acc": [50, 66], "top5_acc": [50, 66], "num_sampl": [50, 66], "_received_messag": 50, "clientmessag": 50, "get_detached_model_paramet": 50, "train_sampl": 50, "num_step": 50, "_metric": 50, "compute_gradi": 50, "averag": [50, 51], "mini": 50, "detach": 50, "get_gradi": 50, "get_norm": 50, "fro": 50, "required_config_field": 50, "set_paramet": 50, "param": [50, 51, 53, 55, 56, 57, 58, 59, 60], "accord": 50, "_reveived_messag": 50, "serverconfig": 51, "client_config": 51, "lazi": 51, "want": 51, "verif": 51, "todo": 51, "_is_converg": 51, "termin": 51, "_cached_model": 51, "add_paramet": 51, "ratio": [51, 52], "ad": [51, 66], "aggregate_client_metr": 51, "transmit": 51, "avg_paramet": 51, "size_awar": 51, "receiv": 51, "awar": 51, "weight": 51, "client_cl": 51, "config_cl": 51, "evaluate_centr": 51, "get_cached_metr": 51, "cach": [51, 71], "get_client_data": 51, "get_client_model": 51, "mode": [51, 70], "insensit": 51, "train_centr": 51, "baselin": 51, "comparison": 51, "train_feder": 51, "train_loc": 51, "update_gradi": 51, "num_it": [52, 67], "clients_sample_ratio": [52, 67], "log_dir": [52, 66, 67], "txt_logger": [52, 66], "json_logg": [52, 66], "eval_everi": 52, "visiable_gpu": 52, "tag": [52, 71], "gpu_proport": 52, "outer": 52, "absolut": [52, 66], "txt": 52, "logger": 52, "visabl": 52, "gpu": 52, "alloc": 52, "experi": [52, 67, 71], "simil": 52, "optimizer_nam": 53, "attr": 53, "1e": 53, "yogi": 53, "pytorch_optim": 53, "fedpd_sgd": 53, "remov": 54, "coeff": [55, 56, 57, 58, 59, 60], "l1": 55, "coeffici": [55, 56, 57, 58, 59, 60, 61], "eval": [55, 56, 57, 58, 59, 60], "prox_ev": [55, 56, 57, 58, 59, 60], "mathrm": [55, 56, 57, 58, 59, 60], "lambda": [55, 56, 57, 58, 59, 60], "min_": [55, 56, 57, 58, 59, 60], "u": [55, 56, 57, 58, 59, 60], "rvert_2": [55, 56, 57, 58, 59, 60], "l2": [56, 57], "squar": 57, "null": [59, 67], "reg_typ": 61, "reg_coeff": 61, "act": 63, "coordin": 63, "statu": 63, "variabl": 63, "despit": 64, "torch_optim": 64, "lagrangian": 64, "variou": 66, "fl": [66, 67, 70, 71], "packag": 66, "baselogg": 66, "close": 66, "epoch_end": 66, "action": [66, 70], "epoch_start": 66, "filenam": 66, "flush": 66, "messag": 66, "buffer": 66, "from_config": 66, "log_messag": 66, "msg": 66, "20": 66, "debug": 66, "info": 66, "warn": 66, "error": [66, 71], "critic": 66, "log_metr": 66, "real": 66, "set_log_dir": 66, "csvlogger": 66, "log_suffix": 66, "prefix": 66, "suffix": 66, "kept": 66, "jsonlogg": 66, "fmt": 66, "strftime": 66, "datetim": 66, "strptime": 66, "loggermanag": 66, "manag": 66, "add": 66, "txtlogger": 66, "csv_logger": 66, "default_log_dir": 66, "long_sep": 66, "short_sep": 66, "short": 66, "load_module_from_fil": 66, "file_path": 66, "moduletyp": 66, "miscellan": 66, "add_kwarg": 66, "func": 66, "keyword": 66, "clear_log": 66, "pattern": 66, "clear": 66, "search": [66, 67, 69, 71], "execut": [66, 71], "rglob": 66, "join": 66, "compute_spars": 66, "model_or_tensor": 66, "sparsiti": 66, "default_dict_to_dict": 66, "defaultdict": 66, "experiment_ind": 66, "find_longest_common_substr": 66, "string": 66, "min_len": 66, "longest": 66, "common": 66, "substr": 66, "minimum": 66, "get_schedul": 66, "scheduler_nam": 66, "_lrschedul": 66, "get_scheduler_info": 66, "is_notebook": 66, "check": 66, "environ": [66, 71], "notebook": [66, 71], "jupyt": [66, 71], "colab": [66, 71], "code": [66, 70], "question": 66, "15411967": 66, "how": 66, "ipython": 66, "make_serializ": 66, "serializ": 66, "serial": 66, "obj": 66, "float64": 66, "ordered_dict_to_dict": 66, "ordereddict": 66, "set_se": 66, "disabl": 66, "cudnn": 66, "ensur": 66, "cli": 67, "found": 67, "alg": 67, "yml": 67, "strategi": 67, "matrix": 67, "fedavg": 67, "ifca": 67, "pfedmac": 67, "pfedm": 67, "03": 67, "num_clust": 67, "steplr": 67, "step_siz": 67, "99": 67, "fedproxfemnist": 67, "dir": 67, "cnn_femmist_tini": 67, "hyperparamet": 67, "ref": 67, "link": 69, "github": [69, 70], "gite": 69, "instal": [69, 71], "usag": [69, 70], "command": [69, 70, 71], "interfac": 69, "visual": 69, "subsystem": 69, "page": 69, "pip": 70, "git": 70, "wenh06": 70, "clone": 70, "repositori": 70, "docker": 70, "ci": 70, "pull": 70, "interact": [70, 71], "bash": 70, "script": 70, "offici": 70, "document": 70, "panel": 71, "widget": 71, "ipywidget": 71, "matplotlib": 71, "seaborn": 71, "lab": 71, "googl": 71, "amazon": 71, "sagemak": 71, "automat": 71, "complet": 71, "displai": 71, "box": 71, "decod": 71, "zoom": 71, "font": 71, "famili": 71, "adjust": 71, "svg": 71, "png": 71, "jpeg": 71, "merg": 71, "standard": 71, "deviat": 71, "std": 71, "sem": 71, "quantil": 71, "qtl": 71, "interquartil": 71, "iqr": 71, "gif": 71, "screentogif": 71, "demo": 71, "window": 71, "linux": 71, "ubuntu": 71, "sudo": 71, "ttf": 71, "mscorefont": 71, "fv": 71}, "objects": {"fl_sim": [[6, 0, 0, "-", "data_processing"], [62, 0, 0, "-", "models"], [63, 0, 0, "-", "nodes"], [64, 0, 0, "-", "optimizers"], [65, 0, 0, "-", "regularizers"], [66, 0, 0, "-", "utils"]], "fl_sim.data_processing": [[7, 1, 1, "", "FedCIFAR"], [8, 1, 1, "", "FedCIFAR100"], [9, 1, 1, "", "FedDataset"], [10, 1, 1, "", "FedEMNIST"], [11, 1, 1, "", "FedLibSVMDataset"], [12, 1, 1, "", "FedMNIST"], [13, 1, 1, "", "FedNLPDataset"], [14, 1, 1, "", "FedProxFEMNIST"], [15, 1, 1, "", "FedProxMNIST"], [16, 1, 1, "", "FedProxSent140"], [17, 1, 1, "", "FedRotatedCIFAR10"], [18, 1, 1, "", "FedRotatedMNIST"], [19, 1, 1, "", "FedShakespeare"], [20, 1, 1, "", "FedSynthetic"], [21, 1, 1, "", "FedVisionDataset"], [22, 4, 1, "", "get_fed_dataset"], [23, 4, 1, "", "list_fed_dataset"], [24, 4, 1, "", "register_fed_dataset"]], "fl_sim.data_processing.FedCIFAR": [[7, 2, 1, "", "candidate_models"], [7, 2, 1, "", "doi"], [7, 3, 1, "", "evaluate"], [7, 3, 1, "", "extra_repr_keys"], [7, 3, 1, "", "get_dataloader"], [7, 2, 1, "", "label_map"], [7, 3, 1, "", "random_grid_view"], [7, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedCIFAR100": [[8, 2, 1, "", "url"]], "fl_sim.data_processing.FedDataset": [[9, 2, 1, "", "candidate_models"], [9, 2, 1, "", "data_parts"], [9, 2, 1, "", "doi"], [9, 3, 1, "", "download_if_needed"], [9, 3, 1, "", "evaluate"], [9, 3, 1, "", "extra_repr_keys"], [9, 3, 1, "", "get_dataloader"], [9, 3, 1, "", "load_partition_data"], [9, 3, 1, "", "load_partition_data_distributed"], [9, 2, 1, "", "url"]], "fl_sim.data_processing.FedEMNIST": [[10, 2, 1, "", "candidate_models"], [10, 2, 1, "", "doi"], [10, 3, 1, "", "evaluate"], [10, 3, 1, "", "extra_repr_keys"], [10, 3, 1, "", "get_dataloader"], [10, 2, 1, "", "label_map"], [10, 3, 1, "", "random_grid_view"], [10, 2, 1, "", "url"], [10, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedLibSVMDataset": [[11, 2, 1, "", "candidate_models"], [11, 2, 1, "", "criteria_mapping"], [11, 2, 1, "", "doi"], [11, 3, 1, "", "download_if_needed"], [11, 3, 1, "", "evaluate"], [11, 3, 1, "", "extra_repr_keys"], [11, 3, 1, "", "get_dataloader"], [11, 3, 1, "", "list_all_libsvm_datasets"], [11, 3, 1, "", "list_datasets"], [11, 3, 1, "", "load_partition_data"], [11, 3, 1, "", "load_partition_data_distributed"], [11, 2, 1, "", "num_classes"], [11, 2, 1, "", "num_features"], [11, 3, 1, "", "reset_seed"], [11, 2, 1, "", "url"]], "fl_sim.data_processing.FedMNIST": [[12, 2, 1, "", "candidate_models"], [12, 2, 1, "", "doi"], [12, 3, 1, "", "evaluate"], [12, 3, 1, "", "extra_repr_keys"], [12, 3, 1, "", "get_dataloader"], [12, 2, 1, "", "label_map"], [12, 3, 1, "", "random_grid_view"], [12, 2, 1, "", "url"], [12, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedNLPDataset": [[13, 3, 1, "", "get_dataloader"], [13, 3, 1, "", "load_partition_data"], [13, 3, 1, "", "load_partition_data_distributed"]], "fl_sim.data_processing.FedProxFEMNIST": [[14, 2, 1, "", "candidate_models"], [14, 2, 1, "", "doi"], [14, 3, 1, "", "evaluate"], [14, 3, 1, "", "extra_repr_keys"], [14, 3, 1, "", "get_dataloader"], [14, 2, 1, "", "label_map"], [14, 3, 1, "", "random_grid_view"], [14, 2, 1, "", "url"], [14, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedProxMNIST": [[15, 2, 1, "", "candidate_models"], [15, 2, 1, "", "doi"], [15, 3, 1, "", "evaluate"], [15, 3, 1, "", "extra_repr_keys"], [15, 3, 1, "", "get_dataloader"], [15, 2, 1, "", "label_map"], [15, 3, 1, "", "random_grid_view"], [15, 2, 1, "", "raw_data"], [15, 2, 1, "", "url"], [15, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedProxSent140": [[16, 2, 1, "", "candidate_models"], [16, 2, 1, "", "doi"], [16, 3, 1, "", "evaluate"], [16, 3, 1, "", "get_dataloader"], [16, 2, 1, "", "url"], [16, 3, 1, "", "view_sample"]], "fl_sim.data_processing.FedRotatedCIFAR10": [[17, 2, 1, "", "candidate_models"], [17, 2, 1, "", "doi"], [17, 3, 1, "", "evaluate"], [17, 3, 1, "", "extra_repr_keys"], [17, 3, 1, "", "get_dataloader"], [17, 2, 1, "", "label_map"], [17, 3, 1, "", "random_grid_view"], [17, 2, 1, "", "url"], [17, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedRotatedMNIST": [[18, 2, 1, "", "candidate_models"], [18, 2, 1, "", "doi"], [18, 3, 1, "", "download_if_needed"], [18, 3, 1, "", "evaluate"], [18, 3, 1, "", "extra_repr_keys"], [18, 3, 1, "", "get_dataloader"], [18, 2, 1, "", "label_map"], [18, 2, 1, "", "mirror"], [18, 3, 1, "", "random_grid_view"], [18, 2, 1, "", "url"], [18, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedShakespeare": [[19, 2, 1, "", "candidate_models"], [19, 3, 1, "", "char_to_id"], [19, 2, 1, "", "doi"], [19, 3, 1, "", "evaluate"], [19, 3, 1, "", "get_dataloader"], [19, 3, 1, "", "get_word_dict"], [19, 3, 1, "", "id_to_word"], [19, 3, 1, "", "preprocess"], [19, 2, 1, "", "url"], [19, 3, 1, "", "view_sample"], [19, 2, 1, "", "words"]], "fl_sim.data_processing.FedSynthetic": [[20, 2, 1, "", "candidate_models"], [20, 2, 1, "", "doi"], [20, 3, 1, "", "evaluate"], [20, 3, 1, "", "extra_repr_keys"], [20, 3, 1, "", "get_dataloader"], [20, 3, 1, "", "load_partition_data"], [20, 3, 1, "", "load_partition_data_distributed"], [20, 3, 1, "", "reset_seed"], [20, 2, 1, "", "url"]], "fl_sim.data_processing.FedVisionDataset": [[21, 3, 1, "", "get_class"], [21, 3, 1, "", "get_classes"], [21, 3, 1, "", "get_dataloader"], [21, 2, 1, "", "label_map"], [21, 3, 1, "", "load_partition_data"], [21, 3, 1, "", "load_partition_data_distributed"], [21, 2, 1, "", "n_class"], [21, 3, 1, "", "show_image"]], "fl_sim.models": [[25, 1, 1, "", "CLFMixin"], [26, 1, 1, "", "CNNCifar"], [27, 1, 1, "", "CNNCifar_Small"], [28, 1, 1, "", "CNNCifar_Tiny"], [29, 1, 1, "", "CNNFEMnist"], [30, 1, 1, "", "CNNFEMnist_Tiny"], [31, 1, 1, "", "CNNMnist"], [32, 1, 1, "", "DiffMixin"], [33, 1, 1, "", "FedPDMLP"], [34, 1, 1, "", "LogisticRegression"], [35, 1, 1, "", "MLP"], [36, 1, 1, "", "REGMixin"], [37, 1, 1, "", "RNN_OriginalFedAvg"], [38, 1, 1, "", "RNN_Sent140"], [39, 1, 1, "", "RNN_Sent140_LITE"], [40, 1, 1, "", "RNN_StackOverFlow"], [41, 1, 1, "", "ResNet10"], [42, 1, 1, "", "ResNet18"], [43, 1, 1, "", "SVC"], [44, 1, 1, "", "SVR"], [45, 1, 1, "", "ShrinkedResNet"], [46, 4, 1, "", "reset_parameters"], [47, 4, 1, "", "top_n_accuracy"]], "fl_sim.models.CLFMixin": [[25, 3, 1, "", "predict"], [25, 3, 1, "", "predict_proba"]], "fl_sim.models.DiffMixin": [[32, 3, 1, "", "diff"]], "fl_sim.models.LogisticRegression": [[34, 3, 1, "", "forward"]], "fl_sim.models.REGMixin": [[36, 3, 1, "", "predict"]], "fl_sim.models.RNN_OriginalFedAvg": [[37, 3, 1, "", "forward"], [37, 3, 1, "", "pipeline"]], "fl_sim.models.RNN_Sent140": [[38, 3, 1, "", "forward"], [38, 3, 1, "", "pipeline"]], "fl_sim.models.RNN_Sent140_LITE": [[39, 3, 1, "", "forward"]], "fl_sim.models.RNN_StackOverFlow": [[40, 3, 1, "", "forward"], [40, 3, 1, "", "pipeline"]], "fl_sim.models.SVC": [[43, 3, 1, "", "forward"]], "fl_sim.models.SVR": [[44, 3, 1, "", "forward"]], "fl_sim.nodes": [[48, 1, 1, "", "Client"], [49, 1, 1, "", "ClientConfig"], [50, 1, 1, "", "Node"], [51, 1, 1, "", "Server"], [52, 1, 1, "", "ServerConfig"]], "fl_sim.nodes.Client": [[48, 3, 1, "", "evaluate"], [48, 3, 1, "", "extra_repr_keys"], [48, 3, 1, "", "get_all_data"], [48, 2, 1, "", "is_convergent"], [48, 3, 1, "", "sample_data"], [48, 3, 1, "", "solve_inner"], [48, 3, 1, "", "train"]], "fl_sim.nodes.ClientConfig": [[49, 3, 1, "", "extra_repr_keys"]], "fl_sim.nodes.Node": [[50, 3, 1, "", "aggregate_results_from_json_log"], [50, 3, 1, "", "communicate"], [50, 3, 1, "", "compute_gradients"], [50, 3, 1, "", "get_detached_model_parameters"], [50, 3, 1, "", "get_gradients"], [50, 3, 1, "", "get_norm"], [50, 2, 1, "", "is_convergent"], [50, 2, 1, "", "required_config_fields"], [50, 3, 1, "", "set_parameters"], [50, 3, 1, "", "update"]], "fl_sim.nodes.Server": [[51, 3, 1, "", "add_parameters"], [51, 3, 1, "", "aggregate_client_metrics"], [51, 3, 1, "", "avg_parameters"], [51, 2, 1, "", "client_cls"], [51, 2, 1, "", "config_cls"], [51, 3, 1, "", "evaluate_centralized"], [51, 3, 1, "", "extra_repr_keys"], [51, 3, 1, "", "get_cached_metrics"], [51, 3, 1, "", "get_client_data"], [51, 3, 1, "", "get_client_model"], [51, 2, 1, "", "is_convergent"], [51, 3, 1, "", "train"], [51, 3, 1, "", "train_centralized"], [51, 3, 1, "", "train_federated"], [51, 3, 1, "", "train_local"], [51, 3, 1, "", "update_gradients"]], "fl_sim.nodes.ServerConfig": [[52, 3, 1, "", "extra_repr_keys"]], "fl_sim.optimizers": [[53, 4, 1, "", "get_optimizer"], [54, 4, 1, "", "register_optimizer"]], "fl_sim.regularizers": [[55, 1, 1, "", "L1Norm"], [56, 1, 1, "", "L2Norm"], [57, 1, 1, "", "L2NormSquared"], [58, 1, 1, "", "LInfNorm"], [59, 1, 1, "", "NullRegularizer"], [60, 1, 1, "", "Regularizer"], [61, 4, 1, "", "get_regularizer"]], "fl_sim.regularizers.L1Norm": [[55, 3, 1, "", "eval"], [55, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.L2Norm": [[56, 3, 1, "", "eval"], [56, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.L2NormSquared": [[57, 3, 1, "", "eval"], [57, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.LInfNorm": [[58, 3, 1, "", "eval"], [58, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.NullRegularizer": [[59, 3, 1, "", "eval"], [59, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.Regularizer": [[60, 3, 1, "", "eval"], [60, 3, 1, "", "extra_repr_keys"], [60, 3, 1, "", "prox_eval"]], "fl_sim.utils": [[66, 0, 0, "-", "imports"], [66, 0, 0, "-", "loggers"], [66, 0, 0, "-", "misc"]], "fl_sim.utils.imports": [[66, 4, 1, "", "load_module_from_file"]], "fl_sim.utils.loggers": [[66, 1, 1, "", "BaseLogger"], [66, 1, 1, "", "CSVLogger"], [66, 1, 1, "", "JsonLogger"], [66, 1, 1, "", "LoggerManager"], [66, 1, 1, "", "TxtLogger"]], "fl_sim.utils.loggers.BaseLogger": [[66, 3, 1, "", "close"], [66, 3, 1, "", "epoch_end"], [66, 3, 1, "", "epoch_start"], [66, 3, 1, "", "extra_repr_keys"], [66, 2, 1, "", "filename"], [66, 3, 1, "", "flush"], [66, 3, 1, "", "from_config"], [66, 2, 1, "", "log_dir"], [66, 3, 1, "", "log_message"], [66, 3, 1, "", "log_metrics"], [66, 3, 1, "", "reset"], [66, 3, 1, "", "set_log_dir"]], "fl_sim.utils.loggers.CSVLogger": [[66, 3, 1, "", "close"], [66, 2, 1, "", "filename"], [66, 3, 1, "", "flush"], [66, 3, 1, "", "from_config"], [66, 3, 1, "", "log_message"], [66, 3, 1, "", "log_metrics"], [66, 3, 1, "", "reset"]], "fl_sim.utils.loggers.JsonLogger": [[66, 3, 1, "", "close"], [66, 2, 1, "", "filename"], [66, 3, 1, "", "flush"], [66, 3, 1, "", "from_config"], [66, 3, 1, "", "log_message"], [66, 3, 1, "", "log_metrics"], [66, 3, 1, "", "reset"], [66, 3, 1, "", "strftime"], [66, 3, 1, "", "strptime"]], "fl_sim.utils.loggers.LoggerManager": [[66, 3, 1, "", "close"], [66, 3, 1, "", "epoch_end"], [66, 3, 1, "", "epoch_start"], [66, 3, 1, "", "extra_repr_keys"], [66, 3, 1, "", "flush"], [66, 3, 1, "", "from_config"], [66, 2, 1, "", "log_dir"], [66, 3, 1, "", "log_message"], [66, 3, 1, "", "log_metrics"], [66, 2, 1, "", "log_suffix"], [66, 2, 1, "", "loggers"], [66, 3, 1, "", "reset"]], "fl_sim.utils.loggers.TxtLogger": [[66, 3, 1, "", "close"], [66, 3, 1, "", "epoch_end"], [66, 3, 1, "", "epoch_start"], [66, 2, 1, "", "filename"], [66, 3, 1, "", "flush"], [66, 3, 1, "", "from_config"], [66, 3, 1, "", "log_message"], [66, 3, 1, "", "log_metrics"], [66, 2, 1, "", "long_sep"], [66, 3, 1, "", "reset"], [66, 2, 1, "", "short_sep"]], "fl_sim.utils.misc": [[66, 4, 1, "", "add_kwargs"], [66, 4, 1, "", "clear_logs"], [66, 4, 1, "", "compute_sparsity"], [66, 4, 1, "", "default_dict_to_dict"], [66, 4, 1, "", "experiment_indicator"], [66, 4, 1, "", "find_longest_common_substring"], [66, 4, 1, "", "get_scheduler"], [66, 4, 1, "", "get_scheduler_info"], [66, 4, 1, "", "is_notebook"], [66, 4, 1, "", "make_serializable"], [66, 4, 1, "", "ordered_dict_to_dict"], [66, 4, 1, "", "set_seed"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"feder": [0, 1, 2, 3, 4, 5], "learn": [0, 1, 2, 3, 4, 5], "algorithm": [0, 1, 2, 3, 4, 5], "section": 0, "oper": 1, "split": 1, "overview": 2, "optim": [2, 53, 54, 64], "averag": 2, "fedavg": 2, "from": 2, "perspect": 2, "A": 2, "direct": 2, "improv": 2, "primal": 3, "dual": 3, "proxim": 4, "skip": 5, "fl_sim": [6, 22, 23, 24, 46, 47, 53, 54, 61, 62, 63, 64, 65, 66], "data_process": [6, 22, 23, 24], "base": [6, 63], "class": [6, 63], "vision": 6, "dataset": 6, "nlp": 6, "synthet": 6, "libsvm": 6, "registri": 6, "util": [6, 62, 66], "fedcifar": 7, "fedcifar100": 8, "feddataset": 9, "fedemnist": 10, "fedlibsvmdataset": 11, "fedmnist": 12, "fednlpdataset": 13, "fedproxfemnist": 14, "fedproxmnist": 15, "fedproxsent140": 16, "fedrotatedcifar10": 17, "fedrotatedmnist": 18, "fedshakespear": 19, "fedsynthet": 20, "fedvisiondataset": 21, "get_fed_dataset": 22, "list_fed_dataset": 23, "register_fed_dataset": 24, "clfmixin": 25, "cnncifar": 26, "cnncifar_smal": 27, "cnncifar_tini": 28, "cnnfemnist": 29, "cnnfemnist_tini": 30, "cnnmnist": 31, "diffmixin": 32, "fedpdmlp": 33, "logisticregress": 34, "mlp": [35, 62], "regmixin": 36, "rnn_originalfedavg": 37, "rnn_sent140": 38, "rnn_sent140_lit": 39, "rnn_stackoverflow": 40, "resnet10": 41, "resnet18": 42, "svc": 43, "svr": 44, "shrinkedresnet": 45, "model": [46, 47, 62], "reset_paramet": 46, "top_n_accuraci": 47, "client": [48, 63], "clientconfig": 49, "node": [50, 63], "server": [51, 63], "serverconfig": 52, "get_optim": 53, "register_optim": 54, "l1norm": 55, "l2norm": 56, "l2normsquar": 57, "linfnorm": 58, "nullregular": 59, "regular": [60, 61, 65], "get_regular": 61, "convolut": 62, "neural": 62, "network": 62, "cnn": 62, "recurr": 62, "rnn": 62, "multilay": 62, "perceptron": 62, "linear": 62, "logger": 66, "import": 66, "misc": 66, "command": 67, "line": 67, "interfac": 67, "usag": 68, "exampl": 68, "welcom": 69, "fl": 69, "sim": 69, "": 69, "document": 69, "get": 69, "start": 69, "api": 69, "refer": 69, "advanc": 69, "topic": 69, "indic": 69, "tabl": 69, "instal": 70, "instruct": 70, "visual": 71, "subsystem": 71}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.intersphinx": 1, "nbsphinx": 4, "sphinxcontrib.bibtex": 9, "sphinx": 57}, "alltitles": {"Federated learning algorithms": [[0, "federated-learning-algorithms"]], "Sections:": [[0, null]], "Operator Splitting Algorithms in Federated Learning": [[1, "operator-splitting-algorithms-in-federated-learning"]], "Overview of Optimization Algorithms in Federated Learning": [[2, "overview-of-optimization-algorithms-in-federated-learning"]], "Federated Averaging Algorithm": [[2, "federated-averaging-algorithm"]], "FedAvg from the Perspective of Optimization": [[2, "fedavg-from-the-perspective-of-optimization"]], "A Direct Improvement of FedAvg": [[2, "a-direct-improvement-of-fedavg"]], "Primal-Dual Algorithms in Federated Learning": [[3, "primal-dual-algorithms-in-federated-learning"]], "Proximal Algorithms in Federated Learning": [[4, "proximal-algorithms-in-federated-learning"]], "Skipping Algorithms in Federated Learning": [[5, "skipping-algorithms-in-federated-learning"]], "fl_sim.data_processing": [[6, "fl-sim-data-processing"]], "Base classes": [[6, "base-classes"]], "Vision datasets": [[6, "vision-datasets"]], "NLP datasets": [[6, "nlp-datasets"]], "Synthetic datasets": [[6, "synthetic-datasets"]], "LibSVM datasets": [[6, "libsvm-datasets"]], "Dataset registry utilities": [[6, "dataset-registry-utilities"]], "FedCIFAR": [[7, "fedcifar"]], "FedCIFAR100": [[8, "fedcifar100"]], "FedDataset": [[9, "feddataset"]], "FedEMNIST": [[10, "fedemnist"]], "FedLibSVMDataset": [[11, "fedlibsvmdataset"]], "FedMNIST": [[12, "fedmnist"]], "FedNLPDataset": [[13, "fednlpdataset"]], "FedProxFEMNIST": [[14, "fedproxfemnist"]], "FedProxMNIST": [[15, "fedproxmnist"]], "FedProxSent140": [[16, "fedproxsent140"]], "FedRotatedCIFAR10": [[17, "fedrotatedcifar10"]], "FedRotatedMNIST": [[18, "fedrotatedmnist"]], "FedShakespeare": [[19, "fedshakespeare"]], "FedSynthetic": [[20, "fedsynthetic"]], "FedVisionDataset": [[21, "fedvisiondataset"]], "fl_sim.data_processing.get_fed_dataset": [[22, "fl-sim-data-processing-get-fed-dataset"]], "fl_sim.data_processing.list_fed_dataset": [[23, "fl-sim-data-processing-list-fed-dataset"]], "fl_sim.data_processing.register_fed_dataset": [[24, "fl-sim-data-processing-register-fed-dataset"]], "CLFMixin": [[25, "clfmixin"]], "CNNCifar": [[26, "cnncifar"]], "CNNCifar_Small": [[27, "cnncifar-small"]], "CNNCifar_Tiny": [[28, "cnncifar-tiny"]], "CNNFEMnist": [[29, "cnnfemnist"]], "CNNFEMnist_Tiny": [[30, "cnnfemnist-tiny"]], "CNNMnist": [[31, "cnnmnist"]], "DiffMixin": [[32, "diffmixin"]], "FedPDMLP": [[33, "fedpdmlp"]], "LogisticRegression": [[34, "logisticregression"]], "MLP": [[35, "mlp"]], "REGMixin": [[36, "regmixin"]], "RNN_OriginalFedAvg": [[37, "rnn-originalfedavg"]], "RNN_Sent140": [[38, "rnn-sent140"]], "RNN_Sent140_LITE": [[39, "rnn-sent140-lite"]], "RNN_StackOverFlow": [[40, "rnn-stackoverflow"]], "ResNet10": [[41, "resnet10"]], "ResNet18": [[42, "resnet18"]], "SVC": [[43, "svc"]], "SVR": [[44, "svr"]], "ShrinkedResNet": [[45, "shrinkedresnet"]], "fl_sim.models.reset_parameters": [[46, "fl-sim-models-reset-parameters"]], "fl_sim.models.top_n_accuracy": [[47, "fl-sim-models-top-n-accuracy"]], "Client": [[48, "client"]], "ClientConfig": [[49, "clientconfig"]], "Node": [[50, "node"]], "Server": [[51, "server"]], "ServerConfig": [[52, "serverconfig"]], "fl_sim.optimizers.get_optimizer": [[53, "fl-sim-optimizers-get-optimizer"]], "fl_sim.optimizers.register_optimizer": [[54, "fl-sim-optimizers-register-optimizer"]], "L1Norm": [[55, "l1norm"]], "L2Norm": [[56, "l2norm"]], "L2NormSquared": [[57, "l2normsquared"]], "LInfNorm": [[58, "linfnorm"]], "NullRegularizer": [[59, "nullregularizer"]], "Regularizer": [[60, "regularizer"]], "fl_sim.regularizers.get_regularizer": [[61, "fl-sim-regularizers-get-regularizer"]], "fl_sim.models": [[62, "fl-sim-models"]], "Convolutional neural networks (CNN)": [[62, "convolutional-neural-networks-cnn"]], "Recurrent neural networks (RNN)": [[62, "recurrent-neural-networks-rnn"]], "Multilayer perceptron (MLP)": [[62, "multilayer-perceptron-mlp"]], "Linear models": [[62, "linear-models"]], "Utilities": [[62, "utilities"]], "fl_sim.nodes": [[63, "fl-sim-nodes"]], "Base Node class": [[63, "base-node-class"]], "Server classes": [[63, "server-classes"]], "Client classes": [[63, "client-classes"]], "fl_sim.optimizers": [[64, "fl-sim-optimizers"]], "fl_sim.regularizers": [[65, "fl-sim-regularizers"]], "fl_sim.utils": [[66, "fl-sim-utils"]], "fl_sim.utils.loggers": [[66, "fl-sim-utils-loggers"]], "fl_sim.utils.imports": [[66, "fl-sim-utils-imports"]], "fl_sim.utils.misc": [[66, "fl-sim-utils-misc"]], "Command line interface": [[67, "command-line-interface"]], "Usage examples": [[68, "usage-examples"]], "Welcome to fl-sim\u2019s documentation!": [[69, "welcome-to-fl-sim-s-documentation"]], "Getting started": [[69, null]], "API Reference": [[69, null]], "Advanced Topics": [[69, null]], "Indices and tables": [[69, "indices-and-tables"]], "Installation instructions": [[70, "installation-instructions"]], "Visualization subsystem": [[71, "visualization-subsystem"]]}, "indexentries": {"fl_sim.data_processing": [[6, "module-fl_sim.data_processing"]], "module": [[6, "module-fl_sim.data_processing"], [62, "module-fl_sim.models"], [63, "module-fl_sim.nodes"], [64, "module-fl_sim.optimizers"], [65, "module-fl_sim.regularizers"], [66, "module-fl_sim.utils"], [66, "module-fl_sim.utils.imports"], [66, "module-fl_sim.utils.loggers"], [66, "module-fl_sim.utils.misc"]], "fedcifar (class in fl_sim.data_processing)": [[7, "fl_sim.data_processing.FedCIFAR"]], "candidate_models (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.candidate_models"]], "doi (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.doi"]], "evaluate() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.get_dataloader"]], "label_map (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.label_map"]], "random_grid_view() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.random_grid_view"]], "view_image() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.view_image"]], "fedcifar100 (class in fl_sim.data_processing)": [[8, "fl_sim.data_processing.FedCIFAR100"]], "url (fl_sim.data_processing.fedcifar100 property)": [[8, "fl_sim.data_processing.FedCIFAR100.url"]], "feddataset (class in fl_sim.data_processing)": [[9, "fl_sim.data_processing.FedDataset"]], "candidate_models (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.candidate_models"]], "data_parts (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.data_parts"]], "doi (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.doi"]], "download_if_needed() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.download_if_needed"]], "evaluate() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.load_partition_data_distributed"]], "url (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.url"]], "fedemnist (class in fl_sim.data_processing)": [[10, "fl_sim.data_processing.FedEMNIST"]], "candidate_models (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.url"]], "view_image() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.view_image"]], "fedlibsvmdataset (class in fl_sim.data_processing)": [[11, "fl_sim.data_processing.FedLibSVMDataset"]], "candidate_models (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.candidate_models"]], "criteria_mapping (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.criteria_mapping"]], "doi (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.doi"]], "download_if_needed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.download_if_needed"]], "evaluate() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.get_dataloader"]], "list_all_libsvm_datasets() (fl_sim.data_processing.fedlibsvmdataset class method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.list_all_libsvm_datasets"]], "list_datasets() (fl_sim.data_processing.fedlibsvmdataset class method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.list_datasets"]], "load_partition_data() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.load_partition_data_distributed"]], "num_classes (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.num_classes"]], "num_features (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.num_features"]], "reset_seed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.reset_seed"]], "url (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.url"]], "fedmnist (class in fl_sim.data_processing)": [[12, "fl_sim.data_processing.FedMNIST"]], "candidate_models (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.url"]], "view_image() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.view_image"]], "fednlpdataset (class in fl_sim.data_processing)": [[13, "fl_sim.data_processing.FedNLPDataset"]], "get_dataloader() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.load_partition_data_distributed"]], "fedproxfemnist (class in fl_sim.data_processing)": [[14, "fl_sim.data_processing.FedProxFEMNIST"]], "candidate_models (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.url"]], "view_image() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.view_image"]], "fedproxmnist (class in fl_sim.data_processing)": [[15, "fl_sim.data_processing.FedProxMNIST"]], "candidate_models (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.random_grid_view"]], "raw_data (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.raw_data"]], "url (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.url"]], "view_image() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.view_image"]], "fedproxsent140 (class in fl_sim.data_processing)": [[16, "fl_sim.data_processing.FedProxSent140"]], "candidate_models (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.candidate_models"]], "doi (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.doi"]], "evaluate() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.evaluate"]], "get_dataloader() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.get_dataloader"]], "url (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.url"]], "view_sample() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.view_sample"]], "fedrotatedcifar10 (class in fl_sim.data_processing)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10"]], "candidate_models (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.candidate_models"]], "doi (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.doi"]], "evaluate() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.get_dataloader"]], "label_map (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.label_map"]], "random_grid_view() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.random_grid_view"]], "url (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.url"]], "view_image() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.view_image"]], "fedrotatedmnist (class in fl_sim.data_processing)": [[18, "fl_sim.data_processing.FedRotatedMNIST"]], "candidate_models (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.doi"]], "download_if_needed() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.download_if_needed"]], "evaluate() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.label_map"]], "mirror (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.mirror"]], "random_grid_view() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.url"]], "view_image() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.view_image"]], "fedshakespeare (class in fl_sim.data_processing)": [[19, "fl_sim.data_processing.FedShakespeare"]], "candidate_models (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.candidate_models"]], "char_to_id() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.char_to_id"]], "doi (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.doi"]], "evaluate() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.evaluate"]], "get_dataloader() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.get_dataloader"]], "get_word_dict() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.get_word_dict"]], "id_to_word() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.id_to_word"]], "preprocess() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.preprocess"]], "url (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.url"]], "view_sample() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.view_sample"]], "words (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.words"]], "fedsynthetic (class in fl_sim.data_processing)": [[20, "fl_sim.data_processing.FedSynthetic"]], "candidate_models (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.candidate_models"]], "doi (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.doi"]], "evaluate() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.load_partition_data_distributed"]], "reset_seed() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.reset_seed"]], "url (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.url"]], "fedvisiondataset (class in fl_sim.data_processing)": [[21, "fl_sim.data_processing.FedVisionDataset"]], "get_class() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_class"]], "get_classes() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_classes"]], "get_dataloader() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_dataloader"]], "label_map (fl_sim.data_processing.fedvisiondataset property)": [[21, "fl_sim.data_processing.FedVisionDataset.label_map"]], "load_partition_data() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.load_partition_data_distributed"]], "n_class (fl_sim.data_processing.fedvisiondataset property)": [[21, "fl_sim.data_processing.FedVisionDataset.n_class"]], "show_image() (fl_sim.data_processing.fedvisiondataset static method)": [[21, "fl_sim.data_processing.FedVisionDataset.show_image"]], "get_fed_dataset() (in module fl_sim.data_processing)": [[22, "fl_sim.data_processing.get_fed_dataset"]], "list_fed_dataset() (in module fl_sim.data_processing)": [[23, "fl_sim.data_processing.list_fed_dataset"]], "register_fed_dataset() (in module fl_sim.data_processing)": [[24, "fl_sim.data_processing.register_fed_dataset"]], "clfmixin (class in fl_sim.models)": [[25, "fl_sim.models.CLFMixin"]], "predict() (fl_sim.models.clfmixin method)": [[25, "fl_sim.models.CLFMixin.predict"]], "predict_proba() (fl_sim.models.clfmixin method)": [[25, "fl_sim.models.CLFMixin.predict_proba"]], "cnncifar (class in fl_sim.models)": [[26, "fl_sim.models.CNNCifar"]], "cnncifar_small (class in fl_sim.models)": [[27, "fl_sim.models.CNNCifar_Small"]], "cnncifar_tiny (class in fl_sim.models)": [[28, "fl_sim.models.CNNCifar_Tiny"]], "cnnfemnist (class in fl_sim.models)": [[29, "fl_sim.models.CNNFEMnist"]], "cnnfemnist_tiny (class in fl_sim.models)": [[30, "fl_sim.models.CNNFEMnist_Tiny"]], "cnnmnist (class in fl_sim.models)": [[31, "fl_sim.models.CNNMnist"]], "diffmixin (class in fl_sim.models)": [[32, "fl_sim.models.DiffMixin"]], "diff() (fl_sim.models.diffmixin method)": [[32, "fl_sim.models.DiffMixin.diff"]], "fedpdmlp (class in fl_sim.models)": [[33, "fl_sim.models.FedPDMLP"]], "logisticregression (class in fl_sim.models)": [[34, "fl_sim.models.LogisticRegression"]], "forward() (fl_sim.models.logisticregression method)": [[34, "fl_sim.models.LogisticRegression.forward"]], "mlp (class in fl_sim.models)": [[35, "fl_sim.models.MLP"]], "regmixin (class in fl_sim.models)": [[36, "fl_sim.models.REGMixin"]], "predict() (fl_sim.models.regmixin method)": [[36, "fl_sim.models.REGMixin.predict"]], "rnn_originalfedavg (class in fl_sim.models)": [[37, "fl_sim.models.RNN_OriginalFedAvg"]], "forward() (fl_sim.models.rnn_originalfedavg method)": [[37, "fl_sim.models.RNN_OriginalFedAvg.forward"]], "pipeline() (fl_sim.models.rnn_originalfedavg method)": [[37, "fl_sim.models.RNN_OriginalFedAvg.pipeline"]], "rnn_sent140 (class in fl_sim.models)": [[38, "fl_sim.models.RNN_Sent140"]], "forward() (fl_sim.models.rnn_sent140 method)": [[38, "fl_sim.models.RNN_Sent140.forward"]], "pipeline() (fl_sim.models.rnn_sent140 method)": [[38, "fl_sim.models.RNN_Sent140.pipeline"]], "rnn_sent140_lite (class in fl_sim.models)": [[39, "fl_sim.models.RNN_Sent140_LITE"]], "forward() (fl_sim.models.rnn_sent140_lite method)": [[39, "fl_sim.models.RNN_Sent140_LITE.forward"]], "rnn_stackoverflow (class in fl_sim.models)": [[40, "fl_sim.models.RNN_StackOverFlow"]], "forward() (fl_sim.models.rnn_stackoverflow method)": [[40, "fl_sim.models.RNN_StackOverFlow.forward"]], "pipeline() (fl_sim.models.rnn_stackoverflow method)": [[40, "fl_sim.models.RNN_StackOverFlow.pipeline"]], "resnet10 (class in fl_sim.models)": [[41, "fl_sim.models.ResNet10"]], "resnet18 (class in fl_sim.models)": [[42, "fl_sim.models.ResNet18"]], "svc (class in fl_sim.models)": [[43, "fl_sim.models.SVC"]], "forward() (fl_sim.models.svc method)": [[43, "fl_sim.models.SVC.forward"]], "svr (class in fl_sim.models)": [[44, "fl_sim.models.SVR"]], "forward() (fl_sim.models.svr method)": [[44, "fl_sim.models.SVR.forward"]], "shrinkedresnet (class in fl_sim.models)": [[45, "fl_sim.models.ShrinkedResNet"]], "reset_parameters() (in module fl_sim.models)": [[46, "fl_sim.models.reset_parameters"]], "top_n_accuracy() (in module fl_sim.models)": [[47, "fl_sim.models.top_n_accuracy"]], "client (class in fl_sim.nodes)": [[48, "fl_sim.nodes.Client"]], "evaluate() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.evaluate"]], "extra_repr_keys() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.extra_repr_keys"]], "get_all_data() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.get_all_data"]], "is_convergent (fl_sim.nodes.client property)": [[48, "fl_sim.nodes.Client.is_convergent"]], "sample_data() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.sample_data"]], "solve_inner() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.solve_inner"]], "train() (fl_sim.nodes.client method)": [[48, "fl_sim.nodes.Client.train"]], "clientconfig (class in fl_sim.nodes)": [[49, "fl_sim.nodes.ClientConfig"]], "extra_repr_keys() (fl_sim.nodes.clientconfig method)": [[49, "fl_sim.nodes.ClientConfig.extra_repr_keys"]], "node (class in fl_sim.nodes)": [[50, "fl_sim.nodes.Node"]], "aggregate_results_from_json_log() (fl_sim.nodes.node static method)": [[50, "fl_sim.nodes.Node.aggregate_results_from_json_log"]], "communicate() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.communicate"]], "compute_gradients() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.compute_gradients"]], "get_detached_model_parameters() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.get_detached_model_parameters"]], "get_gradients() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.get_gradients"]], "get_norm() (fl_sim.nodes.node static method)": [[50, "fl_sim.nodes.Node.get_norm"]], "is_convergent (fl_sim.nodes.node property)": [[50, "fl_sim.nodes.Node.is_convergent"]], "required_config_fields (fl_sim.nodes.node property)": [[50, "fl_sim.nodes.Node.required_config_fields"]], "set_parameters() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.set_parameters"]], "update() (fl_sim.nodes.node method)": [[50, "fl_sim.nodes.Node.update"]], "server (class in fl_sim.nodes)": [[51, "fl_sim.nodes.Server"]], "add_parameters() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.add_parameters"]], "aggregate_client_metrics() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.aggregate_client_metrics"]], "avg_parameters() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.avg_parameters"]], "client_cls (fl_sim.nodes.server property)": [[51, "fl_sim.nodes.Server.client_cls"]], "config_cls (fl_sim.nodes.server property)": [[51, "fl_sim.nodes.Server.config_cls"]], "evaluate_centralized() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.evaluate_centralized"]], "extra_repr_keys() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.extra_repr_keys"]], "get_cached_metrics() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.get_cached_metrics"]], "get_client_data() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.get_client_data"]], "get_client_model() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.get_client_model"]], "is_convergent (fl_sim.nodes.server property)": [[51, "fl_sim.nodes.Server.is_convergent"]], "train() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.train"]], "train_centralized() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.train_centralized"]], "train_federated() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.train_federated"]], "train_local() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.train_local"]], "update_gradients() (fl_sim.nodes.server method)": [[51, "fl_sim.nodes.Server.update_gradients"]], "serverconfig (class in fl_sim.nodes)": [[52, "fl_sim.nodes.ServerConfig"]], "extra_repr_keys() (fl_sim.nodes.serverconfig method)": [[52, "fl_sim.nodes.ServerConfig.extra_repr_keys"]], "get_optimizer() (in module fl_sim.optimizers)": [[53, "fl_sim.optimizers.get_optimizer"]], "register_optimizer() (in module fl_sim.optimizers)": [[54, "fl_sim.optimizers.register_optimizer"]], "l1norm (class in fl_sim.regularizers)": [[55, "fl_sim.regularizers.L1Norm"]], "eval() (fl_sim.regularizers.l1norm method)": [[55, "fl_sim.regularizers.L1Norm.eval"]], "prox_eval() (fl_sim.regularizers.l1norm method)": [[55, "fl_sim.regularizers.L1Norm.prox_eval"]], "l2norm (class in fl_sim.regularizers)": [[56, "fl_sim.regularizers.L2Norm"]], "eval() (fl_sim.regularizers.l2norm method)": [[56, "fl_sim.regularizers.L2Norm.eval"]], "prox_eval() (fl_sim.regularizers.l2norm method)": [[56, "fl_sim.regularizers.L2Norm.prox_eval"]], "l2normsquared (class in fl_sim.regularizers)": [[57, "fl_sim.regularizers.L2NormSquared"]], "eval() (fl_sim.regularizers.l2normsquared method)": [[57, "fl_sim.regularizers.L2NormSquared.eval"]], "prox_eval() (fl_sim.regularizers.l2normsquared method)": [[57, "fl_sim.regularizers.L2NormSquared.prox_eval"]], "linfnorm (class in fl_sim.regularizers)": [[58, "fl_sim.regularizers.LInfNorm"]], "eval() (fl_sim.regularizers.linfnorm method)": [[58, "fl_sim.regularizers.LInfNorm.eval"]], "prox_eval() (fl_sim.regularizers.linfnorm method)": [[58, "fl_sim.regularizers.LInfNorm.prox_eval"]], "nullregularizer (class in fl_sim.regularizers)": [[59, "fl_sim.regularizers.NullRegularizer"]], "eval() (fl_sim.regularizers.nullregularizer method)": [[59, "fl_sim.regularizers.NullRegularizer.eval"]], "prox_eval() (fl_sim.regularizers.nullregularizer method)": [[59, "fl_sim.regularizers.NullRegularizer.prox_eval"]], "regularizer (class in fl_sim.regularizers)": [[60, "fl_sim.regularizers.Regularizer"]], "eval() (fl_sim.regularizers.regularizer method)": [[60, "fl_sim.regularizers.Regularizer.eval"]], "extra_repr_keys() (fl_sim.regularizers.regularizer method)": [[60, "fl_sim.regularizers.Regularizer.extra_repr_keys"]], "prox_eval() (fl_sim.regularizers.regularizer method)": [[60, "fl_sim.regularizers.Regularizer.prox_eval"]], "get_regularizer() (in module fl_sim.regularizers)": [[61, "fl_sim.regularizers.get_regularizer"]], "fl_sim.models": [[62, "module-fl_sim.models"]], "fl_sim.nodes": [[63, "module-fl_sim.nodes"]], "fl_sim.optimizers": [[64, "module-fl_sim.optimizers"]], "fl_sim.regularizers": [[65, "module-fl_sim.regularizers"]], "baselogger (class in fl_sim.utils.loggers)": [[66, "fl_sim.utils.loggers.BaseLogger"]], "csvlogger (class in fl_sim.utils.loggers)": [[66, "fl_sim.utils.loggers.CSVLogger"]], "jsonlogger (class in fl_sim.utils.loggers)": [[66, "fl_sim.utils.loggers.JsonLogger"]], "loggermanager (class in fl_sim.utils.loggers)": [[66, "fl_sim.utils.loggers.LoggerManager"]], "txtlogger (class in fl_sim.utils.loggers)": [[66, "fl_sim.utils.loggers.TxtLogger"]], "add_kwargs() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.add_kwargs"]], "clear_logs() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.clear_logs"]], "close() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.close"]], "close() (fl_sim.utils.loggers.csvlogger method)": [[66, "fl_sim.utils.loggers.CSVLogger.close"]], "close() (fl_sim.utils.loggers.jsonlogger method)": [[66, "fl_sim.utils.loggers.JsonLogger.close"]], "close() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.close"]], "close() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.close"]], "compute_sparsity() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.compute_sparsity"]], "default_dict_to_dict() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.default_dict_to_dict"]], "epoch_end() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.epoch_end"]], "epoch_end() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.epoch_end"]], "epoch_end() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.epoch_end"]], "epoch_start() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.epoch_start"]], "epoch_start() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.epoch_start"]], "epoch_start() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.epoch_start"]], "experiment_indicator() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.experiment_indicator"]], "extra_repr_keys() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.extra_repr_keys"]], "extra_repr_keys() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.extra_repr_keys"]], "filename (fl_sim.utils.loggers.baselogger property)": [[66, "fl_sim.utils.loggers.BaseLogger.filename"]], "filename (fl_sim.utils.loggers.csvlogger property)": [[66, "fl_sim.utils.loggers.CSVLogger.filename"]], "filename (fl_sim.utils.loggers.jsonlogger property)": [[66, "fl_sim.utils.loggers.JsonLogger.filename"]], "filename (fl_sim.utils.loggers.txtlogger property)": [[66, "fl_sim.utils.loggers.TxtLogger.filename"]], "find_longest_common_substring() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.find_longest_common_substring"]], "fl_sim.utils": [[66, "module-fl_sim.utils"]], "fl_sim.utils.imports": [[66, "module-fl_sim.utils.imports"]], "fl_sim.utils.loggers": [[66, "module-fl_sim.utils.loggers"]], "fl_sim.utils.misc": [[66, "module-fl_sim.utils.misc"]], "flush() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.flush"]], "flush() (fl_sim.utils.loggers.csvlogger method)": [[66, "fl_sim.utils.loggers.CSVLogger.flush"]], "flush() (fl_sim.utils.loggers.jsonlogger method)": [[66, "fl_sim.utils.loggers.JsonLogger.flush"]], "flush() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.flush"]], "flush() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.flush"]], "from_config() (fl_sim.utils.loggers.baselogger class method)": [[66, "fl_sim.utils.loggers.BaseLogger.from_config"]], "from_config() (fl_sim.utils.loggers.csvlogger class method)": [[66, "fl_sim.utils.loggers.CSVLogger.from_config"]], "from_config() (fl_sim.utils.loggers.jsonlogger class method)": [[66, "fl_sim.utils.loggers.JsonLogger.from_config"]], "from_config() (fl_sim.utils.loggers.loggermanager class method)": [[66, "fl_sim.utils.loggers.LoggerManager.from_config"]], "from_config() (fl_sim.utils.loggers.txtlogger class method)": [[66, "fl_sim.utils.loggers.TxtLogger.from_config"]], "get_scheduler() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.get_scheduler"]], "get_scheduler_info() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.get_scheduler_info"]], "is_notebook() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.is_notebook"]], "load_module_from_file() (in module fl_sim.utils.imports)": [[66, "fl_sim.utils.imports.load_module_from_file"]], "log_dir (fl_sim.utils.loggers.baselogger property)": [[66, "fl_sim.utils.loggers.BaseLogger.log_dir"]], "log_dir (fl_sim.utils.loggers.loggermanager property)": [[66, "fl_sim.utils.loggers.LoggerManager.log_dir"]], "log_message() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.log_message"]], "log_message() (fl_sim.utils.loggers.csvlogger method)": [[66, "fl_sim.utils.loggers.CSVLogger.log_message"]], "log_message() (fl_sim.utils.loggers.jsonlogger method)": [[66, "fl_sim.utils.loggers.JsonLogger.log_message"]], "log_message() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.log_message"]], "log_message() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.log_message"]], "log_metrics() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.csvlogger method)": [[66, "fl_sim.utils.loggers.CSVLogger.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.jsonlogger method)": [[66, "fl_sim.utils.loggers.JsonLogger.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.log_metrics"]], "log_suffix (fl_sim.utils.loggers.loggermanager property)": [[66, "fl_sim.utils.loggers.LoggerManager.log_suffix"]], "loggers (fl_sim.utils.loggers.loggermanager property)": [[66, "fl_sim.utils.loggers.LoggerManager.loggers"]], "long_sep (fl_sim.utils.loggers.txtlogger property)": [[66, "fl_sim.utils.loggers.TxtLogger.long_sep"]], "make_serializable() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.make_serializable"]], "ordered_dict_to_dict() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.ordered_dict_to_dict"]], "reset() (fl_sim.utils.loggers.baselogger method)": [[66, "fl_sim.utils.loggers.BaseLogger.reset"]], "reset() (fl_sim.utils.loggers.csvlogger method)": [[66, "fl_sim.utils.loggers.CSVLogger.reset"]], "reset() (fl_sim.utils.loggers.jsonlogger method)": [[66, "fl_sim.utils.loggers.JsonLogger.reset"]], "reset() (fl_sim.utils.loggers.loggermanager method)": [[66, "fl_sim.utils.loggers.LoggerManager.reset"]], "reset() (fl_sim.utils.loggers.txtlogger method)": [[66, "fl_sim.utils.loggers.TxtLogger.reset"]], "set_log_dir() (fl_sim.utils.loggers.baselogger static method)": [[66, "fl_sim.utils.loggers.BaseLogger.set_log_dir"]], "set_seed() (in module fl_sim.utils.misc)": [[66, "fl_sim.utils.misc.set_seed"]], "short_sep (fl_sim.utils.loggers.txtlogger property)": [[66, "fl_sim.utils.loggers.TxtLogger.short_sep"]], "strftime() (fl_sim.utils.loggers.jsonlogger static method)": [[66, "fl_sim.utils.loggers.JsonLogger.strftime"]], "strptime() (fl_sim.utils.loggers.jsonlogger static method)": [[66, "fl_sim.utils.loggers.JsonLogger.strptime"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["algorithms", "algorithms/operator_splitting", "algorithms/overview", "algorithms/primal_dual", "algorithms/proximal", "algorithms/skipping", "api/datasets", "api/generated/fl_sim.data_processing.FedCIFAR", "api/generated/fl_sim.data_processing.FedCIFAR100", "api/generated/fl_sim.data_processing.FedDataset", "api/generated/fl_sim.data_processing.FedEMNIST", "api/generated/fl_sim.data_processing.FedLibSVMDataset", "api/generated/fl_sim.data_processing.FedMNIST", "api/generated/fl_sim.data_processing.FedNLPDataset", "api/generated/fl_sim.data_processing.FedProxFEMNIST", "api/generated/fl_sim.data_processing.FedProxMNIST", "api/generated/fl_sim.data_processing.FedProxSent140", "api/generated/fl_sim.data_processing.FedRotatedCIFAR10", "api/generated/fl_sim.data_processing.FedRotatedMNIST", "api/generated/fl_sim.data_processing.FedShakespeare", "api/generated/fl_sim.data_processing.FedSynthetic", "api/generated/fl_sim.data_processing.FedVisionDataset", "api/generated/fl_sim.data_processing.TinyImageNet", "api/generated/fl_sim.data_processing.get_fed_dataset", "api/generated/fl_sim.data_processing.list_fed_dataset", "api/generated/fl_sim.data_processing.register_fed_dataset", "api/generated/fl_sim.models.CLFMixin", "api/generated/fl_sim.models.CNNCifar", "api/generated/fl_sim.models.CNNCifar_Small", "api/generated/fl_sim.models.CNNCifar_Tiny", "api/generated/fl_sim.models.CNNFEMnist", "api/generated/fl_sim.models.CNNFEMnist_Tiny", "api/generated/fl_sim.models.CNNMnist", "api/generated/fl_sim.models.DiffMixin", "api/generated/fl_sim.models.FedPDMLP", "api/generated/fl_sim.models.LogisticRegression", "api/generated/fl_sim.models.MLP", "api/generated/fl_sim.models.REGMixin", "api/generated/fl_sim.models.RNN_OriginalFedAvg", "api/generated/fl_sim.models.RNN_Sent140", "api/generated/fl_sim.models.RNN_Sent140_LITE", "api/generated/fl_sim.models.RNN_StackOverFlow", "api/generated/fl_sim.models.ResNet10", "api/generated/fl_sim.models.ResNet18", "api/generated/fl_sim.models.SVC", "api/generated/fl_sim.models.SVR", "api/generated/fl_sim.models.ShrinkedResNet", "api/generated/fl_sim.models.reset_parameters", "api/generated/fl_sim.models.top_n_accuracy", "api/generated/fl_sim.nodes.Client", "api/generated/fl_sim.nodes.ClientConfig", "api/generated/fl_sim.nodes.Node", "api/generated/fl_sim.nodes.Server", "api/generated/fl_sim.nodes.ServerConfig", "api/generated/fl_sim.optimizers.get_optimizer", "api/generated/fl_sim.optimizers.register_optimizer", "api/generated/fl_sim.regularizers.L1Norm", "api/generated/fl_sim.regularizers.L2Norm", "api/generated/fl_sim.regularizers.L2NormSquared", "api/generated/fl_sim.regularizers.LInfNorm", "api/generated/fl_sim.regularizers.NullRegularizer", "api/generated/fl_sim.regularizers.Regularizer", "api/generated/fl_sim.regularizers.get_regularizer", "api/models", "api/nodes", "api/optimizers", "api/regularizers", "api/utils", "cli", "examples", "index", "install", "viz"], "filenames": ["algorithms.rst", "algorithms/operator_splitting.rst", "algorithms/overview.rst", "algorithms/primal_dual.rst", "algorithms/proximal.rst", "algorithms/skipping.rst", "api/datasets.rst", "api/generated/fl_sim.data_processing.FedCIFAR.rst", "api/generated/fl_sim.data_processing.FedCIFAR100.rst", "api/generated/fl_sim.data_processing.FedDataset.rst", "api/generated/fl_sim.data_processing.FedEMNIST.rst", "api/generated/fl_sim.data_processing.FedLibSVMDataset.rst", "api/generated/fl_sim.data_processing.FedMNIST.rst", "api/generated/fl_sim.data_processing.FedNLPDataset.rst", "api/generated/fl_sim.data_processing.FedProxFEMNIST.rst", "api/generated/fl_sim.data_processing.FedProxMNIST.rst", "api/generated/fl_sim.data_processing.FedProxSent140.rst", "api/generated/fl_sim.data_processing.FedRotatedCIFAR10.rst", "api/generated/fl_sim.data_processing.FedRotatedMNIST.rst", "api/generated/fl_sim.data_processing.FedShakespeare.rst", "api/generated/fl_sim.data_processing.FedSynthetic.rst", "api/generated/fl_sim.data_processing.FedVisionDataset.rst", "api/generated/fl_sim.data_processing.TinyImageNet.rst", "api/generated/fl_sim.data_processing.get_fed_dataset.rst", "api/generated/fl_sim.data_processing.list_fed_dataset.rst", "api/generated/fl_sim.data_processing.register_fed_dataset.rst", "api/generated/fl_sim.models.CLFMixin.rst", "api/generated/fl_sim.models.CNNCifar.rst", "api/generated/fl_sim.models.CNNCifar_Small.rst", "api/generated/fl_sim.models.CNNCifar_Tiny.rst", "api/generated/fl_sim.models.CNNFEMnist.rst", "api/generated/fl_sim.models.CNNFEMnist_Tiny.rst", "api/generated/fl_sim.models.CNNMnist.rst", "api/generated/fl_sim.models.DiffMixin.rst", "api/generated/fl_sim.models.FedPDMLP.rst", "api/generated/fl_sim.models.LogisticRegression.rst", "api/generated/fl_sim.models.MLP.rst", "api/generated/fl_sim.models.REGMixin.rst", "api/generated/fl_sim.models.RNN_OriginalFedAvg.rst", "api/generated/fl_sim.models.RNN_Sent140.rst", "api/generated/fl_sim.models.RNN_Sent140_LITE.rst", "api/generated/fl_sim.models.RNN_StackOverFlow.rst", "api/generated/fl_sim.models.ResNet10.rst", "api/generated/fl_sim.models.ResNet18.rst", "api/generated/fl_sim.models.SVC.rst", "api/generated/fl_sim.models.SVR.rst", "api/generated/fl_sim.models.ShrinkedResNet.rst", "api/generated/fl_sim.models.reset_parameters.rst", "api/generated/fl_sim.models.top_n_accuracy.rst", "api/generated/fl_sim.nodes.Client.rst", "api/generated/fl_sim.nodes.ClientConfig.rst", "api/generated/fl_sim.nodes.Node.rst", "api/generated/fl_sim.nodes.Server.rst", "api/generated/fl_sim.nodes.ServerConfig.rst", "api/generated/fl_sim.optimizers.get_optimizer.rst", "api/generated/fl_sim.optimizers.register_optimizer.rst", "api/generated/fl_sim.regularizers.L1Norm.rst", "api/generated/fl_sim.regularizers.L2Norm.rst", "api/generated/fl_sim.regularizers.L2NormSquared.rst", "api/generated/fl_sim.regularizers.LInfNorm.rst", "api/generated/fl_sim.regularizers.NullRegularizer.rst", "api/generated/fl_sim.regularizers.Regularizer.rst", "api/generated/fl_sim.regularizers.get_regularizer.rst", "api/models.rst", "api/nodes.rst", "api/optimizers.rst", "api/regularizers.rst", "api/utils.rst", "cli.rst", "examples.rst", "index.rst", "install.rst", "viz.rst"], "titles": ["Federated learning algorithms", "Operator Splitting Algorithms in Federated Learning", "Overview of Optimization Algorithms in Federated Learning", "Primal-Dual Algorithms in Federated Learning", "Proximal Algorithms in Federated Learning", "Skipping Algorithms in Federated Learning", "fl_sim.data_processing", "FedCIFAR", "FedCIFAR100", "FedDataset", "FedEMNIST", "FedLibSVMDataset", "FedMNIST", "FedNLPDataset", "FedProxFEMNIST", "FedProxMNIST", "FedProxSent140", "FedRotatedCIFAR10", "FedRotatedMNIST", "FedShakespeare", "FedSynthetic", "FedVisionDataset", "TinyImageNet", "fl_sim.data_processing.get_fed_dataset", "fl_sim.data_processing.list_fed_dataset", "fl_sim.data_processing.register_fed_dataset", "CLFMixin", "CNNCifar", "CNNCifar_Small", "CNNCifar_Tiny", "CNNFEMnist", "CNNFEMnist_Tiny", "CNNMnist", "DiffMixin", "FedPDMLP", "LogisticRegression", "MLP", "REGMixin", "RNN_OriginalFedAvg", "RNN_Sent140", "RNN_Sent140_LITE", "RNN_StackOverFlow", "ResNet10", "ResNet18", "SVC", "SVR", "ShrinkedResNet", "fl_sim.models.reset_parameters", "fl_sim.models.top_n_accuracy", "Client", "ClientConfig", "Node", "Server", "ServerConfig", "fl_sim.optimizers.get_optimizer", "fl_sim.optimizers.register_optimizer", "L1Norm", "L2Norm", "L2NormSquared", "LInfNorm", "NullRegularizer", "Regularizer", "fl_sim.regularizers.get_regularizer", "fl_sim.models", "fl_sim.nodes", "fl_sim.optimizers", "fl_sim.regularizers", "fl_sim.utils", "Command line interface", "Usage examples", "Welcome to fl-sim\u2019s documentation!", "Installation instructions", "Visualization subsystem"], "terms": {"optim": [0, 3, 4, 12, 14, 38, 41, 49, 50, 52, 66, 67, 70], "have": [0, 2, 4, 9, 13, 21, 68, 72], "been": [0, 2, 14], "central": [0, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 52], "problem": [0, 2, 3, 4, 50, 65, 66], "field": [0, 2, 4, 51], "sinc": [0, 2, 4, 35, 44, 45], "its": [0, 2, 4, 38, 41, 47, 51], "incept": 0, "thi": [0, 2, 4, 6, 7, 10, 12, 14, 15, 19, 20, 29, 33, 35, 38, 40, 41, 42, 44, 45, 49, 52, 63, 65, 66, 67], "chapter": 0, "contain": [0, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 63, 65, 66, 67], "collect": [0, 19], "propos": [0, 2, 4, 14, 15, 20], "literatur": [0, 2], "which": [0, 2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 22, 33, 50, 52, 54, 64, 67], "analyz": [0, 2], "from": [0, 4, 7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 22, 26, 29, 30, 31, 32, 34, 38, 39, 41, 43, 51, 52, 54, 65, 67], "viewpoint": 0, "theori": [0, 2, 17, 18, 52], "espcial": [0, 2], "oper": [0, 2, 4, 56, 57, 58, 59, 60, 61, 72], "split": [0, 4], "overview": 0, "proxim": [0, 56, 57, 58, 59, 60, 61, 65], "primal": 0, "dual": [0, 65], "skip": [0, 2], "write": [1, 3, 4, 5, 69], "more": [1, 2, 3, 4, 5, 33, 51, 71], "The": [2, 4, 7, 10, 13, 14, 17, 18, 19, 20, 22, 25, 26, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 64, 67, 68, 71, 72], "most": [2, 7, 10], "import": [2, 54], "contribut": 2, "initi": [2, 52], "work": [2, 4, 19], "mcmahan": [2, 38, 41], "et": [2, 4, 17, 18, 38, 41], "al": [2, 4, 17, 18, 38, 41], "1": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 32, 34, 36, 38, 39, 41, 48, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 67, 68], "wa": 2, "introduct": 2, "mathemat": 2, "solv": [2, 3, 4, 50, 65], "follow": [2, 4, 10, 12, 14, 19, 51, 56, 57, 58, 59, 60, 61, 67, 71, 72], "minim": [2, 4], "empir": 2, "risk": 2, "function": [2, 4, 35, 36, 38, 41, 44, 45, 49, 52, 56, 57, 58, 59, 60, 61, 67], "declaremathoper": [2, 4], "expect": [2, 4], "mathbb": [2, 4], "e": [2, 4, 7, 56, 57, 58, 59, 60, 61, 71, 72], "newcommand": [2, 4], "r": [2, 4, 7, 56, 57, 58, 59, 60, 61], "begin": [2, 4], "arrai": [2, 4, 51, 67], "cl": [2, 4], "limits_": [2, 4], "theta": [2, 4], "d": [2, 4, 51, 67], "f": [2, 4, 7], "k": [2, 4], "sim": [2, 67, 68, 71, 72], "mathcal": [2, 4], "p": [2, 4, 68, 72], "f_k": [2, 4], "text": [2, 4, 67], "where": [2, 4, 7, 15, 21, 52, 56, 57, 58, 59, 60, 61], "x": [2, 7, 10, 12, 14, 15, 17, 18, 22, 35, 44, 45, 67], "y": [2, 4, 38], "_k": [2, 4], "ell_k": 2, "end": [2, 4, 67], "i": [2, 3, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 29, 36, 38, 42, 49, 51, 52, 56, 57, 58, 59, 60, 61, 64, 67, 68, 71, 72], "loss": [2, 36, 49, 51, 67], "client": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 50, 51, 52, 53, 67, 68], "data": [2, 4, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 34, 36, 37, 38, 49, 51, 52, 67], "distribut": [2, 4, 12, 20, 22, 52], "If": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 36, 43, 52, 53, 55, 56, 57, 58, 59, 60, 61, 67], "we": [2, 4, 12, 14, 22, 65, 68], "simpli": 2, "let": [2, 4], "2": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 33, 34, 36, 38, 39, 40, 51, 53, 54, 56, 57, 58, 59, 60, 61, 67], "ldot": 2, "can": [2, 4, 7, 36, 38, 41, 46, 49, 52, 54, 67, 68, 71, 72], "simplifi": 2, "sum": [2, 4, 49], "w_k": 2, "For": [2, 4, 51, 68, 71], "further": [2, 4, 14], "simplic": [2, 22], "often": 2, "take": [2, 35, 44, 45], "frac": [2, 4, 56, 57, 58, 59, 60, 61], "ar": [2, 4, 7, 10, 17, 18, 22, 40, 51, 52, 64, 67], "usual": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "assum": [2, 4], "satisfi": [2, 4], "condit": [2, 4], "a1": 2, "l": [2, 4, 59], "smooth": [2, 4, 72], "0": [2, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 34, 36, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 67, 68], "thei": 2, "lipschitz": 2, "continu": 2, "gradient": [2, 4, 51, 52], "c": [2, 4, 7, 21], "lvert": [2, 4, 56, 57, 58, 59, 60, 61], "nabla": [2, 4], "rvert": [2, 4], "leqslant": [2, 4], "quad": 2, "foral": [2, 4], "a2": 2, "rang": [2, 10, 12, 14, 49, 52, 72], "dom": 2, "infti": 2, "nonempti": 2, "lower": [2, 10], "bound": [2, 4, 72], "exist": [2, 4, 25, 55], "constant": [2, 4, 50], "geqslant": 2, "equival": [2, 4, 60], "inf": [2, 4], "In": [2, 3, 4, 38, 41], "mani": 2, "case": [2, 4, 10, 52], "order": [2, 4, 14, 67], "facilit": 2, "analysi": [2, 4, 39, 40], "converg": [2, 4, 49, 51, 52], "also": [2, 4, 12, 38, 65, 67], "make": [2, 4, 67], "some": [2, 4, 65], "assumpt": 2, "about": 2, "object": [2, 4, 26, 33, 37, 39, 67], "a3": 2, "g": [2, 71, 72], "And": 2, "a4": 2, "ident": [2, 4], "independ": 2, "across": [2, 4], "ani": [2, 4, 7, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 23, 25, 50, 52, 53, 54, 55, 67], "varepsilon": [2, 4], "b": [2, 4, 67], "left": [2, 4], "middl": 2, "right": [2, 4], "non": [2, 4, 15], "need": [2, 4, 9, 11, 18, 35, 44, 45], "quantiti": 2, "measur": 2, "degre": 2, "statist": [2, 10, 14, 19, 38], "heterogen": [2, 4, 12, 14, 53], "defin": [2, 35, 44, 45], "number": [2, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 53, 67], "wai": 2, "karimireddi": 2, "zhang": [2, 4], "3": [2, 4, 10, 21, 22, 27, 28, 29, 51, 67, 68, 71], "li": [2, 4], "4": [2, 4, 18, 51, 67, 72], "5": [2, 4, 22, 67], "exampl": [2, 7, 10, 19, 33, 49, 51, 54, 65, 67, 68, 70], "so": [2, 4, 46, 67], "call": [2, 4, 35, 44, 45], "dissimilar": [2, 4], "bgd": 2, "denot": [2, 4], "us": [2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 32, 36, 38, 39, 41, 42, 43, 50, 52, 53, 55, 56, 57, 58, 59, 60, 61, 65, 67, 68, 71, 72], "specif": [2, 4], "dfrac": 2, "It": [2, 4, 22, 72], "should": [2, 4, 35, 44, 45, 51, 52, 54], "note": [2, 12, 14, 72], "degenr": 2, "sometim": 2, "proof": 2, "one": [2, 4, 33, 35, 44, 45, 52, 67, 71, 72], "convex": [2, 4], "a5": 2, "alpha": [2, 20, 22], "set": [2, 4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 50, 51, 52, 53, 67], "strong": 2, "mu": [2, 4], "sai": 2, "strongli": 2, "due": 2, "natur": 2, "layer": [2, 34, 36, 38, 39, 40, 41, 46], "decoupl": 2, "structur": [2, 33, 38, 41, 51, 67], "consid": 2, "constrain": [2, 4], "theta_k": [2, 4], "subject": [2, 4], "easi": 2, "find": [2, 67], "between": [2, 33], "11": [2, 4], "unconstrain": 2, "formul": 2, "consensu": 2, "boyd": [2, 4], "6": [2, 4, 67, 71], "superior": 2, "becom": [2, 4], "block": [2, 46], "separ": [2, 67], "suitabl": 2, "design": [2, 4], "parallel": [2, 52], "core": [2, 64], "idea": [2, 4], "full": [2, 14], "local": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 49, 50, 51, 52, 65], "comput": [2, 33, 35, 44, 45, 51, 67], "resourc": 2, "each": [2, 11, 12, 13, 19, 20, 21, 22, 26, 38, 41, 46, 53, 67], "perform": [2, 19, 35, 44, 45, 52, 67], "multipl": [2, 4, 17, 18, 68], "iter": [2, 4, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61], "befor": 2, "upload": 2, "model": [2, 4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 51, 52, 53, 54, 67, 68, 70], "server": [2, 4, 49, 50, 51, 53, 67, 68], "allevi": 2, "straggler": 2, "reduc": [2, 4], "commun": [2, 4, 38, 49, 51, 52], "overhead": [2, 4], "henc": [2, 4, 14, 40], "acceler": 2, "mai": 2, "well": [2, 64, 67], "thought": 2, "simpl": [2, 63, 70, 72], "form": [2, 4, 67], "were": [2, 4], "develop": 2, "mishchenko": 2, "7": [2, 4, 68], "loizou": 2, "8": [2, 4, 38], "pseudocod": [2, 4], "shown": 2, "achiev": [2, 52], "good": [2, 4], "numer": [2, 12, 72], "result": [2, 7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 51], "see": [2, 4], "section": [2, 68], "under": 2, "properli": 2, "khale": 2, "9": [2, 4, 12, 14, 18], "10": [2, 4, 7, 14, 17, 18, 20, 33, 54, 68], "There": 2, "sever": 2, "deal": 2, "issu": 2, "zhou": 2, "cong": 2, "extra": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 49, 50, 52, 53, 61, 67], "etc": [2, 36, 51, 67, 72], "fact": 2, "reformul": 2, "col": 2, "operatornam": 2, "theta_1": 2, "cdot": 2, "pmatrix": 2, "vdot": 2, "kd": 2, "project": [2, 70], "descent": [2, 4], "pgd": 2, "an": [2, 4, 17, 18, 19, 38, 41, 51, 67], "effect": 2, "method": [2, 3, 4, 7, 9, 10, 13, 21, 49, 52], "12": [2, 17, 18], "ha": [2, 4, 12, 14, 33, 42, 64, 72], "updat": [2, 4, 51, 52], "rule": 2, "t": [2, 4], "pi_": 2, "eta": 2, "onto": 2, "show": [2, 21, 72], "inde": [2, 4], "mapsto": 2, "kind": [2, 3], "stochast": 2, "spgd": 2, "sgd": [2, 54], "step": [2, 4, 49, 51, 67, 68], "14": 2, "base": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 67, 70, 72], "appli": [2, 7, 10, 12, 14, 15, 17, 18, 21, 22], "techniqu": 2, "duchi": 2, "kingma": 2, "ba": 2, "13": 2, "zaheer": [2, 4, 38, 41], "reddi": [2, 38, 41], "15": 2, "rel": [2, 53], "doe": [2, 22], "requir": [2, 51, 67, 71], "larg": [2, 4], "modif": 2, "whole": [2, 4], "framework": [2, 4, 17, 18, 64, 70], "author": 2, "paper": [2, 14, 16, 20, 38, 41], "put": 2, "practic": 2, "fedopt": 2, "16": [2, 19], "stronger": 2, "adapt": [2, 38, 39, 41, 67], "abov": [2, 4, 14], "aggreg": [2, 51, 52], "delta_": 2, "_": [2, 4, 56, 57, 58, 59, 60, 61], "": [2, 4, 7, 9, 10, 11, 12, 17, 18, 19, 20, 22, 36, 52, 64], "refer": [2, 4, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 22, 33, 38, 39, 41, 51, 67, 71], "inertia": [2, 52], "select": [2, 7, 10, 12, 14, 15, 17, 18, 22, 72], "global": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 51, 52, 67], "delta": 2, "get": [2, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 49, 51, 52, 54, 62, 67], "linear": [2, 33, 54], "combin": 2, "previou": [2, 4, 52], "beta_1": 2, "sum_": 2, "As": 2, "alreadi": 2, "notic": [2, 4], "compar": [2, 4, 52], "introduc": [2, 4], "momentum": 2, "term": [2, 4], "node": [2, 4, 49, 50, 52, 53, 70], "serveropt": 2, "list": [2, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 33, 36, 46, 49, 50, 51, 52, 53, 61, 67, 72], "option": [2, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 33, 36, 38, 41, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 67, 68, 72], "fedadagrad": 2, "align": 2, "v": [2, 4], "eta_g": 2, "sqrt": [2, 4], "tau": 2, "fedyogi": 2, "beta_2": 2, "sign": 2, "fedadam": [2, 68], "frequent": [2, 3], "gener": [2, 14, 20, 51, 67], "machin": [2, 4, 44, 45, 72], "task": [2, 19, 35, 38, 41], "moreov": 2, "demonstr": 2, "kei": [2, 7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 22, 49, 50, 52, 53, 61, 67], "featur": [2, 11, 20, 34, 35, 36, 38, 39, 40, 41, 44, 45, 49, 72], "To": [2, 4, 12, 71], "better": 2, "handl": 2, "other": [2, 33, 42, 50, 53, 67], "scenario": [2, 4], "differ": [2, 33, 38, 41], "bring": 2, "paramet": [2, 4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 67], "along": [2, 72], "correct": 2, "varianc": 2, "reduct": 2, "johnson": 2, "17": 2, "first": [2, 4, 7], "new": [2, 4, 25, 55, 67], "scaffold": [2, 4, 68], "control": [2, 52], "flexibli": 2, "wide": 2, "howev": 2, "both": [2, 49], "c_k": 2, "maintain": [2, 4, 64], "increas": 2, "cost": [2, 4], "sensit": 2, "would": [2, 4, 50], "potenti": 2, "therefor": 2, "solut": [2, 4], "could": [2, 12], "next": [2, 19, 38, 41], "brendan": [2, 38, 41], "eider": [2, 38], "moor": [2, 38], "daniel": [2, 38], "ramag": [2, 38], "seth": [2, 38], "hampson": [2, 38], "blais": [2, 38], "aguera": [2, 38], "arca": [2, 38], "effici": [2, 17, 18, 38], "deep": [2, 4, 38], "network": [2, 4, 12, 27, 28, 29, 30, 32, 38], "decentr": [2, 38], "artifici": [2, 38], "intellig": [2, 38], "1273": [2, 38], "1282": [2, 38], "pmlr": [2, 4, 38], "2017": [2, 38], "praneeth": 2, "satyen": 2, "kale": 2, "mehryar": 2, "mohri": 2, "sashank": [2, 38, 41], "sebastian": 2, "stich": 2, "ananda": 2, "theertha": 2, "suresh": 2, "intern": [2, 4, 38, 41], "confer": [2, 4, 38, 41], "5132": 2, "5143": 2, "2020": [2, 4, 12, 51, 67], "xinwei": 2, "mingyi": 2, "hong": 2, "sairaj": 2, "dhopl": 2, "wotao": 2, "yin": [2, 17, 18], "yang": 2, "liu": [2, 4], "fedpd": [2, 29, 30, 31, 32, 34, 68], "With": 2, "iid": [2, 11, 15, 20], "ieee": [2, 17, 18], "transact": [2, 17, 18], "signal": 2, "process": [2, 4, 6, 10, 14, 49, 51, 52, 64], "69": 2, "6055": 2, "6070": 2, "2021": [2, 4, 38, 41], "doi": [2, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "1109": [2, 17, 18], "tsp": 2, "3115952": 2, "xiang": 2, "kaixuan": 2, "huang": 2, "wenhao": 2, "shusen": 2, "wang": [2, 4], "zhihua": 2, "On": 2, "represent": [2, 4, 38, 41], "openreview": 2, "net": 2, "tian": [2, 4], "anit": [2, 4], "kumar": [2, 4, 38, 41], "sahu": [2, 4], "manzil": [2, 4, 38, 41], "maziar": [2, 4], "sanjabi": [2, 4], "ameet": [2, 4], "talwalkar": [2, 4], "virginia": [2, 4], "smith": [2, 4], "dhillon": [2, 4], "papailiopoulo": [2, 4], "sze": [2, 4], "editor": [2, 4], "proceed": [2, 4], "system": [2, 4, 53, 72], "volum": [2, 4], "429": [2, 4], "450": [2, 4], "stephen": [2, 4], "neal": [2, 4], "parikh": [2, 4], "eric": 2, "chu": 2, "via": [2, 4, 51, 52, 72], "altern": [2, 4, 71], "multipli": 2, "now": [2, 4], "publish": 2, "inc": [2, 4], "2011": 2, "konstantin": 2, "grigori": 2, "malinovski": 2, "peter": [2, 4], "richtarik": 2, "proxskip": [2, 68], "ye": 2, "provabl": 2, "lead": [2, 12], "final": 2, "kamalika": 2, "chaudhuri": 2, "stefani": 2, "jegelka": 2, "le": 2, "song": [2, 4], "csaba": 2, "szepesvari": 2, "gang": 2, "niu": 2, "sivan": 2, "sabato": 2, "39th": 2, "162": 2, "research": [2, 4], "15750": 2, "15769": 2, "2022": [2, 17, 18], "siqi": 2, "nicola": 2, "variat": 2, "inequ": [2, 4], "opt": 2, "neurip": 2, "workshop": 2, "ahm": 2, "richt\u00e1rik": 2, "gd": 2, "arxiv": [2, 4, 12, 20], "preprint": [2, 4], "1909": 2, "04715v2": 2, "2019": [2, 4], "48550": 2, "04715": 2, "tighter": 2, "silvia": 2, "chiappa": 2, "roberto": 2, "calandra": 2, "twenti": 2, "third": 2, "108": 2, "4519": 2, "4529": 2, "fan": 2, "guoj": 2, "properti": [2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 49, 51, 52, 67, 68], "nonconvex": [2, 4], "27th": 2, "joint": 2, "ijcai": 2, "18": 2, "3219": 2, "3227": 2, "aaai": 2, "press": 2, "2018": 2, "john": 2, "elad": 2, "hazan": 2, "yoram": 2, "singer": 2, "subgradi": 2, "onlin": 2, "journal": 2, "61": 2, "2121": 2, "2159": 2, "diederik": 2, "jimmi": 2, "adam": 2, "3rd": 2, "iclr": 2, "2015": 2, "san": 2, "diego": 2, "ca": 2, "usa": [2, 4], "track": 2, "j": [2, 4, 14, 38, 41], "devendra": 2, "sachan": 2, "sanjiv": [2, 38, 41], "32nd": 2, "neural": [2, 4, 27, 28, 29, 30, 32], "inform": [2, 4, 17, 18, 67], "nip": 2, "9815": 2, "9825": 2, "red": [2, 4], "hook": [2, 4, 35, 44, 45], "ny": [2, 4], "curran": [2, 4], "associ": [2, 4], "beyond": 2, "6th": 2, "url": [2, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "http": [2, 7, 10, 12, 16, 17, 18, 19, 20, 22, 67, 71], "forum": 2, "id": [2, 7, 38, 41, 49, 53], "ryqu7f": 2, "rz": 2, "zachari": [2, 38, 41], "charl": [2, 38, 41], "garrett": [2, 38, 41], "keith": [2, 38, 41], "rush": [2, 38, 41], "jakub": [2, 38, 41], "kone": [2, 38, 41], "\u010d": [2, 38, 41], "n": [2, 7, 38, 41, 48], "\u00fd": [2, 38, 41], "hugh": [2, 38, 41], "rie": 2, "tong": [2, 4], "predict": [2, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 26, 37, 38, 39, 41], "burg": 2, "bottou": 2, "m": [2, 4], "z": [2, 14], "ghahramani": 2, "q": 2, "weinberg": 2, "advanc": [2, 4, 71], "26": 2, "2013": 2, "tradit": 3, "impact": 4, "aim": 4, "stabl": [4, 17, 18], "faster": 4, "do": [4, 7, 10, 12, 14, 15, 17, 18, 22, 52], "mainli": 4, "relat": [4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "addit": [4, 14], "secur": 4, "zhu": 4, "detail": [4, 33, 51], "th": 4, "chang": 4, "h_k": 4, "penalti": 4, "center": 4, "obtain": 4, "overal": 4, "studi": [4, 12], "conduct": [4, 52], "hanz": 4, "richt": 4, "\u00e1": 4, "rik": 4, "later": 4, "summar": 4, "fedprox": [4, 14, 15, 16, 20, 39, 68], "gamma": [4, 68], "inexact": 4, "argmax": 4, "arg": [4, 56, 57, 58, 59, 60, 61], "max": [4, 10, 14], "argmin": 4, "min": [4, 10, 14], "prox": [4, 56, 57, 58, 59, 60, 61], "mathbf": [4, 56, 57, 58, 59, 60, 61], "approx": 4, "prox_": 4, "moreau": 4, "respect": 4, "sf_k": 4, "correspond": [4, 19], "envelop": 4, "yosida": 4, "regular": [4, 56, 57, 58, 59, 60, 70], "relationship": 4, "name": [4, 9, 11, 21, 23, 25, 26, 39, 50, 53, 54, 55, 62, 67, 68, 72], "regard": 4, "size": [4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 28, 32, 38, 41, 50, 52, 68, 72], "theorem": 4, "definit": 4, "l_": 4, "succcurlyeq": 4, "i_d": 4, "b_": 4, "point": 4, "hold": 4, "expectation_k": 4, "fix": [4, 17, 18], "rho": 4, "bar": [4, 72], "lb": 4, "2k": 4, "Then": 4, "stationari": 4, "decreas": 4, "nolimits_": 4, "observ": [4, 50, 53], "neighbourhood": 4, "zero": [4, 60], "cancel": 4, "same": [4, 10, 14, 19, 25, 33, 40, 55], "higher": 4, "goe": 4, "rapidli": 4, "infin": [4, 59], "thu": 4, "violat": 4, "meaningless": 4, "when": [4, 52, 67], "ideal": 4, "constantli": 4, "equal": 4, "mention": 4, "start": [4, 67], "seri": 4, "up": 4, "pathak": 4, "wainwright": 4, "tran": 4, "dinh": 4, "posit": [4, 16], "signific": 4, "ppa": 4, "although": [4, 35, 44, 45], "onli": [4, 7, 12, 14, 17, 18, 42, 52, 68], "inner": [4, 49, 50], "loop": [4, 49, 52], "strict": 4, "sens": 4, "provid": [4, 65, 67, 68], "theoret": 4, "A": [4, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 38, 41, 67, 68, 70], "proport": [4, 53], "person": 4, "fedrat": 4, "acar": 4, "reli": 4, "similar": [4, 51, 72], "main": [4, 49, 52], "technic": 4, "tool": 4, "schemat": 4, "diagram": 4, "alpha_k": 4, "omega_k": 4, "apfl": 4, "feddyn": 4, "ligeng": 4, "zhijian": 4, "han": 4, "leakag": 4, "32": [4, 27, 28, 29], "14774": 4, "14784": 4, "filip": 4, "mixtur": 4, "2002": 4, "05516": 4, "shengyuan": 4, "hu": 4, "ahmad": 4, "beirami": 4, "ditto": [4, 68], "fair": 4, "robust": 4, "through": [4, 71], "marina": 4, "meila": 4, "38th": 4, "139": 4, "6357": 4, "6368": 4, "proximit\u00e9": 4, "dualit\u00e9": 4, "dan": 4, "un": 4, "espac": 4, "hilbertien": 4, "bulletin": 4, "de": 4, "la": 4, "soci\u00e9t\u00e9": 4, "math\u00e9matiqu": 4, "franc": 4, "79": 4, "273": 4, "299": 4, "1965": 4, "24033": 4, "bsmf": 4, "1625": 4, "foundat": 4, "trend": 4, "127": 4, "239": 4, "2014": 4, "1561": 4, "2400000003": 4, "rees": 4, "martin": 4, "fedsplit": [4, 68], "fast": [4, 49, 52], "h": [4, 7, 21, 38, 39, 40, 41], "larochel": 4, "ranzato": 4, "hadsel": 4, "balcan": 4, "lin": 4, "33": 4, "7057": 4, "7066": 4, "quoc": 4, "nhan": 4, "pham": 4, "dzung": 4, "phan": 4, "lam": 4, "nguyen": 4, "feddr": [4, 14, 68], "random": [4, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 53, 67], "dougla": 4, "rachford": 4, "composit": 4, "beygelzim": 4, "dauphin": 4, "liang": 4, "wortman": 4, "vaughan": 4, "durmu": 4, "alp": 4, "emr": 4, "yue": 4, "zhao": 4, "ramon": 4, "mata": 4, "matthew": 4, "mattina": 4, "paul": 4, "whatmough": 4, "venkatesh": 4, "saligrama": 4, "dynam": [4, 7, 67], "canh": 4, "tuan": 4, "dung": 4, "34th": 4, "yinchuan": 4, "xiaofeng": 4, "xu": 4, "yunfeng": 4, "shao": 4, "qing": 4, "yanhui": 4, "geng": 4, "maxim": 4, "correl": 4, "spars": 4, "hierarch": 4, "extens": 4, "2107": 4, "05330": 4, "modul": [6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 33, 35, 38, 39, 40, 41, 44, 45, 47, 49, 51, 52, 63, 65, 66, 67, 70], "feder": [6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 38, 41, 51, 52, 54, 65, 68, 70], "class": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 67, 68], "fl_sim": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 70], "data_process": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 70], "n_class": [7, 11, 20, 21, 48], "int": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 67], "100": [7, 22, 39, 40, 51, 67, 68], "datadir": [7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 68], "path": [7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 51, 53, 67, 68], "str": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 36, 38, 39, 41, 49, 50, 51, 52, 53, 54, 55, 61, 62, 67], "none": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 33, 36, 38, 41, 47, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 67, 68], "transform": [7, 8, 10, 12, 14, 15, 17, 18, 21, 22, 68], "callabl": [7, 8, 10, 12, 14, 15, 17, 18, 21, 22, 38, 41, 67], "seed": [7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 53, 67, 68], "extra_config": [7, 8, 10, 12, 13, 14, 15, 16, 19, 20, 21, 22, 52], "sourc": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 67], "fedvisiondataset": [7, 10, 12, 14, 15, 17, 18, 22], "cifar10": [7, 17], "dataset": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 39, 40, 49, 52, 67, 68], "load": [7, 19, 67], "tensorflow": [7, 10, 19], "tff": [7, 10, 19], "cifar100": 7, "load_data": [7, 19], "api": [7, 19], "save": [7, 10, 12, 14, 15, 16, 17, 18, 19, 22, 67, 72], "h5py": 7, "file": [7, 16, 19, 50, 51, 67, 68, 72], "pre": [7, 39], "divid": 7, "500": [7, 22], "train": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 39, 49, 50, 51, 52, 53, 64, 67], "50": [7, 22, 40], "000": [7, 18], "total": 7, "test": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 67], "imag": [7, 10, 12, 14, 15, 17, 18, 21, 22, 34, 36, 42, 43, 71], "channel": [7, 21], "last": 7, "format": [7, 67, 68, 72], "w": [7, 21, 56, 57, 58, 59, 60, 61], "NOT": 7, "pytorch": [7, 17, 18, 54, 67, 70], "singl": [7, 10, 12, 14, 15, 17, 18, 22, 26], "similarli": 7, "label": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 48, 49, 52], "coarse_label": 7, "access": [7, 49, 52, 54], "index": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 39, 52, 67, 70], "adopt": [7, 12], "modifi": [7, 10, 29, 30, 31, 32, 34, 38, 41], "fedml": [7, 10, 12, 19, 38, 41], "default": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 30, 31, 34, 36, 39, 40, 41, 42, 43, 46, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 67, 68], "pathlib": [7, 10, 12, 13, 14, 15, 17, 18, 19, 21, 22, 51, 53, 67], "directori": [7, 10, 12, 13, 14, 15, 16, 19, 21, 22, 53, 67, 68, 72], "built": [7, 16, 19, 54, 63, 71], "static": [7, 21, 51, 67, 68], "normal": [7, 10, 12, 14, 17, 18, 20, 68], "argument": [7, 50, 53, 67, 68], "visiondataset": 7, "augment": [7, 14, 17, 18, 68], "shuffl": 7, "dict": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 38, 41, 49, 50, 51, 52, 53, 54, 67], "configur": [7, 10, 12, 13, 14, 15, 16, 19, 20, 21, 22, 67, 68], "www": [7, 10, 19], "org": [7, 10, 12, 17, 18, 19, 20], "api_doc": [7, 10, 19], "python": [7, 10, 19, 67, 71], "simul": [7, 10, 12, 17, 18, 19, 49, 52, 64, 70, 72], "ai": [7, 10, 12, 19], "candidate_model": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 68], "candid": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "evalu": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 49, 50, 52, 53, 56, 57, 58, 59, 60, 61], "prob": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "tensor": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 33, 35, 37, 38, 39, 40, 41, 44, 45, 48, 49, 51, 52, 67], "truth": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "float": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 26, 33, 36, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 67], "ground": [7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "torch": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 33, 37, 38, 39, 40, 41, 47, 48, 49, 51, 52, 54, 56, 57, 58, 59, 60, 61, 65, 67], "probabl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 26], "return": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 33, 37, 38, 39, 40, 41, 48, 49, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 67], "type": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 30, 32, 33, 37, 38, 39, 40, 41, 48, 49, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 67], "extra_repr_kei": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 22, 49, 50, 52, 53, 61, 67], "__repr__": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 22, 49, 50, 52, 53, 61, 67], "__str__": [7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 22, 49, 50, 52, 53, 61, 67], "get_dataload": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "train_b": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "test_b": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "client_idx": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 52], "tupl": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 49, 52, 67], "dataload": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 51, 52], "batch": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 26, 50, 51, 68], "all": [7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 35, 44, 45, 49, 52, 53, 64, 67, 68], "train_dl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "util": [7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 51, 70], "test_dl": [7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "label_map": [7, 10, 12, 14, 15, 17, 18, 21, 22], "map": [7, 10, 11, 12, 14, 15, 17, 18, 21, 22, 26, 38, 41], "random_grid_view": [7, 10, 12, 14, 15, 17, 18, 22], "nrow": [7, 10, 12, 14, 15, 17, 18, 22], "ncol": [7, 10, 12, 14, 15, 17, 18, 22], "save_path": [7, 10, 12, 14, 15, 17, 18, 22], "randomli": [7, 10, 12, 14, 15, 17, 18, 22], "plot": [7, 10, 12, 14, 15, 17, 18, 22, 72], "them": [7, 10, 12, 14, 15, 17, 18, 22, 35, 44, 45, 72], "grid": [7, 10, 12, 14, 15, 17, 18, 22, 68], "row": [7, 10, 12, 14, 15, 17, 18, 22], "column": [7, 10, 12, 14, 15, 17, 18, 22], "union": [7, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 54, 67], "figur": [7, 10, 12, 14, 15, 17, 18, 22], "view_imag": [7, 10, 12, 14, 15, 17, 18, 22], "image_idx": [7, 10, 12, 14, 15, 17, 18, 22], "view": [7, 10, 12, 14, 15, 16, 17, 18, 19, 22, 52], "locat": [7, 10, 12, 14, 15, 16, 17, 18, 19, 22], "fedcifar": 8, "download": [8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22], "reprmixin": [9, 50, 51, 53, 61, 67], "citationmixin": [9, 52], "abc": [9, 13, 21, 51, 61, 67], "implement": [9, 13, 21, 67, 72], "subclass": [9, 13, 21, 35, 44, 45, 64], "_preload": [9, 13, 21], "load_partition_data": [9, 11, 13, 20, 21], "load_partition_data_distribut": [9, 11, 13, 20, 21], "abstract": [9, 13, 21, 49, 51, 52, 61, 67], "data_part": 9, "part": [9, 49, 51, 52, 67], "download_if_need": [9, 11, 18], "batch_siz": [9, 11, 13, 20, 21, 27, 28, 29, 30, 31, 32, 38, 39, 40, 41, 48, 50, 51, 68], "partit": [9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22], "process_id": [9, 11, 13, 20, 21], "emnist": [10, 14], "extend": 10, "mnist": [10, 12, 15, 18, 32], "upper": 10, "english": 10, "charact": [10, 19, 38], "62": [10, 14, 30, 31], "400": 10, "671": 10, "585": 10, "77": 10, "483": 10, "store": [10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 52], "convent": [10, 12, 14, 15, 21, 22], "mean": [10, 12, 14, 15, 21, 22, 67, 72], "tensordataset": [10, 12, 14, 15, 21, 22], "dataset_nam": 11, "num_client": [11, 17, 18, 20, 22, 53, 68], "bool": [11, 20, 25, 26, 42, 43, 49, 51, 52, 53, 55, 67], "true": [11, 25, 43, 53, 55, 67], "criterion_nam": 11, "svm": [11, 36], "feddataset": [11, 13, 20, 21, 49, 52], "criteria_map": 11, "criterion": [11, 49], "classmethod": [11, 67], "list_all_libsvm_dataset": 11, "datafram": 11, "libsvm": 11, "list_dataset": 11, "avail": [11, 53, 71], "train_clients_num": [11, 13, 20, 21], "train_data_num": [11, 13, 20, 21], "test_data_num": [11, 13, 20, 21], "train_data_glob": [11, 13, 20, 21], "test_data_glob": [11, 13, 20, 21], "data_local_num_dict": [11, 13, 20, 21], "train_data_local_dict": [11, 13, 20, 21], "test_data_local_dict": [11, 13, 20, 21], "local_data_num": [11, 13, 20, 21], "train_data_loc": [11, 13, 20, 21], "test_data_loc": [11, 13, 20, 21], "num_class": [11, 20, 27, 28, 29, 30, 31, 32, 35, 39, 40, 42, 43, 44, 46], "num_featur": [11, 35, 44, 45], "reset_se": [11, 20], "reset": [11, 20, 47, 67], "re": [11, 20], "classif": [12, 26, 35, 36, 42, 43], "handwritten": [12, 18], "digit": [12, 18], "among": 12, "1000": [12, 46], "devic": [12, 49, 53], "sampl": [12, 16, 19, 49, 52, 53], "per": 12, "power": 12, "law": 12, "maximum": [12, 19], "valu": [12, 18, 56, 57, 58, 59, 60, 61, 72], "raw": [12, 14, 15, 33, 51], "264": 12, "2510681152344": 12, "instabl": 12, "pdf": [12, 72], "1812": [12, 20], "06127": [12, 20], "mlsy": 12, "nlp": 13, "get_word_dict": [13, 19], "vocab_len": 13, "length": [13, 19, 67], "vocabulari": [13, 41], "subset": [14, 22], "femnist": [14, 30, 68], "subsampl": 14, "repartit": 14, "version": [14, 31, 46, 50, 53], "origin": [14, 17, 18, 22], "impos": 14, "instruct": [14, 70], "instead": [14, 35, 44, 45], "perhap": [14, 52], "inappropri": 14, "litian96": [14, 15, 16, 20, 39], "unc": 14, "manner": 15, "raw_data": 15, "ndarrai": [15, 21, 26, 37, 51, 67], "fednlpdataset": [16, 19], "sentiment140": 16, "tweet": 16, "neg": 16, "sentiment": [16, 39, 40], "preprocess": [16, 19], "json": [16, 51, 53, 67], "help": 16, "com": [16, 22, 67, 71], "view_sampl": [16, 19], "sample_idx": [16, 19], "num_rot": [17, 18], "200": [17, 22], "rotat": [17, 18], "360": [17, 18], "ghosh": [17, 18], "vision": [17, 18, 21], "_modul": [17, 18], "torchvis": [17, 18, 21, 43], "cifar": [17, 27, 28, 29], "html": [17, 18], "50k": 17, "10k": 17, "32x32": 17, "rgb": 17, "specifi": [17, 18, 25, 53, 55, 68, 72], "reproduc": [17, 18, 67], "avishek": [17, 18], "jichan": [17, 18], "chung": [17, 18], "dong": [17, 18], "kannan": [17, 18], "ramchandran": [17, 18], "cluster": [17, 18], "learn": [17, 18, 38, 41, 50, 65, 67, 68, 70], "68": [17, 18], "8076": [17, 18], "8091": [17, 18], "tit": [17, 18], "3192506": [17, 18], "2400": 18, "60": [18, 20], "28x28": 18, "grayscal": 18, "typic": 18, "1200": 18, "4800": 18, "mirror": 18, "site": 18, "shakespear": [19, 38], "william": 19, "unzip": 19, "hdf5": 19, "715": 19, "068": 19, "2356": 19, "speak": 19, "role": 19, "least": 19, "two": [19, 33, 64], "line": [19, 70], "char_to_id": [19, 38], "char": 19, "convert": [19, 67], "integ": 19, "word": [19, 41], "dictionari": 19, "id_to_word": [19, 41], "idx": 19, "sentenc": [19, 38, 39, 41], "sequenc": [19, 34, 36, 51, 52, 53, 67], "max_seq_len": 19, "token": 19, "beta": 20, "dimens": [20, 34, 36, 40], "synthet": 20, "whether": [20, 25, 26, 49, 51, 52, 53, 55, 67], "ab": 20, "empti": 20, "get_class": 21, "show_imag": 21, "np": [21, 51, 67], "shape": [21, 27, 28, 29, 30, 31, 38, 39, 40, 41, 48], "height": 21, "width": 21, "must": 21, "pil": 21, "tini": [22, 29, 31], "imagenet": 22, "consist": 22, "valid": [22, 49, 67], "downsampl": 22, "64x64": 22, "pixel": 22, "while": [22, 35, 44, 45], "hugingfac": 22, "treat": 22, "concentr": 22, "dirichlet": 22, "cs231n": 22, "stanford": 22, "edu": 22, "kaggl": 22, "competit": 22, "huggingfac": 22, "co": 22, "zh": 22, "plu": 22, "regist": [23, 24, 25, 35, 44, 45, 55], "overrid": [25, 55], "decor": [25, 55, 67], "mixin": [26, 33, 37], "classifi": [26, 44], "input": [26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 52, 67], "thr": 26, "class_map": 26, "fals": [26, 42, 43, 52], "numpi": [26, 37, 51, 67], "threshold": 26, "multi": [26, 34, 36, 72], "predict_proba": 26, "multi_label": 26, "proba": 26, "sequenti": [27, 28, 29, 30, 31, 32, 34, 36, 46], "clfmixin": [27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 46], "sizemixin": [27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46], "diffmixin": [27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46], "convolut": [27, 28, 29, 30, 32], "output": [27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 49], "smaller": 28, "than": 28, "cnncifar": 28, "py": [29, 30, 31, 32, 34, 39], "too": 29, "28": [30, 31, 32], "cnnfemnist": 31, "modela": 33, "nn": [33, 40, 41, 47, 49, 51, 52, 54, 56, 57, 58, 59, 60, 61, 67], "def": 33, "__init__": 33, "self": [33, 49, 51, 52], "out_dim": 33, "super": 33, "fc": [33, 72], "model_1": 33, "model_2": 33, "diff": 33, "norm": [33, 51, 56, 57, 58, 59], "anoth": 33, "linalg": [33, 51], "dim_in": [34, 36], "dim_hidden": [34, 36], "dim_out": [34, 36], "ndim": [34, 36], "perceptron": [34, 36], "hidden": [34, 36, 38, 39, 40, 41], "vector": [34, 36, 38, 40, 41, 44, 45], "logist": [35, 36], "regress": [35, 36, 37], "forward": [35, 38, 39, 40, 41, 44, 45], "everi": [35, 44, 45], "overridden": [35, 44, 45], "recip": [35, 44, 45], "pass": [35, 38, 39, 40, 41, 44, 45], "within": [35, 44, 45], "instanc": [35, 44, 45, 54, 62, 67], "afterward": [35, 44, 45], "former": [35, 44, 45], "care": [35, 44, 45], "run": [35, 44, 45, 52, 67, 68, 71, 72], "latter": [35, 44, 45], "silent": [35, 44, 45], "ignor": [35, 44, 45, 52, 67], "activ": 36, "relu": 36, "dropout": 36, "cross": 36, "entropi": 36, "crossentropyloss": 36, "bcewithlogitsloss": 36, "mse": 36, "hing": 36, "multimarginloss": 36, "multilabelmarginloss": 36, "rate": [36, 50, 67], "regressor": [37, 45], "target": [37, 49, 51], "embedding_dim": [38, 40], "vocab_s": [38, 41], "90": 38, "hidden_s": 38, "256": 38, "creat": [38, 41, 67, 72], "rnn": [38, 41], "lstm": [38, 39, 40, 41], "languag": 38, "replic": [38, 41], "recommend": [38, 52], "embed": [38, 39, 40, 41], "appear": [38, 41], "state": [38, 39, 40, 41], "input_seq": [38, 39, 41], "seq_len": [38, 39, 40, 41], "dtype": [38, 39, 41], "long": [38, 39, 41, 67], "float32": [38, 39, 41], "pipelin": [38, 39, 41], "truncated_sent": [38, 41], "id_to_char": 38, "given": [38, 41, 49, 52, 54, 56, 57, 58, 59, 60, 61, 67], "truncat": [38, 41], "latent_s": [39, 40, 41], "num_lay": [39, 40, 41], "glove": [39, 40], "6b": 39, "50d": 39, "stack": [39, 40], "sent140": [39, 40], "flearn": 39, "stacked_lstm": 39, "recurr": [39, 40, 41], "gloveembed": 39, "embed_dim": 40, "rnn_sent140": 40, "without": [40, 52], "embedd": 40, "emb": 40, "10000": 41, "num_oov_bucket": 41, "embedding_s": 41, "96": 41, "670": 41, "stackoverflow": [41, 67], "out": 41, "bucket": 41, "hidden_st": 41, "extended_vocab_s": 41, "word_to_id": 41, "pretrain": [42, 43], "resnet": [42, 43, 46], "Not": [42, 50, 53, 67], "compat": [42, 67], "support": [44, 45, 72], "regmixin": 45, "shrink": 46, "macro": 46, "custom": [46, 65], "children": 47, "pred": 48, "top": 48, "accuraci": 48, "d_1": 48, "d_n": 48, "client_id": [49, 51, 67], "config": [49, 50, 51, 52, 53, 54, 67, 68], "clientconfig": [49, 52], "respons": [49, 52], "either": 49, "val": [49, 51, 67], "metric": [49, 50, 51, 52, 67, 72], "get_all_data": 49, "helper": [49, 52], "includ": [49, 67], "is_converg": [49, 51, 52], "sample_data": 49, "solve_inn": 49, "solver": [49, 65], "basic": 49, "epoch_loss": 49, "epoch": [49, 50, 51, 67], "num_epoch": [49, 50, 51, 68], "batch_loss": 49, "batch_idx": 49, "enumer": 49, "train_load": [49, 51], "zero_grad": 49, "backward": 49, "append": [49, 51], "item": [49, 52], "len": 49, "lr_schedul": [49, 67], "algorithm": [50, 53, 67, 68, 70], "lr": [50, 54, 68], "schedul": [50, 67, 68], "extra_observ": [50, 53], "verbos": [50, 53, 67], "latenc": 50, "kwarg": [50, 53, 67], "attribut": [50, 52, 53, 54], "dure": [50, 53], "record": 50, "sent": 50, "written": 50, "log": [50, 51, 53, 67, 72], "level": [50, 53, 67], "current": [50, 51, 53, 67], "reserv": [50, 53], "futur": [50, 53], "aggregate_results_from_json_log": 51, "acc": [51, 67], "yaml": [51, 67, 68], "curv": [51, 72], "client0": [51, 67], "time": [51, 67], "01": [51, 67], "00": [51, 67], "top3_acc": [51, 67], "top5_acc": [51, 67], "num_sampl": [51, 67], "_received_messag": 51, "clientmessag": 51, "get_detached_model_paramet": 51, "train_sampl": 51, "num_step": 51, "_metric": 51, "compute_gradi": 51, "averag": [51, 52], "mini": 51, "detach": 51, "get_gradi": 51, "get_norm": 51, "fro": 51, "required_config_field": 51, "set_paramet": 51, "param": [51, 52, 54, 56, 57, 58, 59, 60, 61], "accord": 51, "_reveived_messag": 51, "serverconfig": 52, "client_config": 52, "lazi": 52, "want": 52, "verif": 52, "todo": 52, "_is_converg": 52, "termin": 52, "_cached_model": 52, "add_paramet": 52, "ratio": [52, 53], "ad": [52, 67], "aggregate_client_metr": 52, "transmit": 52, "avg_paramet": 52, "size_awar": 52, "receiv": 52, "awar": 52, "weight": 52, "client_cl": 52, "config_cl": 52, "evaluate_centr": 52, "get_cached_metr": 52, "cach": [52, 72], "get_client_data": 52, "get_client_model": 52, "mode": [52, 71], "insensit": 52, "train_centr": 52, "baselin": 52, "comparison": 52, "train_feder": 52, "train_loc": 52, "update_gradi": 52, "num_it": [53, 68], "clients_sample_ratio": [53, 68], "log_dir": [53, 67, 68], "txt_logger": [53, 67], "json_logg": [53, 67], "eval_everi": 53, "visiable_gpu": 53, "tag": [53, 72], "gpu_proport": 53, "outer": 53, "absolut": [53, 67], "txt": 53, "logger": 53, "visabl": 53, "gpu": 53, "alloc": 53, "experi": [53, 68, 72], "simil": 53, "optimizer_nam": 54, "attr": 54, "1e": 54, "yogi": 54, "pytorch_optim": 54, "fedpd_sgd": 54, "remov": 55, "coeff": [56, 57, 58, 59, 60, 61], "l1": 56, "coeffici": [56, 57, 58, 59, 60, 61, 62], "eval": [56, 57, 58, 59, 60, 61], "prox_ev": [56, 57, 58, 59, 60, 61], "mathrm": [56, 57, 58, 59, 60, 61], "lambda": [56, 57, 58, 59, 60, 61], "min_": [56, 57, 58, 59, 60, 61], "u": [56, 57, 58, 59, 60, 61], "rvert_2": [56, 57, 58, 59, 60, 61], "l2": [57, 58], "squar": 58, "null": [60, 68], "reg_typ": 62, "reg_coeff": 62, "act": 64, "coordin": 64, "statu": 64, "variabl": 64, "despit": 65, "torch_optim": 65, "lagrangian": 65, "variou": 67, "fl": [67, 68, 71, 72], "packag": 67, "baselogg": 67, "close": 67, "epoch_end": 67, "action": [67, 71], "epoch_start": 67, "filenam": 67, "flush": 67, "messag": 67, "buffer": 67, "from_config": 67, "log_messag": 67, "msg": 67, "20": 67, "debug": 67, "info": 67, "warn": 67, "error": [67, 72], "critic": 67, "log_metr": 67, "real": 67, "set_log_dir": 67, "jsonlogg": 67, "fmt": 67, "log_suffix": 67, "prefix": 67, "suffix": 67, "kept": 67, "strftime": 67, "datetim": 67, "strptime": 67, "loggermanag": 67, "manag": 67, "add": 67, "txtlogger": 67, "default_log_dir": 67, "long_sep": 67, "short_sep": 67, "short": 67, "load_module_from_fil": 67, "file_path": 67, "moduletyp": 67, "miscellan": 67, "add_kwarg": 67, "func": 67, "keyword": 67, "clear_log": 67, "pattern": 67, "clear": 67, "search": [67, 68, 70, 72], "execut": [67, 72], "rglob": 67, "join": 67, "compute_spars": 67, "model_or_tensor": 67, "sparsiti": 67, "default_dict_to_dict": 67, "defaultdict": 67, "experiment_ind": 67, "find_longest_common_substr": 67, "string": 67, "min_len": 67, "longest": 67, "common": 67, "substr": 67, "minimum": 67, "get_schedul": 67, "scheduler_nam": 67, "_lrschedul": 67, "get_scheduler_info": 67, "is_notebook": 67, "check": 67, "environ": [67, 72], "notebook": [67, 72], "jupyt": [67, 72], "colab": [67, 72], "code": [67, 71], "question": 67, "15411967": 67, "how": 67, "ipython": 67, "make_serializ": 67, "serializ": 67, "serial": 67, "obj": 67, "float64": 67, "ordered_dict_to_dict": 67, "ordereddict": 67, "set_se": 67, "disabl": 67, "cudnn": 67, "ensur": 67, "cli": 68, "found": 68, "alg": 68, "yml": 68, "strategi": 68, "matrix": 68, "fedavg": 68, "ifca": 68, "pfedmac": 68, "pfedm": 68, "03": 68, "num_clust": 68, "steplr": 68, "step_siz": 68, "99": 68, "fedproxfemnist": 68, "dir": 68, "cnn_femmist_tini": 68, "hyperparamet": 68, "ref": 68, "link": 70, "github": [70, 71], "gite": 70, "instal": [70, 72], "usag": [70, 71], "command": [70, 71, 72], "interfac": 70, "visual": 70, "subsystem": 70, "page": 70, "pip": 71, "git": 71, "wenh06": 71, "clone": 71, "repositori": 71, "docker": 71, "ci": 71, "pull": 71, "interact": [71, 72], "bash": 71, "script": 71, "offici": 71, "document": 71, "panel": 72, "widget": 72, "ipywidget": 72, "matplotlib": 72, "seaborn": 72, "lab": 72, "googl": 72, "amazon": 72, "sagemak": 72, "automat": 72, "complet": 72, "displai": 72, "box": 72, "decod": 72, "zoom": 72, "font": 72, "famili": 72, "adjust": 72, "svg": 72, "png": 72, "jpeg": 72, "merg": 72, "standard": 72, "deviat": 72, "std": 72, "sem": 72, "quantil": 72, "qtl": 72, "interquartil": 72, "iqr": 72, "gif": 72, "screentogif": 72, "demo": 72, "window": 72, "linux": 72, "ubuntu": 72, "sudo": 72, "ttf": 72, "mscorefont": 72, "fv": 72}, "objects": {"fl_sim": [[6, 0, 0, "-", "data_processing"], [63, 0, 0, "-", "models"], [64, 0, 0, "-", "nodes"], [65, 0, 0, "-", "optimizers"], [66, 0, 0, "-", "regularizers"], [67, 0, 0, "-", "utils"]], "fl_sim.data_processing": [[7, 1, 1, "", "FedCIFAR"], [8, 1, 1, "", "FedCIFAR100"], [9, 1, 1, "", "FedDataset"], [10, 1, 1, "", "FedEMNIST"], [11, 1, 1, "", "FedLibSVMDataset"], [12, 1, 1, "", "FedMNIST"], [13, 1, 1, "", "FedNLPDataset"], [14, 1, 1, "", "FedProxFEMNIST"], [15, 1, 1, "", "FedProxMNIST"], [16, 1, 1, "", "FedProxSent140"], [17, 1, 1, "", "FedRotatedCIFAR10"], [18, 1, 1, "", "FedRotatedMNIST"], [19, 1, 1, "", "FedShakespeare"], [20, 1, 1, "", "FedSynthetic"], [21, 1, 1, "", "FedVisionDataset"], [22, 1, 1, "", "TinyImageNet"], [23, 4, 1, "", "get_fed_dataset"], [24, 4, 1, "", "list_fed_dataset"], [25, 4, 1, "", "register_fed_dataset"]], "fl_sim.data_processing.FedCIFAR": [[7, 2, 1, "", "candidate_models"], [7, 2, 1, "", "doi"], [7, 3, 1, "", "evaluate"], [7, 3, 1, "", "extra_repr_keys"], [7, 3, 1, "", "get_dataloader"], [7, 2, 1, "", "label_map"], [7, 3, 1, "", "random_grid_view"], [7, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedCIFAR100": [[8, 2, 1, "", "url"]], "fl_sim.data_processing.FedDataset": [[9, 2, 1, "", "candidate_models"], [9, 2, 1, "", "data_parts"], [9, 2, 1, "", "doi"], [9, 3, 1, "", "download_if_needed"], [9, 3, 1, "", "evaluate"], [9, 3, 1, "", "extra_repr_keys"], [9, 3, 1, "", "get_dataloader"], [9, 3, 1, "", "load_partition_data"], [9, 3, 1, "", "load_partition_data_distributed"], [9, 2, 1, "", "url"]], "fl_sim.data_processing.FedEMNIST": [[10, 2, 1, "", "candidate_models"], [10, 2, 1, "", "doi"], [10, 3, 1, "", "evaluate"], [10, 3, 1, "", "extra_repr_keys"], [10, 3, 1, "", "get_dataloader"], [10, 2, 1, "", "label_map"], [10, 3, 1, "", "random_grid_view"], [10, 2, 1, "", "url"], [10, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedLibSVMDataset": [[11, 2, 1, "", "candidate_models"], [11, 2, 1, "", "criteria_mapping"], [11, 2, 1, "", "doi"], [11, 3, 1, "", "download_if_needed"], [11, 3, 1, "", "evaluate"], [11, 3, 1, "", "extra_repr_keys"], [11, 3, 1, "", "get_dataloader"], [11, 3, 1, "", "list_all_libsvm_datasets"], [11, 3, 1, "", "list_datasets"], [11, 3, 1, "", "load_partition_data"], [11, 3, 1, "", "load_partition_data_distributed"], [11, 2, 1, "", "num_classes"], [11, 2, 1, "", "num_features"], [11, 3, 1, "", "reset_seed"], [11, 2, 1, "", "url"]], "fl_sim.data_processing.FedMNIST": [[12, 2, 1, "", "candidate_models"], [12, 2, 1, "", "doi"], [12, 3, 1, "", "evaluate"], [12, 3, 1, "", "extra_repr_keys"], [12, 3, 1, "", "get_dataloader"], [12, 2, 1, "", "label_map"], [12, 3, 1, "", "random_grid_view"], [12, 2, 1, "", "url"], [12, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedNLPDataset": [[13, 3, 1, "", "get_dataloader"], [13, 3, 1, "", "load_partition_data"], [13, 3, 1, "", "load_partition_data_distributed"]], "fl_sim.data_processing.FedProxFEMNIST": [[14, 2, 1, "", "candidate_models"], [14, 2, 1, "", "doi"], [14, 3, 1, "", "evaluate"], [14, 3, 1, "", "extra_repr_keys"], [14, 3, 1, "", "get_dataloader"], [14, 2, 1, "", "label_map"], [14, 3, 1, "", "random_grid_view"], [14, 2, 1, "", "url"], [14, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedProxMNIST": [[15, 2, 1, "", "candidate_models"], [15, 2, 1, "", "doi"], [15, 3, 1, "", "evaluate"], [15, 3, 1, "", "extra_repr_keys"], [15, 3, 1, "", "get_dataloader"], [15, 2, 1, "", "label_map"], [15, 3, 1, "", "random_grid_view"], [15, 2, 1, "", "raw_data"], [15, 2, 1, "", "url"], [15, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedProxSent140": [[16, 2, 1, "", "candidate_models"], [16, 2, 1, "", "doi"], [16, 3, 1, "", "evaluate"], [16, 3, 1, "", "get_dataloader"], [16, 2, 1, "", "url"], [16, 3, 1, "", "view_sample"]], "fl_sim.data_processing.FedRotatedCIFAR10": [[17, 2, 1, "", "candidate_models"], [17, 2, 1, "", "doi"], [17, 3, 1, "", "evaluate"], [17, 3, 1, "", "extra_repr_keys"], [17, 3, 1, "", "get_dataloader"], [17, 2, 1, "", "label_map"], [17, 3, 1, "", "random_grid_view"], [17, 2, 1, "", "url"], [17, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedRotatedMNIST": [[18, 2, 1, "", "candidate_models"], [18, 2, 1, "", "doi"], [18, 3, 1, "", "download_if_needed"], [18, 3, 1, "", "evaluate"], [18, 3, 1, "", "extra_repr_keys"], [18, 3, 1, "", "get_dataloader"], [18, 2, 1, "", "label_map"], [18, 2, 1, "", "mirror"], [18, 3, 1, "", "random_grid_view"], [18, 2, 1, "", "url"], [18, 3, 1, "", "view_image"]], "fl_sim.data_processing.FedShakespeare": [[19, 2, 1, "", "candidate_models"], [19, 3, 1, "", "char_to_id"], [19, 2, 1, "", "doi"], [19, 3, 1, "", "evaluate"], [19, 3, 1, "", "get_dataloader"], [19, 3, 1, "", "get_word_dict"], [19, 3, 1, "", "id_to_word"], [19, 3, 1, "", "preprocess"], [19, 2, 1, "", "url"], [19, 3, 1, "", "view_sample"], [19, 2, 1, "", "words"]], "fl_sim.data_processing.FedSynthetic": [[20, 2, 1, "", "candidate_models"], [20, 2, 1, "", "doi"], [20, 3, 1, "", "evaluate"], [20, 3, 1, "", "extra_repr_keys"], [20, 3, 1, "", "get_dataloader"], [20, 3, 1, "", "load_partition_data"], [20, 3, 1, "", "load_partition_data_distributed"], [20, 3, 1, "", "reset_seed"], [20, 2, 1, "", "url"]], "fl_sim.data_processing.FedVisionDataset": [[21, 3, 1, "", "get_class"], [21, 3, 1, "", "get_classes"], [21, 3, 1, "", "get_dataloader"], [21, 2, 1, "", "label_map"], [21, 3, 1, "", "load_partition_data"], [21, 3, 1, "", "load_partition_data_distributed"], [21, 2, 1, "", "n_class"], [21, 3, 1, "", "show_image"]], "fl_sim.data_processing.TinyImageNet": [[22, 2, 1, "", "candidate_models"], [22, 2, 1, "", "doi"], [22, 3, 1, "", "evaluate"], [22, 3, 1, "", "extra_repr_keys"], [22, 3, 1, "", "get_dataloader"], [22, 2, 1, "", "label_map"], [22, 3, 1, "", "random_grid_view"], [22, 2, 1, "", "url"], [22, 3, 1, "", "view_image"]], "fl_sim.models": [[26, 1, 1, "", "CLFMixin"], [27, 1, 1, "", "CNNCifar"], [28, 1, 1, "", "CNNCifar_Small"], [29, 1, 1, "", "CNNCifar_Tiny"], [30, 1, 1, "", "CNNFEMnist"], [31, 1, 1, "", "CNNFEMnist_Tiny"], [32, 1, 1, "", "CNNMnist"], [33, 1, 1, "", "DiffMixin"], [34, 1, 1, "", "FedPDMLP"], [35, 1, 1, "", "LogisticRegression"], [36, 1, 1, "", "MLP"], [37, 1, 1, "", "REGMixin"], [38, 1, 1, "", "RNN_OriginalFedAvg"], [39, 1, 1, "", "RNN_Sent140"], [40, 1, 1, "", "RNN_Sent140_LITE"], [41, 1, 1, "", "RNN_StackOverFlow"], [42, 1, 1, "", "ResNet10"], [43, 1, 1, "", "ResNet18"], [44, 1, 1, "", "SVC"], [45, 1, 1, "", "SVR"], [46, 1, 1, "", "ShrinkedResNet"], [47, 4, 1, "", "reset_parameters"], [48, 4, 1, "", "top_n_accuracy"]], "fl_sim.models.CLFMixin": [[26, 3, 1, "", "predict"], [26, 3, 1, "", "predict_proba"]], "fl_sim.models.DiffMixin": [[33, 3, 1, "", "diff"]], "fl_sim.models.LogisticRegression": [[35, 3, 1, "", "forward"]], "fl_sim.models.REGMixin": [[37, 3, 1, "", "predict"]], "fl_sim.models.RNN_OriginalFedAvg": [[38, 3, 1, "", "forward"], [38, 3, 1, "", "pipeline"]], "fl_sim.models.RNN_Sent140": [[39, 3, 1, "", "forward"], [39, 3, 1, "", "pipeline"]], "fl_sim.models.RNN_Sent140_LITE": [[40, 3, 1, "", "forward"]], "fl_sim.models.RNN_StackOverFlow": [[41, 3, 1, "", "forward"], [41, 3, 1, "", "pipeline"]], "fl_sim.models.SVC": [[44, 3, 1, "", "forward"]], "fl_sim.models.SVR": [[45, 3, 1, "", "forward"]], "fl_sim.nodes": [[49, 1, 1, "", "Client"], [50, 1, 1, "", "ClientConfig"], [51, 1, 1, "", "Node"], [52, 1, 1, "", "Server"], [53, 1, 1, "", "ServerConfig"]], "fl_sim.nodes.Client": [[49, 3, 1, "", "evaluate"], [49, 3, 1, "", "extra_repr_keys"], [49, 3, 1, "", "get_all_data"], [49, 2, 1, "", "is_convergent"], [49, 3, 1, "", "sample_data"], [49, 3, 1, "", "solve_inner"], [49, 3, 1, "", "train"]], "fl_sim.nodes.ClientConfig": [[50, 3, 1, "", "extra_repr_keys"]], "fl_sim.nodes.Node": [[51, 3, 1, "", "aggregate_results_from_json_log"], [51, 3, 1, "", "communicate"], [51, 3, 1, "", "compute_gradients"], [51, 3, 1, "", "get_detached_model_parameters"], [51, 3, 1, "", "get_gradients"], [51, 3, 1, "", "get_norm"], [51, 2, 1, "", "is_convergent"], [51, 2, 1, "", "required_config_fields"], [51, 3, 1, "", "set_parameters"], [51, 3, 1, "", "update"]], "fl_sim.nodes.Server": [[52, 3, 1, "", "add_parameters"], [52, 3, 1, "", "aggregate_client_metrics"], [52, 3, 1, "", "avg_parameters"], [52, 2, 1, "", "client_cls"], [52, 2, 1, "", "config_cls"], [52, 3, 1, "", "evaluate_centralized"], [52, 3, 1, "", "extra_repr_keys"], [52, 3, 1, "", "get_cached_metrics"], [52, 3, 1, "", "get_client_data"], [52, 3, 1, "", "get_client_model"], [52, 2, 1, "", "is_convergent"], [52, 3, 1, "", "train"], [52, 3, 1, "", "train_centralized"], [52, 3, 1, "", "train_federated"], [52, 3, 1, "", "train_local"], [52, 3, 1, "", "update_gradients"]], "fl_sim.nodes.ServerConfig": [[53, 3, 1, "", "extra_repr_keys"]], "fl_sim.optimizers": [[54, 4, 1, "", "get_optimizer"], [55, 4, 1, "", "register_optimizer"]], "fl_sim.regularizers": [[56, 1, 1, "", "L1Norm"], [57, 1, 1, "", "L2Norm"], [58, 1, 1, "", "L2NormSquared"], [59, 1, 1, "", "LInfNorm"], [60, 1, 1, "", "NullRegularizer"], [61, 1, 1, "", "Regularizer"], [62, 4, 1, "", "get_regularizer"]], "fl_sim.regularizers.L1Norm": [[56, 3, 1, "", "eval"], [56, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.L2Norm": [[57, 3, 1, "", "eval"], [57, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.L2NormSquared": [[58, 3, 1, "", "eval"], [58, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.LInfNorm": [[59, 3, 1, "", "eval"], [59, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.NullRegularizer": [[60, 3, 1, "", "eval"], [60, 3, 1, "", "prox_eval"]], "fl_sim.regularizers.Regularizer": [[61, 3, 1, "", "eval"], [61, 3, 1, "", "extra_repr_keys"], [61, 3, 1, "", "prox_eval"]], "fl_sim.utils": [[67, 0, 0, "-", "imports"], [67, 0, 0, "-", "loggers"], [67, 0, 0, "-", "misc"]], "fl_sim.utils.imports": [[67, 4, 1, "", "load_module_from_file"]], "fl_sim.utils.loggers": [[67, 1, 1, "", "BaseLogger"], [67, 1, 1, "", "JsonLogger"], [67, 1, 1, "", "LoggerManager"], [67, 1, 1, "", "TxtLogger"]], "fl_sim.utils.loggers.BaseLogger": [[67, 3, 1, "", "close"], [67, 3, 1, "", "epoch_end"], [67, 3, 1, "", "epoch_start"], [67, 3, 1, "", "extra_repr_keys"], [67, 2, 1, "", "filename"], [67, 3, 1, "", "flush"], [67, 3, 1, "", "from_config"], [67, 2, 1, "", "log_dir"], [67, 3, 1, "", "log_message"], [67, 3, 1, "", "log_metrics"], [67, 3, 1, "", "reset"], [67, 3, 1, "", "set_log_dir"]], "fl_sim.utils.loggers.JsonLogger": [[67, 3, 1, "", "close"], [67, 2, 1, "", "filename"], [67, 3, 1, "", "flush"], [67, 3, 1, "", "from_config"], [67, 3, 1, "", "log_message"], [67, 3, 1, "", "log_metrics"], [67, 3, 1, "", "reset"], [67, 3, 1, "", "strftime"], [67, 3, 1, "", "strptime"]], "fl_sim.utils.loggers.LoggerManager": [[67, 3, 1, "", "close"], [67, 3, 1, "", "epoch_end"], [67, 3, 1, "", "epoch_start"], [67, 3, 1, "", "extra_repr_keys"], [67, 3, 1, "", "flush"], [67, 3, 1, "", "from_config"], [67, 2, 1, "", "log_dir"], [67, 3, 1, "", "log_message"], [67, 3, 1, "", "log_metrics"], [67, 2, 1, "", "log_suffix"], [67, 2, 1, "", "loggers"], [67, 3, 1, "", "reset"]], "fl_sim.utils.loggers.TxtLogger": [[67, 3, 1, "", "close"], [67, 3, 1, "", "epoch_end"], [67, 3, 1, "", "epoch_start"], [67, 2, 1, "", "filename"], [67, 3, 1, "", "flush"], [67, 3, 1, "", "from_config"], [67, 3, 1, "", "log_message"], [67, 3, 1, "", "log_metrics"], [67, 2, 1, "", "long_sep"], [67, 3, 1, "", "reset"], [67, 2, 1, "", "short_sep"]], "fl_sim.utils.misc": [[67, 4, 1, "", "add_kwargs"], [67, 4, 1, "", "clear_logs"], [67, 4, 1, "", "compute_sparsity"], [67, 4, 1, "", "default_dict_to_dict"], [67, 4, 1, "", "experiment_indicator"], [67, 4, 1, "", "find_longest_common_substring"], [67, 4, 1, "", "get_scheduler"], [67, 4, 1, "", "get_scheduler_info"], [67, 4, 1, "", "is_notebook"], [67, 4, 1, "", "make_serializable"], [67, 4, 1, "", "ordered_dict_to_dict"], [67, 4, 1, "", "set_seed"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"feder": [0, 1, 2, 3, 4, 5], "learn": [0, 1, 2, 3, 4, 5], "algorithm": [0, 1, 2, 3, 4, 5], "section": 0, "oper": 1, "split": 1, "overview": 2, "optim": [2, 54, 55, 65], "averag": 2, "fedavg": 2, "from": 2, "perspect": 2, "A": 2, "direct": 2, "improv": 2, "primal": 3, "dual": 3, "proxim": 4, "skip": 5, "fl_sim": [6, 23, 24, 25, 47, 48, 54, 55, 62, 63, 64, 65, 66, 67], "data_process": [6, 23, 24, 25], "base": [6, 64], "class": [6, 64], "vision": 6, "dataset": 6, "nlp": 6, "synthet": 6, "libsvm": 6, "registri": 6, "util": [6, 63, 67], "fedcifar": 7, "fedcifar100": 8, "feddataset": 9, "fedemnist": 10, "fedlibsvmdataset": 11, "fedmnist": 12, "fednlpdataset": 13, "fedproxfemnist": 14, "fedproxmnist": 15, "fedproxsent140": 16, "fedrotatedcifar10": 17, "fedrotatedmnist": 18, "fedshakespear": 19, "fedsynthet": 20, "fedvisiondataset": 21, "tinyimagenet": 22, "get_fed_dataset": 23, "list_fed_dataset": 24, "register_fed_dataset": 25, "clfmixin": 26, "cnncifar": 27, "cnncifar_smal": 28, "cnncifar_tini": 29, "cnnfemnist": 30, "cnnfemnist_tini": 31, "cnnmnist": 32, "diffmixin": 33, "fedpdmlp": 34, "logisticregress": 35, "mlp": [36, 63], "regmixin": 37, "rnn_originalfedavg": 38, "rnn_sent140": 39, "rnn_sent140_lit": 40, "rnn_stackoverflow": 41, "resnet10": 42, "resnet18": 43, "svc": 44, "svr": 45, "shrinkedresnet": 46, "model": [47, 48, 63], "reset_paramet": 47, "top_n_accuraci": 48, "client": [49, 64], "clientconfig": 50, "node": [51, 64], "server": [52, 64], "serverconfig": 53, "get_optim": 54, "register_optim": 55, "l1norm": 56, "l2norm": 57, "l2normsquar": 58, "linfnorm": 59, "nullregular": 60, "regular": [61, 62, 66], "get_regular": 62, "convolut": 63, "neural": 63, "network": 63, "cnn": 63, "recurr": 63, "rnn": 63, "multilay": 63, "perceptron": 63, "linear": 63, "logger": 67, "import": 67, "misc": 67, "command": 68, "line": 68, "interfac": 68, "usag": 69, "exampl": 69, "welcom": 70, "fl": 70, "sim": 70, "": 70, "document": 70, "get": 70, "start": 70, "api": 70, "refer": 70, "advanc": 70, "topic": 70, "indic": 70, "tabl": 70, "instal": 71, "instruct": 71, "visual": 72, "subsystem": 72}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.intersphinx": 1, "nbsphinx": 4, "sphinxcontrib.bibtex": 9, "sphinx": 57}, "alltitles": {"Federated learning algorithms": [[0, "federated-learning-algorithms"]], "Sections:": [[0, null]], "Operator Splitting Algorithms in Federated Learning": [[1, "operator-splitting-algorithms-in-federated-learning"]], "Overview of Optimization Algorithms in Federated Learning": [[2, "overview-of-optimization-algorithms-in-federated-learning"]], "Federated Averaging Algorithm": [[2, "federated-averaging-algorithm"]], "FedAvg from the Perspective of Optimization": [[2, "fedavg-from-the-perspective-of-optimization"]], "A Direct Improvement of FedAvg": [[2, "a-direct-improvement-of-fedavg"]], "Primal-Dual Algorithms in Federated Learning": [[3, "primal-dual-algorithms-in-federated-learning"]], "Proximal Algorithms in Federated Learning": [[4, "proximal-algorithms-in-federated-learning"]], "Skipping Algorithms in Federated Learning": [[5, "skipping-algorithms-in-federated-learning"]], "fl_sim.data_processing": [[6, "fl-sim-data-processing"]], "Base classes": [[6, "base-classes"]], "Vision datasets": [[6, "vision-datasets"]], "NLP datasets": [[6, "nlp-datasets"]], "Synthetic datasets": [[6, "synthetic-datasets"]], "LibSVM datasets": [[6, "libsvm-datasets"]], "Dataset registry utilities": [[6, "dataset-registry-utilities"]], "FedCIFAR": [[7, "fedcifar"]], "FedCIFAR100": [[8, "fedcifar100"]], "FedDataset": [[9, "feddataset"]], "FedEMNIST": [[10, "fedemnist"]], "FedLibSVMDataset": [[11, "fedlibsvmdataset"]], "FedMNIST": [[12, "fedmnist"]], "FedNLPDataset": [[13, "fednlpdataset"]], "FedProxFEMNIST": [[14, "fedproxfemnist"]], "FedProxMNIST": [[15, "fedproxmnist"]], "FedProxSent140": [[16, "fedproxsent140"]], "FedRotatedCIFAR10": [[17, "fedrotatedcifar10"]], "FedRotatedMNIST": [[18, "fedrotatedmnist"]], "FedShakespeare": [[19, "fedshakespeare"]], "FedSynthetic": [[20, "fedsynthetic"]], "FedVisionDataset": [[21, "fedvisiondataset"]], "TinyImageNet": [[22, "tinyimagenet"]], "fl_sim.data_processing.get_fed_dataset": [[23, "fl-sim-data-processing-get-fed-dataset"]], "fl_sim.data_processing.list_fed_dataset": [[24, "fl-sim-data-processing-list-fed-dataset"]], "fl_sim.data_processing.register_fed_dataset": [[25, "fl-sim-data-processing-register-fed-dataset"]], "CLFMixin": [[26, "clfmixin"]], "CNNCifar": [[27, "cnncifar"]], "CNNCifar_Small": [[28, "cnncifar-small"]], "CNNCifar_Tiny": [[29, "cnncifar-tiny"]], "CNNFEMnist": [[30, "cnnfemnist"]], "CNNFEMnist_Tiny": [[31, "cnnfemnist-tiny"]], "CNNMnist": [[32, "cnnmnist"]], "DiffMixin": [[33, "diffmixin"]], "FedPDMLP": [[34, "fedpdmlp"]], "LogisticRegression": [[35, "logisticregression"]], "MLP": [[36, "mlp"]], "REGMixin": [[37, "regmixin"]], "RNN_OriginalFedAvg": [[38, "rnn-originalfedavg"]], "RNN_Sent140": [[39, "rnn-sent140"]], "RNN_Sent140_LITE": [[40, "rnn-sent140-lite"]], "RNN_StackOverFlow": [[41, "rnn-stackoverflow"]], "ResNet10": [[42, "resnet10"]], "ResNet18": [[43, "resnet18"]], "SVC": [[44, "svc"]], "SVR": [[45, "svr"]], "ShrinkedResNet": [[46, "shrinkedresnet"]], "fl_sim.models.reset_parameters": [[47, "fl-sim-models-reset-parameters"]], "fl_sim.models.top_n_accuracy": [[48, "fl-sim-models-top-n-accuracy"]], "Client": [[49, "client"]], "ClientConfig": [[50, "clientconfig"]], "Node": [[51, "node"]], "Server": [[52, "server"]], "ServerConfig": [[53, "serverconfig"]], "fl_sim.optimizers.get_optimizer": [[54, "fl-sim-optimizers-get-optimizer"]], "fl_sim.optimizers.register_optimizer": [[55, "fl-sim-optimizers-register-optimizer"]], "L1Norm": [[56, "l1norm"]], "L2Norm": [[57, "l2norm"]], "L2NormSquared": [[58, "l2normsquared"]], "LInfNorm": [[59, "linfnorm"]], "NullRegularizer": [[60, "nullregularizer"]], "Regularizer": [[61, "regularizer"]], "fl_sim.regularizers.get_regularizer": [[62, "fl-sim-regularizers-get-regularizer"]], "fl_sim.models": [[63, "fl-sim-models"]], "Convolutional neural networks (CNN)": [[63, "convolutional-neural-networks-cnn"]], "Recurrent neural networks (RNN)": [[63, "recurrent-neural-networks-rnn"]], "Multilayer perceptron (MLP)": [[63, "multilayer-perceptron-mlp"]], "Linear models": [[63, "linear-models"]], "Utilities": [[63, "utilities"]], "fl_sim.nodes": [[64, "fl-sim-nodes"]], "Base Node class": [[64, "base-node-class"]], "Server classes": [[64, "server-classes"]], "Client classes": [[64, "client-classes"]], "fl_sim.optimizers": [[65, "fl-sim-optimizers"]], "fl_sim.regularizers": [[66, "fl-sim-regularizers"]], "fl_sim.utils": [[67, "fl-sim-utils"]], "fl_sim.utils.loggers": [[67, "fl-sim-utils-loggers"]], "fl_sim.utils.imports": [[67, "fl-sim-utils-imports"]], "fl_sim.utils.misc": [[67, "fl-sim-utils-misc"]], "Command line interface": [[68, "command-line-interface"]], "Usage examples": [[69, "usage-examples"]], "Welcome to fl-sim\u2019s documentation!": [[70, "welcome-to-fl-sim-s-documentation"]], "Getting started": [[70, null]], "API Reference": [[70, null]], "Advanced Topics": [[70, null]], "Indices and tables": [[70, "indices-and-tables"]], "Installation instructions": [[71, "installation-instructions"]], "Visualization subsystem": [[72, "visualization-subsystem"]]}, "indexentries": {"fl_sim.data_processing": [[6, "module-fl_sim.data_processing"]], "module": [[6, "module-fl_sim.data_processing"], [63, "module-fl_sim.models"], [64, "module-fl_sim.nodes"], [65, "module-fl_sim.optimizers"], [66, "module-fl_sim.regularizers"], [67, "module-fl_sim.utils"], [67, "module-fl_sim.utils.imports"], [67, "module-fl_sim.utils.loggers"], [67, "module-fl_sim.utils.misc"]], "fedcifar (class in fl_sim.data_processing)": [[7, "fl_sim.data_processing.FedCIFAR"]], "candidate_models (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.candidate_models"]], "doi (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.doi"]], "evaluate() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.get_dataloader"]], "label_map (fl_sim.data_processing.fedcifar property)": [[7, "fl_sim.data_processing.FedCIFAR.label_map"]], "random_grid_view() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.random_grid_view"]], "view_image() (fl_sim.data_processing.fedcifar method)": [[7, "fl_sim.data_processing.FedCIFAR.view_image"]], "fedcifar100 (class in fl_sim.data_processing)": [[8, "fl_sim.data_processing.FedCIFAR100"]], "url (fl_sim.data_processing.fedcifar100 property)": [[8, "fl_sim.data_processing.FedCIFAR100.url"]], "feddataset (class in fl_sim.data_processing)": [[9, "fl_sim.data_processing.FedDataset"]], "candidate_models (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.candidate_models"]], "data_parts (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.data_parts"]], "doi (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.doi"]], "download_if_needed() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.download_if_needed"]], "evaluate() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.feddataset method)": [[9, "fl_sim.data_processing.FedDataset.load_partition_data_distributed"]], "url (fl_sim.data_processing.feddataset property)": [[9, "fl_sim.data_processing.FedDataset.url"]], "fedemnist (class in fl_sim.data_processing)": [[10, "fl_sim.data_processing.FedEMNIST"]], "candidate_models (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedemnist property)": [[10, "fl_sim.data_processing.FedEMNIST.url"]], "view_image() (fl_sim.data_processing.fedemnist method)": [[10, "fl_sim.data_processing.FedEMNIST.view_image"]], "fedlibsvmdataset (class in fl_sim.data_processing)": [[11, "fl_sim.data_processing.FedLibSVMDataset"]], "candidate_models (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.candidate_models"]], "criteria_mapping (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.criteria_mapping"]], "doi (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.doi"]], "download_if_needed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.download_if_needed"]], "evaluate() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.get_dataloader"]], "list_all_libsvm_datasets() (fl_sim.data_processing.fedlibsvmdataset class method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.list_all_libsvm_datasets"]], "list_datasets() (fl_sim.data_processing.fedlibsvmdataset class method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.list_datasets"]], "load_partition_data() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.load_partition_data_distributed"]], "num_classes (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.num_classes"]], "num_features (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.num_features"]], "reset_seed() (fl_sim.data_processing.fedlibsvmdataset method)": [[11, "fl_sim.data_processing.FedLibSVMDataset.reset_seed"]], "url (fl_sim.data_processing.fedlibsvmdataset property)": [[11, "fl_sim.data_processing.FedLibSVMDataset.url"]], "fedmnist (class in fl_sim.data_processing)": [[12, "fl_sim.data_processing.FedMNIST"]], "candidate_models (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedmnist property)": [[12, "fl_sim.data_processing.FedMNIST.url"]], "view_image() (fl_sim.data_processing.fedmnist method)": [[12, "fl_sim.data_processing.FedMNIST.view_image"]], "fednlpdataset (class in fl_sim.data_processing)": [[13, "fl_sim.data_processing.FedNLPDataset"]], "get_dataloader() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fednlpdataset method)": [[13, "fl_sim.data_processing.FedNLPDataset.load_partition_data_distributed"]], "fedproxfemnist (class in fl_sim.data_processing)": [[14, "fl_sim.data_processing.FedProxFEMNIST"]], "candidate_models (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedproxfemnist property)": [[14, "fl_sim.data_processing.FedProxFEMNIST.url"]], "view_image() (fl_sim.data_processing.fedproxfemnist method)": [[14, "fl_sim.data_processing.FedProxFEMNIST.view_image"]], "fedproxmnist (class in fl_sim.data_processing)": [[15, "fl_sim.data_processing.FedProxMNIST"]], "candidate_models (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.doi"]], "evaluate() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.label_map"]], "random_grid_view() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.random_grid_view"]], "raw_data (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.raw_data"]], "url (fl_sim.data_processing.fedproxmnist property)": [[15, "fl_sim.data_processing.FedProxMNIST.url"]], "view_image() (fl_sim.data_processing.fedproxmnist method)": [[15, "fl_sim.data_processing.FedProxMNIST.view_image"]], "fedproxsent140 (class in fl_sim.data_processing)": [[16, "fl_sim.data_processing.FedProxSent140"]], "candidate_models (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.candidate_models"]], "doi (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.doi"]], "evaluate() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.evaluate"]], "get_dataloader() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.get_dataloader"]], "url (fl_sim.data_processing.fedproxsent140 property)": [[16, "fl_sim.data_processing.FedProxSent140.url"]], "view_sample() (fl_sim.data_processing.fedproxsent140 method)": [[16, "fl_sim.data_processing.FedProxSent140.view_sample"]], "fedrotatedcifar10 (class in fl_sim.data_processing)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10"]], "candidate_models (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.candidate_models"]], "doi (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.doi"]], "evaluate() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.get_dataloader"]], "label_map (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.label_map"]], "random_grid_view() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.random_grid_view"]], "url (fl_sim.data_processing.fedrotatedcifar10 property)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.url"]], "view_image() (fl_sim.data_processing.fedrotatedcifar10 method)": [[17, "fl_sim.data_processing.FedRotatedCIFAR10.view_image"]], "fedrotatedmnist (class in fl_sim.data_processing)": [[18, "fl_sim.data_processing.FedRotatedMNIST"]], "candidate_models (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.candidate_models"]], "doi (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.doi"]], "download_if_needed() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.download_if_needed"]], "evaluate() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.get_dataloader"]], "label_map (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.label_map"]], "mirror (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.mirror"]], "random_grid_view() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.random_grid_view"]], "url (fl_sim.data_processing.fedrotatedmnist property)": [[18, "fl_sim.data_processing.FedRotatedMNIST.url"]], "view_image() (fl_sim.data_processing.fedrotatedmnist method)": [[18, "fl_sim.data_processing.FedRotatedMNIST.view_image"]], "fedshakespeare (class in fl_sim.data_processing)": [[19, "fl_sim.data_processing.FedShakespeare"]], "candidate_models (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.candidate_models"]], "char_to_id() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.char_to_id"]], "doi (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.doi"]], "evaluate() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.evaluate"]], "get_dataloader() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.get_dataloader"]], "get_word_dict() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.get_word_dict"]], "id_to_word() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.id_to_word"]], "preprocess() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.preprocess"]], "url (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.url"]], "view_sample() (fl_sim.data_processing.fedshakespeare method)": [[19, "fl_sim.data_processing.FedShakespeare.view_sample"]], "words (fl_sim.data_processing.fedshakespeare property)": [[19, "fl_sim.data_processing.FedShakespeare.words"]], "fedsynthetic (class in fl_sim.data_processing)": [[20, "fl_sim.data_processing.FedSynthetic"]], "candidate_models (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.candidate_models"]], "doi (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.doi"]], "evaluate() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.get_dataloader"]], "load_partition_data() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.load_partition_data_distributed"]], "reset_seed() (fl_sim.data_processing.fedsynthetic method)": [[20, "fl_sim.data_processing.FedSynthetic.reset_seed"]], "url (fl_sim.data_processing.fedsynthetic property)": [[20, "fl_sim.data_processing.FedSynthetic.url"]], "fedvisiondataset (class in fl_sim.data_processing)": [[21, "fl_sim.data_processing.FedVisionDataset"]], "get_class() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_class"]], "get_classes() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_classes"]], "get_dataloader() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.get_dataloader"]], "label_map (fl_sim.data_processing.fedvisiondataset property)": [[21, "fl_sim.data_processing.FedVisionDataset.label_map"]], "load_partition_data() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.load_partition_data"]], "load_partition_data_distributed() (fl_sim.data_processing.fedvisiondataset method)": [[21, "fl_sim.data_processing.FedVisionDataset.load_partition_data_distributed"]], "n_class (fl_sim.data_processing.fedvisiondataset property)": [[21, "fl_sim.data_processing.FedVisionDataset.n_class"]], "show_image() (fl_sim.data_processing.fedvisiondataset static method)": [[21, "fl_sim.data_processing.FedVisionDataset.show_image"]], "tinyimagenet (class in fl_sim.data_processing)": [[22, "fl_sim.data_processing.TinyImageNet"]], "candidate_models (fl_sim.data_processing.tinyimagenet property)": [[22, "fl_sim.data_processing.TinyImageNet.candidate_models"]], "doi (fl_sim.data_processing.tinyimagenet property)": [[22, "fl_sim.data_processing.TinyImageNet.doi"]], "evaluate() (fl_sim.data_processing.tinyimagenet method)": [[22, "fl_sim.data_processing.TinyImageNet.evaluate"]], "extra_repr_keys() (fl_sim.data_processing.tinyimagenet method)": [[22, "fl_sim.data_processing.TinyImageNet.extra_repr_keys"]], "get_dataloader() (fl_sim.data_processing.tinyimagenet method)": [[22, "fl_sim.data_processing.TinyImageNet.get_dataloader"]], "label_map (fl_sim.data_processing.tinyimagenet property)": [[22, "fl_sim.data_processing.TinyImageNet.label_map"]], "random_grid_view() (fl_sim.data_processing.tinyimagenet method)": [[22, "fl_sim.data_processing.TinyImageNet.random_grid_view"]], "url (fl_sim.data_processing.tinyimagenet property)": [[22, "fl_sim.data_processing.TinyImageNet.url"]], "view_image() (fl_sim.data_processing.tinyimagenet method)": [[22, "fl_sim.data_processing.TinyImageNet.view_image"]], "get_fed_dataset() (in module fl_sim.data_processing)": [[23, "fl_sim.data_processing.get_fed_dataset"]], "list_fed_dataset() (in module fl_sim.data_processing)": [[24, "fl_sim.data_processing.list_fed_dataset"]], "register_fed_dataset() (in module fl_sim.data_processing)": [[25, "fl_sim.data_processing.register_fed_dataset"]], "clfmixin (class in fl_sim.models)": [[26, "fl_sim.models.CLFMixin"]], "predict() (fl_sim.models.clfmixin method)": [[26, "fl_sim.models.CLFMixin.predict"]], "predict_proba() (fl_sim.models.clfmixin method)": [[26, "fl_sim.models.CLFMixin.predict_proba"]], "cnncifar (class in fl_sim.models)": [[27, "fl_sim.models.CNNCifar"]], "cnncifar_small (class in fl_sim.models)": [[28, "fl_sim.models.CNNCifar_Small"]], "cnncifar_tiny (class in fl_sim.models)": [[29, "fl_sim.models.CNNCifar_Tiny"]], "cnnfemnist (class in fl_sim.models)": [[30, "fl_sim.models.CNNFEMnist"]], "cnnfemnist_tiny (class in fl_sim.models)": [[31, "fl_sim.models.CNNFEMnist_Tiny"]], "cnnmnist (class in fl_sim.models)": [[32, "fl_sim.models.CNNMnist"]], "diffmixin (class in fl_sim.models)": [[33, "fl_sim.models.DiffMixin"]], "diff() (fl_sim.models.diffmixin method)": [[33, "fl_sim.models.DiffMixin.diff"]], "fedpdmlp (class in fl_sim.models)": [[34, "fl_sim.models.FedPDMLP"]], "logisticregression (class in fl_sim.models)": [[35, "fl_sim.models.LogisticRegression"]], "forward() (fl_sim.models.logisticregression method)": [[35, "fl_sim.models.LogisticRegression.forward"]], "mlp (class in fl_sim.models)": [[36, "fl_sim.models.MLP"]], "regmixin (class in fl_sim.models)": [[37, "fl_sim.models.REGMixin"]], "predict() (fl_sim.models.regmixin method)": [[37, "fl_sim.models.REGMixin.predict"]], "rnn_originalfedavg (class in fl_sim.models)": [[38, "fl_sim.models.RNN_OriginalFedAvg"]], "forward() (fl_sim.models.rnn_originalfedavg method)": [[38, "fl_sim.models.RNN_OriginalFedAvg.forward"]], "pipeline() (fl_sim.models.rnn_originalfedavg method)": [[38, "fl_sim.models.RNN_OriginalFedAvg.pipeline"]], "rnn_sent140 (class in fl_sim.models)": [[39, "fl_sim.models.RNN_Sent140"]], "forward() (fl_sim.models.rnn_sent140 method)": [[39, "fl_sim.models.RNN_Sent140.forward"]], "pipeline() (fl_sim.models.rnn_sent140 method)": [[39, "fl_sim.models.RNN_Sent140.pipeline"]], "rnn_sent140_lite (class in fl_sim.models)": [[40, "fl_sim.models.RNN_Sent140_LITE"]], "forward() (fl_sim.models.rnn_sent140_lite method)": [[40, "fl_sim.models.RNN_Sent140_LITE.forward"]], "rnn_stackoverflow (class in fl_sim.models)": [[41, "fl_sim.models.RNN_StackOverFlow"]], "forward() (fl_sim.models.rnn_stackoverflow method)": [[41, "fl_sim.models.RNN_StackOverFlow.forward"]], "pipeline() (fl_sim.models.rnn_stackoverflow method)": [[41, "fl_sim.models.RNN_StackOverFlow.pipeline"]], "resnet10 (class in fl_sim.models)": [[42, "fl_sim.models.ResNet10"]], "resnet18 (class in fl_sim.models)": [[43, "fl_sim.models.ResNet18"]], "svc (class in fl_sim.models)": [[44, "fl_sim.models.SVC"]], "forward() (fl_sim.models.svc method)": [[44, "fl_sim.models.SVC.forward"]], "svr (class in fl_sim.models)": [[45, "fl_sim.models.SVR"]], "forward() (fl_sim.models.svr method)": [[45, "fl_sim.models.SVR.forward"]], "shrinkedresnet (class in fl_sim.models)": [[46, "fl_sim.models.ShrinkedResNet"]], "reset_parameters() (in module fl_sim.models)": [[47, "fl_sim.models.reset_parameters"]], "top_n_accuracy() (in module fl_sim.models)": [[48, "fl_sim.models.top_n_accuracy"]], "client (class in fl_sim.nodes)": [[49, "fl_sim.nodes.Client"]], "evaluate() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.evaluate"]], "extra_repr_keys() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.extra_repr_keys"]], "get_all_data() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.get_all_data"]], "is_convergent (fl_sim.nodes.client property)": [[49, "fl_sim.nodes.Client.is_convergent"]], "sample_data() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.sample_data"]], "solve_inner() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.solve_inner"]], "train() (fl_sim.nodes.client method)": [[49, "fl_sim.nodes.Client.train"]], "clientconfig (class in fl_sim.nodes)": [[50, "fl_sim.nodes.ClientConfig"]], "extra_repr_keys() (fl_sim.nodes.clientconfig method)": [[50, "fl_sim.nodes.ClientConfig.extra_repr_keys"]], "node (class in fl_sim.nodes)": [[51, "fl_sim.nodes.Node"]], "aggregate_results_from_json_log() (fl_sim.nodes.node static method)": [[51, "fl_sim.nodes.Node.aggregate_results_from_json_log"]], "communicate() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.communicate"]], "compute_gradients() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.compute_gradients"]], "get_detached_model_parameters() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.get_detached_model_parameters"]], "get_gradients() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.get_gradients"]], "get_norm() (fl_sim.nodes.node static method)": [[51, "fl_sim.nodes.Node.get_norm"]], "is_convergent (fl_sim.nodes.node property)": [[51, "fl_sim.nodes.Node.is_convergent"]], "required_config_fields (fl_sim.nodes.node property)": [[51, "fl_sim.nodes.Node.required_config_fields"]], "set_parameters() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.set_parameters"]], "update() (fl_sim.nodes.node method)": [[51, "fl_sim.nodes.Node.update"]], "server (class in fl_sim.nodes)": [[52, "fl_sim.nodes.Server"]], "add_parameters() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.add_parameters"]], "aggregate_client_metrics() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.aggregate_client_metrics"]], "avg_parameters() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.avg_parameters"]], "client_cls (fl_sim.nodes.server property)": [[52, "fl_sim.nodes.Server.client_cls"]], "config_cls (fl_sim.nodes.server property)": [[52, "fl_sim.nodes.Server.config_cls"]], "evaluate_centralized() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.evaluate_centralized"]], "extra_repr_keys() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.extra_repr_keys"]], "get_cached_metrics() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.get_cached_metrics"]], "get_client_data() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.get_client_data"]], "get_client_model() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.get_client_model"]], "is_convergent (fl_sim.nodes.server property)": [[52, "fl_sim.nodes.Server.is_convergent"]], "train() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.train"]], "train_centralized() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.train_centralized"]], "train_federated() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.train_federated"]], "train_local() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.train_local"]], "update_gradients() (fl_sim.nodes.server method)": [[52, "fl_sim.nodes.Server.update_gradients"]], "serverconfig (class in fl_sim.nodes)": [[53, "fl_sim.nodes.ServerConfig"]], "extra_repr_keys() (fl_sim.nodes.serverconfig method)": [[53, "fl_sim.nodes.ServerConfig.extra_repr_keys"]], "get_optimizer() (in module fl_sim.optimizers)": [[54, "fl_sim.optimizers.get_optimizer"]], "register_optimizer() (in module fl_sim.optimizers)": [[55, "fl_sim.optimizers.register_optimizer"]], "l1norm (class in fl_sim.regularizers)": [[56, "fl_sim.regularizers.L1Norm"]], "eval() (fl_sim.regularizers.l1norm method)": [[56, "fl_sim.regularizers.L1Norm.eval"]], "prox_eval() (fl_sim.regularizers.l1norm method)": [[56, "fl_sim.regularizers.L1Norm.prox_eval"]], "l2norm (class in fl_sim.regularizers)": [[57, "fl_sim.regularizers.L2Norm"]], "eval() (fl_sim.regularizers.l2norm method)": [[57, "fl_sim.regularizers.L2Norm.eval"]], "prox_eval() (fl_sim.regularizers.l2norm method)": [[57, "fl_sim.regularizers.L2Norm.prox_eval"]], "l2normsquared (class in fl_sim.regularizers)": [[58, "fl_sim.regularizers.L2NormSquared"]], "eval() (fl_sim.regularizers.l2normsquared method)": [[58, "fl_sim.regularizers.L2NormSquared.eval"]], "prox_eval() (fl_sim.regularizers.l2normsquared method)": [[58, "fl_sim.regularizers.L2NormSquared.prox_eval"]], "linfnorm (class in fl_sim.regularizers)": [[59, "fl_sim.regularizers.LInfNorm"]], "eval() (fl_sim.regularizers.linfnorm method)": [[59, "fl_sim.regularizers.LInfNorm.eval"]], "prox_eval() (fl_sim.regularizers.linfnorm method)": [[59, "fl_sim.regularizers.LInfNorm.prox_eval"]], "nullregularizer (class in fl_sim.regularizers)": [[60, "fl_sim.regularizers.NullRegularizer"]], "eval() (fl_sim.regularizers.nullregularizer method)": [[60, "fl_sim.regularizers.NullRegularizer.eval"]], "prox_eval() (fl_sim.regularizers.nullregularizer method)": [[60, "fl_sim.regularizers.NullRegularizer.prox_eval"]], "regularizer (class in fl_sim.regularizers)": [[61, "fl_sim.regularizers.Regularizer"]], "eval() (fl_sim.regularizers.regularizer method)": [[61, "fl_sim.regularizers.Regularizer.eval"]], "extra_repr_keys() (fl_sim.regularizers.regularizer method)": [[61, "fl_sim.regularizers.Regularizer.extra_repr_keys"]], "prox_eval() (fl_sim.regularizers.regularizer method)": [[61, "fl_sim.regularizers.Regularizer.prox_eval"]], "get_regularizer() (in module fl_sim.regularizers)": [[62, "fl_sim.regularizers.get_regularizer"]], "fl_sim.models": [[63, "module-fl_sim.models"]], "fl_sim.nodes": [[64, "module-fl_sim.nodes"]], "fl_sim.optimizers": [[65, "module-fl_sim.optimizers"]], "fl_sim.regularizers": [[66, "module-fl_sim.regularizers"]], "baselogger (class in fl_sim.utils.loggers)": [[67, "fl_sim.utils.loggers.BaseLogger"]], "jsonlogger (class in fl_sim.utils.loggers)": [[67, "fl_sim.utils.loggers.JsonLogger"]], "loggermanager (class in fl_sim.utils.loggers)": [[67, "fl_sim.utils.loggers.LoggerManager"]], "txtlogger (class in fl_sim.utils.loggers)": [[67, "fl_sim.utils.loggers.TxtLogger"]], "add_kwargs() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.add_kwargs"]], "clear_logs() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.clear_logs"]], "close() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.close"]], "close() (fl_sim.utils.loggers.jsonlogger method)": [[67, "fl_sim.utils.loggers.JsonLogger.close"]], "close() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.close"]], "close() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.close"]], "compute_sparsity() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.compute_sparsity"]], "default_dict_to_dict() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.default_dict_to_dict"]], "epoch_end() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.epoch_end"]], "epoch_end() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.epoch_end"]], "epoch_end() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.epoch_end"]], "epoch_start() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.epoch_start"]], "epoch_start() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.epoch_start"]], "epoch_start() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.epoch_start"]], "experiment_indicator() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.experiment_indicator"]], "extra_repr_keys() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.extra_repr_keys"]], "extra_repr_keys() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.extra_repr_keys"]], "filename (fl_sim.utils.loggers.baselogger property)": [[67, "fl_sim.utils.loggers.BaseLogger.filename"]], "filename (fl_sim.utils.loggers.jsonlogger property)": [[67, "fl_sim.utils.loggers.JsonLogger.filename"]], "filename (fl_sim.utils.loggers.txtlogger property)": [[67, "fl_sim.utils.loggers.TxtLogger.filename"]], "find_longest_common_substring() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.find_longest_common_substring"]], "fl_sim.utils": [[67, "module-fl_sim.utils"]], "fl_sim.utils.imports": [[67, "module-fl_sim.utils.imports"]], "fl_sim.utils.loggers": [[67, "module-fl_sim.utils.loggers"]], "fl_sim.utils.misc": [[67, "module-fl_sim.utils.misc"]], "flush() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.flush"]], "flush() (fl_sim.utils.loggers.jsonlogger method)": [[67, "fl_sim.utils.loggers.JsonLogger.flush"]], "flush() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.flush"]], "flush() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.flush"]], "from_config() (fl_sim.utils.loggers.baselogger class method)": [[67, "fl_sim.utils.loggers.BaseLogger.from_config"]], "from_config() (fl_sim.utils.loggers.jsonlogger class method)": [[67, "fl_sim.utils.loggers.JsonLogger.from_config"]], "from_config() (fl_sim.utils.loggers.loggermanager class method)": [[67, "fl_sim.utils.loggers.LoggerManager.from_config"]], "from_config() (fl_sim.utils.loggers.txtlogger class method)": [[67, "fl_sim.utils.loggers.TxtLogger.from_config"]], "get_scheduler() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.get_scheduler"]], "get_scheduler_info() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.get_scheduler_info"]], "is_notebook() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.is_notebook"]], "load_module_from_file() (in module fl_sim.utils.imports)": [[67, "fl_sim.utils.imports.load_module_from_file"]], "log_dir (fl_sim.utils.loggers.baselogger property)": [[67, "fl_sim.utils.loggers.BaseLogger.log_dir"]], "log_dir (fl_sim.utils.loggers.loggermanager property)": [[67, "fl_sim.utils.loggers.LoggerManager.log_dir"]], "log_message() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.log_message"]], "log_message() (fl_sim.utils.loggers.jsonlogger method)": [[67, "fl_sim.utils.loggers.JsonLogger.log_message"]], "log_message() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.log_message"]], "log_message() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.log_message"]], "log_metrics() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.jsonlogger method)": [[67, "fl_sim.utils.loggers.JsonLogger.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.log_metrics"]], "log_metrics() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.log_metrics"]], "log_suffix (fl_sim.utils.loggers.loggermanager property)": [[67, "fl_sim.utils.loggers.LoggerManager.log_suffix"]], "loggers (fl_sim.utils.loggers.loggermanager property)": [[67, "fl_sim.utils.loggers.LoggerManager.loggers"]], "long_sep (fl_sim.utils.loggers.txtlogger property)": [[67, "fl_sim.utils.loggers.TxtLogger.long_sep"]], "make_serializable() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.make_serializable"]], "ordered_dict_to_dict() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.ordered_dict_to_dict"]], "reset() (fl_sim.utils.loggers.baselogger method)": [[67, "fl_sim.utils.loggers.BaseLogger.reset"]], "reset() (fl_sim.utils.loggers.jsonlogger method)": [[67, "fl_sim.utils.loggers.JsonLogger.reset"]], "reset() (fl_sim.utils.loggers.loggermanager method)": [[67, "fl_sim.utils.loggers.LoggerManager.reset"]], "reset() (fl_sim.utils.loggers.txtlogger method)": [[67, "fl_sim.utils.loggers.TxtLogger.reset"]], "set_log_dir() (fl_sim.utils.loggers.baselogger static method)": [[67, "fl_sim.utils.loggers.BaseLogger.set_log_dir"]], "set_seed() (in module fl_sim.utils.misc)": [[67, "fl_sim.utils.misc.set_seed"]], "short_sep (fl_sim.utils.loggers.txtlogger property)": [[67, "fl_sim.utils.loggers.TxtLogger.short_sep"]], "strftime() (fl_sim.utils.loggers.jsonlogger static method)": [[67, "fl_sim.utils.loggers.JsonLogger.strftime"]], "strptime() (fl_sim.utils.loggers.jsonlogger static method)": [[67, "fl_sim.utils.loggers.JsonLogger.strptime"]]}}) \ No newline at end of file diff --git a/viz.html b/viz.html index b36c3fa..50ca59d 100644 --- a/viz.html +++ b/viz.html @@ -185,6 +185,7 @@
      • FedRotatedMNIST
      • FedProxFEMNIST
      • FedProxMNIST
      • +
      • TinyImageNet
      • FedShakespeare
      • FedProxSent140
      • FedSynthetic