跳转至

fedavg_server

FedavgServer(num_clients, total_epoch, scaffold=False, weighted_fedavg=False)

Bases: strategy_server.StrategyServer

Implement the strategy of fedavg on server side.

Attributes:

Name Type Description
num_clients int

client number

total_epoch int

the epoch number of client trainning

scaffold bool

if use the scaffold method. Defaults to False.

weighted_fedavg bool

if use the weighted sum. Defaults to False.

Source code in iflearner/business/homo/strategy/fedavg_server.py
def __init__(
    self,
    num_clients: int,
    total_epoch: int,
    scaffold: bool = False,
    weighted_fedavg: bool = False,
) -> None:
    super().__init__(num_clients, total_epoch)

    self._scaffold = scaffold
    self._weighted_fedavg = weighted_fedavg
    logger.info(
        f"num_clients: {self._num_clients}, scaffold: {self._scaffold}, weighted_fedavg: {self._weighted_fedavg}"
    )

    self._clients_samples: dict = {}