DPFedAVG
¶
Implementation of the DPFedAVG: Differential Privacy Federated Averaging [DPFedAVG2017] algorithm.
Note
This implementation does not exactly follow the original paper, but it is a simplified version that uses the Opacus library to provide differential privacy guarantees.
References
[DPFedAVG2017]
Robin C. Geyer, Tassilo Klein, Moin Nabi. Differentially Private Federated Learning: A Client Level Perspective In ArXiv (2017). URL: https://arxiv.org/abs/1712.07557
Classes included in fluke.algorithms.dpfedavg
Classes¶
- class fluke.algorithms.dpfedavg.DPFedAVGClient(index: int, train_set: FastDataLoader, test_set: FastDataLoader, optimizer_cfg: OptimizerConfigurator, loss_fn: Module, local_epochs: int = 3, fine_tuning_epochs: int = 0, clipping: float = 0, noise_mul: float = 1.1, max_grad_norm: float = 1.0, **kwargs)[source]¶
Bases:
Client
- class fluke.algorithms.dpfedavg.DPFedAVGServer(model: Module, test_set: FastDataLoader, clients: Collection[Client], weighted: bool = False, lr: float = 1.0, **kwargs)[source]¶
Bases:
Server
- class fluke.algorithms.dpfedavg.DPFedAVG(n_clients: int, data_splitter: DataSplitter, hyper_params: DDict | dict[str, Any], **kwargs)[source]¶
Bases:
CentralizedFL