FedAvgAndroid¶
- class FedAvgAndroid(*, fraction_fit: float = 1.0, fraction_evaluate: float = 1.0, min_fit_clients: int = 2, min_evaluate_clients: int = 2, min_available_clients: int = 2, evaluate_fn: Callable[[int, list[ndarray[Any, dtype[Any]]], dict[str, bool | bytes | float | int | str]], tuple[float, dict[str, bool | bytes | float | int | str]] | None] | None = None, on_fit_config_fn: Callable[[int], dict[str, bool | bytes | float | int | str]] | None = None, on_evaluate_config_fn: Callable[[int], dict[str, bool | bytes | float | int | str]] | None = None, accept_failures: bool = True, initial_parameters: Parameters | None = None)[source]¶
- Bases: - Strategy- Federated Averaging strategy. - Implementation based on https://arxiv.org/abs/1602.05629 - Parameters:
- fraction_fit (Optional[float]) – Fraction of clients used during training. Defaults to 1.0. 
- fraction_evaluate (Optional[float]) – Fraction of clients used during validation. Defaults to 1.0. 
- min_fit_clients (Optional[int]) – Minimum number of clients used during training. Defaults to 2. 
- min_evaluate_clients (Optional[int]) – Minimum number of clients used during validation. Defaults to 2. 
- min_available_clients (Optional[int]) – Minimum number of total clients in the system. Defaults to 2. 
- evaluate_fn (Optional[Callable[[int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]]]]) – Optional function used for validation. Defaults to None. 
- on_fit_config_fn (Optional[Callable[[int], Dict[str, Scalar]]]) – Function used to configure training. Defaults to None. 
- on_evaluate_config_fn (Optional[Callable[[int], Dict[str, Scalar]]]) – Function used to configure validation. Defaults to None. 
- accept_failures (Optional[bool]) – Whether or not accept rounds containing failures. Defaults to True. 
- initial_parameters (Optional[Parameters]) – Initial global model parameters. 
 
 - Methods - aggregate_evaluate(server_round, results, ...)- Aggregate evaluation losses using weighted average. - aggregate_fit(server_round, results, failures)- Aggregate fit results using weighted average. - bytes_to_ndarray(tensor)- Deserialize NumPy array from bytes. - configure_evaluate(server_round, parameters, ...)- Configure the next round of evaluation. - configure_fit(server_round, parameters, ...)- Configure the next round of training. - evaluate(server_round, parameters)- Evaluate model parameters using an evaluation function. - initialize_parameters(client_manager)- Initialize global model parameters. - ndarray_to_bytes(ndarray)- Serialize NumPy array to bytes. - ndarrays_to_parameters(ndarrays)- Convert NumPy ndarrays to parameters object. - num_evaluation_clients(num_available_clients)- Use a fraction of available clients for evaluation. - num_fit_clients(num_available_clients)- Return the sample size and the required number of available clients. - parameters_to_ndarrays(parameters)- Convert parameters object to NumPy weights. - aggregate_evaluate(server_round: int, results: list[tuple[ClientProxy, EvaluateRes]], failures: list[tuple[ClientProxy, EvaluateRes] | BaseException]) tuple[float | None, dict[str, bool | bytes | float | int | str]][source]¶
- Aggregate evaluation losses using weighted average. 
 - aggregate_fit(server_round: int, results: list[tuple[ClientProxy, FitRes]], failures: list[tuple[ClientProxy, FitRes] | BaseException]) tuple[Parameters | None, dict[str, bool | bytes | float | int | str]][source]¶
- Aggregate fit results using weighted average. 
 - bytes_to_ndarray(tensor: bytes) ndarray[Any, dtype[Any]][source]¶
- Deserialize NumPy array from bytes. 
 - configure_evaluate(server_round: int, parameters: Parameters, client_manager: ClientManager) list[tuple[ClientProxy, EvaluateIns]][source]¶
- Configure the next round of evaluation. 
 - configure_fit(server_round: int, parameters: Parameters, client_manager: ClientManager) list[tuple[ClientProxy, FitIns]][source]¶
- Configure the next round of training. 
 - evaluate(server_round: int, parameters: Parameters) tuple[float, dict[str, bool | bytes | float | int | str]] | None[source]¶
- Evaluate model parameters using an evaluation function. 
 - initialize_parameters(client_manager: ClientManager) Parameters | None[source]¶
- Initialize global model parameters. 
 - ndarrays_to_parameters(ndarrays: list[ndarray[Any, dtype[Any]]]) Parameters[source]¶
- Convert NumPy ndarrays to parameters object. 
 - num_evaluation_clients(num_available_clients: int) tuple[int, int][source]¶
- Use a fraction of available clients for evaluation. 
 - num_fit_clients(num_available_clients: int) tuple[int, int][source]¶
- Return the sample size and the required number of available clients. 
 - parameters_to_ndarrays(parameters: Parameters) list[ndarray[Any, dtype[Any]]][source]¶
- Convert parameters object to NumPy weights.