openfl.interface.aggregation_functions.core.interface.AggregationFunction

openfl.interface.aggregation_functions.core.interface.AggregationFunction#

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

Bases: object

Interface for specifying aggregation function.

__init__()[source]#

Initialize common AggregationFunction params.

Default: Read only access to TensorDB

Methods

__init__()

Initialize common AggregationFunction params.

call(local_tensors, db_iterator, ...)

Aggregate tensors.

abstract 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 (Iterator[Series]) –

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

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

    • ’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 (str) – name of the tensor

  • fl_round (int) – round number

  • tags (Tuple[str]) – tuple of tags for this tensor

Returns:

aggregated tensor

Return type:

np.ndarray