fl4health.strategies.flash module¶
- class Flash(*, fraction_fit=1.0, fraction_evaluate=1.0, min_fit_clients=2, min_evaluate_clients=2, min_available_clients=2, evaluate_fn=None, on_fit_config_fn=None, on_evaluate_config_fn=None, accept_failures=True, initial_parameters, fit_metrics_aggregation_fn=None, evaluate_metrics_aggregation_fn=None, eta=0.1, eta_l=0.1, beta_1=0.9, beta_2=0.99, tau=1e-09, weighted_aggregation=False, weighted_eval_losses=False)[source]¶
Bases:
BasicFedAvg
- __init__(*, fraction_fit=1.0, fraction_evaluate=1.0, min_fit_clients=2, min_evaluate_clients=2, min_available_clients=2, evaluate_fn=None, on_fit_config_fn=None, on_evaluate_config_fn=None, accept_failures=True, initial_parameters, fit_metrics_aggregation_fn=None, evaluate_metrics_aggregation_fn=None, eta=0.1, eta_l=0.1, beta_1=0.9, beta_2=0.99, tau=1e-09, weighted_aggregation=False, weighted_eval_losses=False)[source]¶
Flash: Concept Drift Adaptation in Federated Learning.
Implementation based on https://proceedings.mlr.press/v202/panchal23a/panchal23a.pdf
- Parameters:
initial_parameters (Parameters) – Initial global model parameters.
fraction_fit (float, optional) – Fraction of clients used during training.. Defaults to 1.0.
fraction_evaluate (float, optional) – Fraction of clients used during validation.. Defaults to 1.0.
min_fit_clients (int, optional) – Minimum number of clients used during training.. Defaults to 2.
min_evaluate_clients (int, optional) – Minimum number of clients used during validation.. Defaults to 2.
min_available_clients (int, optional) – Minimum number of total clients in the system.. Defaults to 2.
(Callable[[int (evaluate_fn) – None] | None, optional): Optional function used for validation.. Defaults to None.
NDArrays – None] | None, optional): Optional function used for validation.. Defaults to None.
dict[str – None] | None, optional): Optional function used for validation.. Defaults to None.
Scalar]] – None] | None, optional): Optional function used for validation.. Defaults to None.
tuple[float – None] | None, optional): Optional function used for validation.. Defaults to None.
dict[str – None] | None, optional): Optional function used for validation.. Defaults to None.
| (Scalar]]) – None] | None, optional): Optional function used for validation.. Defaults to None.
on_fit_config_fn (Callable[[int], dict[str, Scalar]] | None, optional) – Function used to configure training. Defaults to None.
on_evaluate_config_fn (Callable[[int], dict[str, Scalar]] | None, optional) – Function used to configure validation. Defaults to None.
accept_failures (bool, optional) – Whether or not accept rounds containing failures.. Defaults to True.
fit_metrics_aggregation_fn (MetricsAggregationFn | None, optional) – Metrics aggregation function. Defaults to None.
evaluate_metrics_aggregation_fn (MetricsAggregationFn | None, optional) – Metrics aggregation function. Defaults to None.
eta (float, optional) – Server-side learning rate.. Defaults to 1e-1.
eta_l (float, optional) – Client-side learning rate.. Defaults to 1e-1.
beta_1 (float, optional) – Momentum parameter.. Defaults to 0.9.
beta_2 (float, optional) – Second moment parameter.. Defaults to 0.99.
tau (float, optional) – Controls the algorithm’s degree of adaptability. Defaults to 1e-9.
weighted_aggregation (bool, optional) – Determines whether parameter aggregation is a linearly weighted average or a uniform average. Flash default is a uniform average by the number of clients. Defaults to False.
weighted_eval_losses (bool, optional) – Determines whether losses during evaluation are linearly weighted averages or a uniform average. Flash default is a uniform average of the losses by dividing the total loss by the number of clients. Defaults to False.