FedSAM

Implementation of the [FedSAM22] algorithm.

References

[FedSAM22]

Caldarola, D., Caputo, B., & Ciccone, M. Improving Generalization in Federated Learning by Seeking Flat Minima. In ECCV (2022). URL: https://arxiv.org/abs/2203.11834

Classes included in fluke.algorithms.fedsam

Classes

class fluke.algorithms.fedsam.SAMOptimizer(params: ~typing.Iterable[~torch.Tensor] | ~typing.Iterable[dict[str, ~typing.Any]], base_optimizer: ~torch.optim.optimizer.Optimizer = <class 'torch.optim.sgd.SGD'>, rho: float = 0.05, adaptive: bool = False, **kwargs: dict[str, ~typing.Any])[source]

Bases: Optimizer

class fluke.algorithms.fedsam.FedSAMClient(index: int, train_set: FastDataLoader, test_set: FastDataLoader, optimizer_cfg: OptimizerConfigurator, loss_fn: Module, local_epochs: int, fine_tuning_epochs: int = 0, rho: float = 0.05, **kwargs: dict[str, Any])[source]

Bases: Client

class fluke.algorithms.fedsam.FedSAM(n_clients: int, data_splitter: DataSplitter, hyper_params: DDict | dict[str, Any], **kwargs: dict[str, Any])[source]

Bases: CentralizedFL