nvflare.app_common.aggregators package¶
Submodules¶
- nvflare.app_common.aggregators.accumulate_model_aggregator module
- nvflare.app_common.aggregators.assembler module
- nvflare.app_common.aggregators.collect_and_assemble_aggregator module
- nvflare.app_common.aggregators.dxo_aggregator module
- nvflare.app_common.aggregators.dxo_collector module
- nvflare.app_common.aggregators.intime_accumulate_model_aggregator module
- nvflare.app_common.aggregators.weighted_aggregation_helper module
Module contents¶
- AccumulateWeightedAggregator(exclude_vars: str | Dict[str, str] | None = None, aggregation_weights: Dict[str, Any] | Dict[str, Dict[str, Any]] | None = None, expected_data_kind: DataKind | Dict[str, DataKind] = 'WEIGHT_DIFF', weigh_by_local_iter: bool = True)[source]¶
- class InTimeAccumulateWeightedAggregator(exclude_vars: str | Dict[str, str] | None = None, aggregation_weights: Dict[str, Any] | Dict[str, Dict[str, Any]] | None = None, expected_data_kind: DataKind | Dict[str, DataKind] = 'WEIGHT_DIFF', weigh_by_local_iter: bool = True)[source]¶
Bases:
Aggregator
Perform accumulated weighted aggregation.
This is often used as the default aggregation method and can be used for FedAvg. It parses the shareable and aggregates the contained DXO(s).
- Parameters:
exclude_vars (Union[str, Dict[str, str]], optional) – Regular expression string to match excluded vars during aggregation. Defaults to None. Can be one string or a dict of {dxo_name: regex strings} corresponding to each aggregated DXO when processing a DXO of DataKind.COLLECTION.
aggregation_weights (Union[Dict[str, Any], Dict[str, Dict[str, Any]]], optional) – Aggregation weight for each contributor. Defaults to None. Can be one dict of {contrib_name: aggr_weight} or a dict of dicts corresponding to each aggregated DXO when processing a DXO of DataKind.COLLECTION.
expected_data_kind (Union[DataKind, Dict[str, DataKind]]) – DataKind for DXO. Defaults to DataKind.WEIGHT_DIFF Can be one DataKind or a dict of {dxo_name: DataKind} corresponding to each aggregated DXO when processing a DXO of DataKind.COLLECTION. Only the keys in this dict will be processed.
weigh_by_local_iter (bool, optional) – Whether to weight the contributions by the number of iterations performed in local training in the current round. Defaults to True. Setting it to False can be useful in applications such as homomorphic encryption to reduce the number of computations on encrypted ciphertext. The aggregated sum will still be divided by the provided weights and aggregation_weights for the resulting weighted sum to be valid.
- accept(shareable: Shareable, fl_ctx: FLContext) bool [source]¶
Store shareable and update aggregator’s internal state
- Parameters:
shareable – information from contributor
fl_ctx – context provided by workflow
- Returns:
The first boolean indicates if this shareable is accepted. The second boolean indicates if aggregate can be called.