fl4health.mixins.core_protocols module

class BasicClientProtocol(*args, **kwargs)[source]

Bases: BasicClientProtocolPreSetup, Protocol

A minimal protocol for BasicClient focused on methods.

model: Module
optimizers: dict[str, Optimizer]
test_loader: DataLoader | None
train_loader: DataLoader
val_loader: DataLoader
class BasicClientProtocolPreSetup(*args, **kwargs)[source]

Bases: NumPyClientMinimalProtocol, Protocol

A minimal protocol for BasicClient focused on methods.

compute_loss_and_additional_losses(preds, features, target)[source]
Return type:

tuple[Tensor, dict[str, Tensor] | None]

device: device
get_criterion(config)[source]
Return type:

_Loss

get_data_loaders(config)[source]
Return type:

tuple[DataLoader, ...]

get_model(config)[source]
Return type:

Module

get_optimizer(config)[source]
Return type:

Optimizer | dict[str, Optimizer]

initialized: bool
setup_client(config)[source]
Return type:

None

class NumPyClientMinimalProtocol(*args, **kwargs)[source]

Bases: Protocol

A minimal protocol for NumPyClient with just essential methods.

evaluate(parameters, config)[source]
Return type:

tuple[float, int, dict[str, Union[bool, bytes, float, int, str]]]

fit(parameters, config)[source]
Return type:

tuple[list[ndarray[Any, dtype[Any]]], int, dict[str, Union[bool, bytes, float, int, str]]]

get_parameters(config)[source]
Return type:

list[ndarray[Any, dtype[Any]]]

set_parameters(parameters, config, fitting_round)[source]
Return type:

None

update_after_train(local_steps, loss_dict, config)[source]
Return type:

None