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) 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)) – Nombre de tours d’apprentissage fédéré à exécuter.
timeout (float (default: 3600)) – Délai en secondes pour attendre les réponses des nœuds.
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.
- 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