kosmos.ml.fl.fl_manager

Classes

class FLManager(config: kosmos.ml.config.sl_train.FLTrainConfig, client_nodes: list[kosmos.topology.node.Node], server_node: kosmos.topology.node.Node)[source]

Federated learning manager for supervised learning classification tasks.

config

Federated learning training configuration.

Type:

FLTrainConfig

client_nodes

The nodes representing federated clients.

Type:

list[Node]

server_node

The node representing the federated server.

Type:

Node

dataset

The dataset used for training and testing.

Type:

SLDataset

num_rounds

Number of federated learning rounds.

Type:

int

num_epochs

Number of training epochs per round.

Type:

int

train_loaders

DataLoaders for the training data, one per client.

Type:

list[DataLoader]

test_loader

DataLoader for the test data.

Type:

DataLoader

clients

The federated learning client instances.

Type:

list[FLClient] | None

server

The federated learning server instance.

Type:

FLServer | None

Initialize the federated learning manager.

Parameters:
  • config (FLTrainConfig) – Federated learning training configuration.

  • client_nodes (list[Node]) – The nodes representing federated clients.

  • server_node (Node) – The node representing the federated server.


Methods

train() collections.abc.Iterator[kosmos.ml.sl_result.SLTrainIterationResult][source]

Run federated training across all configured rounds.

Returns:

An iterator yielding one training result per epoch

for all rounds.

Return type:

Iterator[SLTrainIterationResult]

test() kosmos.ml.sl_result.SLTestIterationResult[source]

Evaluate the global model on the test dataset.

Returns:

The result of the global model evaluation.

Return type:

SLTrainIterationResult