SCAFFOLD
¶
Implementation of the [SCAFFOLD20] algorithm.
References
[SCAFFOLD20]
Sai Praneeth Karimireddy, Satyen Kale, Mehryar Mohri, Sashank J. Reddi, Sebastian U. Stich, Ananda Theertha Suresh. SCAFFOLD: Stochastic Controlled Averaging for Federated Learning. In ICML (2020). URL: https://arxiv.org/abs/1910.06378
Classes included in fluke.algorithms.scaffold
Classes¶
- class fluke.algorithms.scaffold.SCAFFOLDClient(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, **kwargs)[source]¶
Bases:
Client
- class fluke.algorithms.scaffold.SCAFFOLDServer(model: Module, test_set: FastDataLoader, clients: Collection[Client], weighted: bool = True, global_step: float = 1.0, **kwargs)[source]¶
Bases:
Server
- class fluke.algorithms.scaffold.SCAFFOLD(n_clients: int, data_splitter: DataSplitter, hyper_params: DDict | dict[str, Any], **kwargs)[source]¶
Bases:
CentralizedFL