Strategy¶
- class Strategy[source]¶
Bases :
ABCClasse de base abstraite pour les implémentations de stratégies côté serveur.
Methods
aggregate_evaluate(server_round, replies)Métriques d'évaluation agrégées des nœuds clients.
aggregate_train(server_round, replies)Résultats d'entraînement agrégés des nœuds clients.
configure_evaluate(server_round, arrays, ...)Configure the next round of evaluation.
configure_train(server_round, arrays, ...)Configure le prochain tour d'entraînement.
start(grid, initial_arrays[, num_rounds, ...])Exécution de la stratégie d'apprentissage fédéré.
summary()Loguer la configuration sommaire de la stratégie.
- abstract aggregate_evaluate(server_round: int, replies: Iterable[Message]) MetricRecord | None[source]¶
Métriques d’évaluation agrégées des nœuds clients.
- Paramètres:
server_round (int) – The current round of federated learning.
replies (Iterable[Message]) – Itérable de messages de réponse reçus des nœuds clients après évaluation. Les MetricRecords dans les messages sont agrégés.
- Renvoie:
Métriques d’évaluation agrégées de tous les clients participant, ou None si l’agrégation a échoué.
- Type renvoyé:
Optional[MetricRecord]
- abstract aggregate_train(server_round: int, replies: Iterable[Message]) tuple[ArrayRecord | None, MetricRecord | None][source]¶
Résultats d’entraînement agrégés des nœuds clients.
- Paramètres:
server_round (int) – La ronde actuelle d’apprentissage fédéré, commençant à 1.
replies (Iterable[Message]) – Itérable de messages de réponse reçus des nœuds clients après entraînement. Chaque message contient des ArrayRecords et des MetricRecords qui sont agrégés.
- Renvoie:
Un tuple contenant : - ArrayRecord : ArrayRecord agrégé, ou None si l’agrégation a échoué - MetricRecord : MetricRecord agrégé, ou None si l’agrégation a échoué
- Type renvoyé:
tuple[Optional[ArrayRecord], Optional[MetricRecord]]
- abstract configure_evaluate(server_round: int, arrays: ArrayRecord, config: ConfigRecord, grid: Grid) Iterable[Message][source]¶
Configure the next round of evaluation.
- Paramètres:
server_round (int) – The current round of federated learning.
arrays (ArrayRecord) – Le ArrayRecord global actuel (par exemple, le modèle global) à envoyer aux nœuds clients pour l’évaluation.
config (ConfigRecord) – La configuration à envoyer aux nœuds clients pour l’évaluation.
grid (Grid) – L’instance du Grid utilisée pour l’échantillonnage et la communication des nœuds.
- Renvoie:
Un itérable de messages à envoyer aux nœuds clients sélectionnés pour l’évaluation.
- Type renvoyé:
Iterable[Message]
- abstract configure_train(server_round: int, arrays: ArrayRecord, config: ConfigRecord, grid: Grid) Iterable[Message][source]¶
Configure le prochain tour d’entraînement.
- Paramètres:
server_round (int) – The current round of federated learning.
arrays (ArrayRecord) – Le ArrayRecord global actuel (par exemple, le modèle global) à envoyer aux nœuds clients pour l’entraînement.
config (ConfigRecord) – La configuration à envoyer aux nœuds clients pour l’entraînement.
grid (Grid) – L’instance du Grid utilisée pour l’échantillonnage et la communication des nœuds.
- Renvoie:
Un itérable de messages à envoyer aux nœuds clients sélectionnés pour l’entraînement.
- Type renvoyé:
Iterable[Message]
- start(grid: Grid, initial_arrays: ArrayRecord, num_rounds: int = 3, timeout: float = 3600, train_config: ConfigRecord | None = None, evaluate_config: ConfigRecord | None = None, evaluate_fn: Callable[[int, ArrayRecord], MetricRecord | None] | None = None, should_stop: Callable[[int, Result], bool] | None = None) Result[source]¶
Exécution de la stratégie d’apprentissage fédéré.
Exécuter le flux de travail complet d’apprentissage fédéré pour un nombre spécifié de tours, y compris l’entraînement, l’évaluation et l’évaluation centralisée facultative.
- Paramètres:
grid (Grid) – Instance du Grid utilisée pour envoyer/recevoir des Messages à partir de nœuds exécutant une application ClientApp.
initial_arrays (ArrayRecord) – Paramètres initiaux du modèle (tableaux) à utiliser pour l’apprentissage fédéré.
num_rounds (int (default: 3)) – Maximum number of federated learning rounds to execute.
timeout (float (default: 3600)) – Timeout in seconds for waiting for node responses. Outstanding responses from nodes that become unavailable are replaced with error replies.
train_config (ConfigRecord, optional) – Configuration à envoyer aux nœuds pendant les tours d’entraînement. Si non défini, un ConfigRecord vide sera utilisé.
evaluate_config (ConfigRecord, optional) – Configuration à envoyer aux nœuds pendant les tours d’évaluation. Si non défini, un ConfigRecord vide sera utilisé.
evaluate_fn (Callable[[int, ArrayRecord], Optional[MetricRecord]], optional) – Fonction facultative pour l’évaluation centralisée du modèle global. Prend le numéro de tour serveur et le record tableau, retourne un MetricRecord ou None. Si fourni, sera appelé avant la première ronde et après chaque ronde. Par défaut à None.
should_stop (Callable[[int, Result], bool], optional) – Optional predicate to determine whether to stop training early. Called at the end of each round with the round number and accumulated results. Return True to stop and return the model and metrics collected so far. Not called for round zero. Results must not be modified. Defaults to None (no early stopping).
- Renvoie:
Résultats contenant les tableaux de modèles finaux ainsi que les métriques d’entraînement, les métriques d’évaluation et les métriques d’évaluation globales (si fourni) de toutes les rondes.
- Type renvoyé:
Results