FedLC

Implementation of the [FedLC22] algorithm.

References

[FedLC22]

Jie Zhang, Zhiqi Li, Bo Li, Jianghe Xu, Shuang Wu, Shouhong Ding, Chao Wu. Federated Learning with Label Distribution Skew via Logits Calibration. In ICML (2022). URL: https://arxiv.org/abs/2209.00189

Classes included in fluke.algorithms.fedlc

CalibratedLoss

Calibrated Loss function.

FedLCClient

FedLC

Classes

class fluke.algorithms.fedlc.CalibratedLoss(tau: float, label_distrib: Tensor, reduction: Literal['mean', 'sum'] = 'mean')[source]

Bases: Module

Calibrated Loss function.

Parameters:
  • tau (float) – calibration parameter.

  • label_distrib (torch.Tensor) – Label distribution.

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

Bases: Client

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

Bases: CentralizedFL