Class - AdaptiveAggregation#

class openfl.interface.aggregation_functions.core.adaptive_aggregation.AdaptiveAggregation(*args, **kwargs)[source]#

Bases: AggregationFunction

Adaptive Federated Aggregation funtcion.

According to https://arxiv.org/abs/2003.00295

__init__(optimizer, agg_func)[source]#

Initialize the AdaptiveAggregation class.

Parameters:
  • optimizer (Optimizer) – One of numpy optimizer class instance.

  • agg_func (AggregationFunction) – Aggregate function for aggregating parameters that are not inside the optimizer.

Return type:

None

Methods

__init__(optimizer, agg_func)

Initialize the AdaptiveAggregation class.

call(local_tensors, db_iterator, ...)

Aggregate tensors.

call(local_tensors, db_iterator, tensor_name, fl_round, tags)[source]#

Aggregate tensors.

Parameters:
  • local_tensors (list[openfl.utilities.LocalTensor]) – List of local tensors to aggregate.

  • db_iterator

    An iterator over history of all tensors. Columns: - ‘tensor_name’: name of the tensor.

    Examples for `torch.nn.Module`s: ‘conv1.weight’,’fc2.bias’.

    • ’fl_round’: 0-based number of round corresponding to this

      tensor.

    • ’tags’: tuple of tensor tags. Tags that can appear:
      • ’model’ indicates that the tensor is a model parameter.

      • ’trained’ indicates that tensor is a part of a training

        result. These tensors are passed to the aggregator node after local learning.

      • ’aggregated’ indicates that tensor is a result of

        aggregation. These tensors are sent to collaborators for the next round.

      • ’delta’ indicates that value is a difference between

        rounds for a specific tensor.

      also one of the tags is a collaborator name if it corresponds to a result of a local task.

    • ’nparray’: value of the tensor.

  • tensor_name – name of the tensor

  • fl_round – round number

  • tags – tuple of tags for this tensor

Returns:

aggregated tensor

Return type:

np.ndarray