fl_server_ai.trainer.events ¶
Modules:
| Name | Description |
|---|---|
base | |
daisy_chain_round_finished | |
model_test_finished | |
swag_round_finished | |
training_round_finished | |
Classes:
| Name | Description |
|---|---|
DaisyChainRoundFinished | Federated daisy chain (FedDC) round finished event. |
ModelTestFinished | Model test finished event. |
ModelTrainerEvent | Abstract base class for a model trainer event. |
SWAGRoundFinished | Stochastic weight averaging Gaussian (SWAG) round finished event. |
TrainingRoundFinished | Training round finished event. |
Attributes¶
__all__ module-attribute ¶
__all__ = ['ModelTrainerEvent', 'DaisyChainRoundFinished', 'ModelTestFinished', 'SWAGRoundFinished', 'TrainingRoundFinished']
Classes¶
DaisyChainRoundFinished ¶
Bases: TrainingRoundFinished
flowchart TD
fl_server_ai.trainer.events.DaisyChainRoundFinished[DaisyChainRoundFinished]
fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished[TrainingRoundFinished]
fl_server_ai.trainer.events.base.ModelTrainerEvent[ModelTrainerEvent]
fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished --> fl_server_ai.trainer.events.DaisyChainRoundFinished
fl_server_ai.trainer.events.base.ModelTrainerEvent --> fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished
click fl_server_ai.trainer.events.DaisyChainRoundFinished href "" "fl_server_ai.trainer.events.DaisyChainRoundFinished"
click fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished href "" "fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished"
click fl_server_ai.trainer.events.base.ModelTrainerEvent href "" "fl_server_ai.trainer.events.base.ModelTrainerEvent"
Federated daisy chain (FedDC) round finished event.
Methods:
| Name | Description |
|---|---|
__init__ | |
handle | Handle the FedDC event. |
Source code in fl_server_ai/trainer/events/daisy_chain_round_finished.py
Functions¶
__init__ ¶
__init__(trainer: ModelTrainer)
handle ¶
Handle the FedDC event.
(a) local client training is finished -> do the aggregation
(b) local client training is not finished yet (but we reach a daisy chaining period) -> no aggregation, just send the permutated client models back for further training - also see FedDCModelTrainer.handle()
Source code in fl_server_ai/trainer/events/daisy_chain_round_finished.py
ModelTestFinished ¶
Bases: ModelTrainerEvent
flowchart TD
fl_server_ai.trainer.events.ModelTestFinished[ModelTestFinished]
fl_server_ai.trainer.events.base.ModelTrainerEvent[ModelTrainerEvent]
fl_server_ai.trainer.events.base.ModelTrainerEvent --> fl_server_ai.trainer.events.ModelTestFinished
click fl_server_ai.trainer.events.ModelTestFinished href "" "fl_server_ai.trainer.events.ModelTestFinished"
click fl_server_ai.trainer.events.base.ModelTrainerEvent href "" "fl_server_ai.trainer.events.base.ModelTrainerEvent"
Model test finished event.
Methods:
| Name | Description |
|---|---|
handle | |
next | |
Source code in fl_server_ai/trainer/events/model_test_finished.py
ModelTrainerEvent ¶
Bases: ABC
flowchart TD
fl_server_ai.trainer.events.ModelTrainerEvent[ModelTrainerEvent]
click fl_server_ai.trainer.events.ModelTrainerEvent href "" "fl_server_ai.trainer.events.ModelTrainerEvent"
Abstract base class for a model trainer event.
- API Reference
fl_server_aitrainerevents
- API Reference
fl_server_aitrainer
Methods:
| Name | Description |
|---|---|
__init__ | Initialize the event with the given trainer. |
handle | Handle the event. |
next | Proceed with the next event. |
Attributes:
| Name | Type | Description |
|---|---|---|
trainer | The trainer that the event is associated with. | |
training | The training that the event is associated with. |
Source code in fl_server_ai/trainer/events/base.py
Attributes¶
Functions¶
__init__ ¶
__init__(trainer: ModelTrainer)
Initialize the event with the given trainer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
| ModelTrainer | The trainer that the event is associated with. | required |
Source code in fl_server_ai/trainer/events/base.py
handle abstractmethod ¶
SWAGRoundFinished ¶
Bases: TrainingRoundFinished
flowchart TD
fl_server_ai.trainer.events.SWAGRoundFinished[SWAGRoundFinished]
fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished[TrainingRoundFinished]
fl_server_ai.trainer.events.base.ModelTrainerEvent[ModelTrainerEvent]
fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished --> fl_server_ai.trainer.events.SWAGRoundFinished
fl_server_ai.trainer.events.base.ModelTrainerEvent --> fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished
click fl_server_ai.trainer.events.SWAGRoundFinished href "" "fl_server_ai.trainer.events.SWAGRoundFinished"
click fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished href "" "fl_server_ai.trainer.events.training_round_finished.TrainingRoundFinished"
click fl_server_ai.trainer.events.base.ModelTrainerEvent href "" "fl_server_ai.trainer.events.base.ModelTrainerEvent"
Stochastic weight averaging Gaussian (SWAG) round finished event.
Methods:
| Name | Description |
|---|---|
handle | Handle the SWAG event by collecting the SWAG first and second moments |
next | |
Source code in fl_server_ai/trainer/events/swag_round_finished.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | |
Functions¶
handle ¶
Handle the SWAG event by collecting the SWAG first and second moments from all participants and aggregating them.
Source code in fl_server_ai/trainer/events/swag_round_finished.py
TrainingRoundFinished ¶
Bases: ModelTrainerEvent
flowchart TD
fl_server_ai.trainer.events.TrainingRoundFinished[TrainingRoundFinished]
fl_server_ai.trainer.events.base.ModelTrainerEvent[ModelTrainerEvent]
fl_server_ai.trainer.events.base.ModelTrainerEvent --> fl_server_ai.trainer.events.TrainingRoundFinished
click fl_server_ai.trainer.events.TrainingRoundFinished href "" "fl_server_ai.trainer.events.TrainingRoundFinished"
click fl_server_ai.trainer.events.base.ModelTrainerEvent href "" "fl_server_ai.trainer.events.base.ModelTrainerEvent"
Training round finished event.
This event should only be triggered when all model updates (local models) that are to participate in the aggregation have arrived.
- API Reference
fl_server_aitrainerevents
Methods:
| Name | Description |
|---|---|
handle | Handle the training round finished event. |
next | |
Source code in fl_server_ai/trainer/events/training_round_finished.py
Functions¶
handle ¶
Handle the training round finished event.
- aggregate all model updates (local models) into a new global model
- save the new global model into the database (i.e. updates/overwrites the weights field of the model)
- increase the round field of the global model by 1
- delete the model updates (local models) from the database, if the trainer options do not disagree
Note: If not enough updates have arrived, the method does nothing.