nvflare.app_opt.pt.job_config.fed_avg module

class FedAvgJob(initial_model: Module, n_clients: int, num_rounds: int, name: str = 'fed_job', min_clients: int = 1, mandatory_clients: List[str] | None = None, key_metric: str = 'accuracy')[source]

Bases: BaseFedJob

PyTorch FedAvg Job.

Configures server side FedAvg controller, persistor with initial model, and widgets.

User must add executors.

Parameters:
  • initial_model (nn.Module) – initial PyTorch Model

  • n_clients (int) – number of clients for this job

  • num_rounds (int) – number of rounds for FedAvg

  • name (name, optional) – name of the job. Defaults to “fed_job”

  • min_clients (int, optional) – the minimum number of clients for the job. Defaults to 1.

  • mandatory_clients (List[str], optional) – mandatory clients to run the job. Default None.

  • key_metric (str, optional) – Metric used to determine if the model is globally best. if metrics are a dict, key_metric can select the metric used for global model selection. Defaults to “accuracy”.