Skip to content

fl_server_ai.aggregation.base

Classes:

Name Description
Aggregation

Abstract base class for aggregation strategies.

Classes

Aggregation

Bases: ABC


              flowchart TD
              fl_server_ai.aggregation.base.Aggregation[Aggregation]

              

              click fl_server_ai.aggregation.base.Aggregation href "" "fl_server_ai.aggregation.base.Aggregation"
            

Abstract base class for aggregation strategies.

Methods:

Name Description
aggregate

Abstract method for aggregating models.

Source code in fl_server_ai/aggregation/base.py
class Aggregation(ABC):
    """
    Abstract base class for aggregation strategies.
    """
    _logger = getLogger("fl.server")

    @abstractmethod
    def aggregate(
        self,
        models: Sequence[torch.nn.Module],
        model_sample_sizes: Sequence[int],
        *,
        deepcopy: bool = True
    ) -> torch.nn.Module:
        """
        Abstract method for aggregating models.

        Args:
            models (Sequence[torch.nn.Module]): The models to be aggregated.
            model_sample_sizes (Sequence[int]): The sample sizes for each model.
            deepcopy (bool, optional): Whether to create a deep copy of the models. Defaults to True.

        Returns:
            torch.nn.Module: The aggregated model.
        """
        pass

Functions

aggregate abstractmethod
aggregate(models: Sequence[Module], model_sample_sizes: Sequence[int], *, deepcopy: bool = True) -> Module

Abstract method for aggregating models.

Parameters:

Name Type Description Default
models
Sequence[Module]

The models to be aggregated.

required
model_sample_sizes
Sequence[int]

The sample sizes for each model.

required
deepcopy
bool

Whether to create a deep copy of the models. Defaults to True.

True

Returns:

Type Description
Module

torch.nn.Module: The aggregated model.

Source code in fl_server_ai/aggregation/base.py
@abstractmethod
def aggregate(
    self,
    models: Sequence[torch.nn.Module],
    model_sample_sizes: Sequence[int],
    *,
    deepcopy: bool = True
) -> torch.nn.Module:
    """
    Abstract method for aggregating models.

    Args:
        models (Sequence[torch.nn.Module]): The models to be aggregated.
        model_sample_sizes (Sequence[int]): The sample sizes for each model.
        deepcopy (bool, optional): Whether to create a deep copy of the models. Defaults to True.

    Returns:
        torch.nn.Module: The aggregated model.
    """
    pass