MetricRecord¶
- class MetricRecord(metric_dict: dict[str, int | float | list[int] | list[float]] | None = None, keep_input: bool = True)[source]¶
Bases :
TypedDict[str,int|float|list[int] |list[float]],InflatableObjectEnregistrement métrique.
Un
MetricRecordest un dictionnaire Python conçu pour garantir que chaque paire de clé-valeur respecte les types de données spécifiés. UnMetricRecordest l’un des types de documents que supporte une flwr.app.RecordDict et peut donc être utilisé pour construire des objetsapp.Message.- Paramètres:
metric_dict (Optional[Dict[str, MetricRecordValues]]) – Un dictionnaire stockant les types de base (c’est-à-dire int, float tels que définis dans MetricScalar) et liste de tels types (voir MetricScalarList).
keep_input (bool (default: True)) – Une valeur booléenne indiquant si les métriques doivent être supprimées du dictionnaire d’entrée immédiatement après y avoir ajouté des valeurs. Lorsque cette valeur est définie sur True, les données sont dupliquées en mémoire. Si la mémoire est un souci, définissez-la sur False.
Exemples
L’utilisation d’un
MetricRecordest prévue pour communiquer les résultats obtenus lorsqu’une nœud effectue une action. Quelques exemples typiques incluent : communiquer l’exactitude de l’entraînement après qu’un modèle a été entraîné localement par unClientApp, signaler la perte de validation obtenue à unClientApp, ou, plus généralement, le résultat de l’exécution d’une requête par leClientApp. Ce qui est commun à ces exemples est que les résultats peuvent être typiquement représentés par un scalaire unique (int,float) ou liste de scalaires.Voyons quelques exemples de construction d’un
MetricRecordà partir de zéro :from flwr.app import MetricRecord # A `MetricRecord` is a specialized Python dictionary record = MetricRecord({"accuracy": 0.94}) # You can add more content to an existing record record["loss"] = 0.01 # It also supports lists record["loss-historic"] = [0.9, 0.5, 0.01]
Puisque les types sont contraints, les types des objets insérés sont vérifiés. Pour un
MetricRecord, les types de valeurs autorisées sont ceux définis dansflwr.app.MetricRecordValues. De même, seuls les clésstrsont autorisées :from flwr.app import MetricRecord record = MetricRecord() # an empty record # Add unsupported value record["something-unsupported"] = {'a': 123} # Will throw a `TypeError`
Si vous avez besoin d’un type de record plus versatile, essayez
ConfigRecordouArrayRecord.Methods
clear()copy()Retourner une copie superficielle du dictionnaire.
Retourner le nombre de Bytes stockés dans cet objet.
deflate()Défléter l'objet.
get(k[,d])inflate(object_content[, children])Infléitez un RecordMetric à partir de bytes.
items()keys()pop(k[,d])Si la clé n'est pas trouvée, d est retourné si donné, sinon KeyError est levé.
popitem()Comme une 2-tuple ; mais levez KeyError si D est vide.
setdefault(k[,d])update([E, ]**F)Si E est présent et a une méthode .keys(), faites : pour k dans E: D[k] = E[k] Si E est présent mais manque de la méthode .keys(), faites : pour (k, v) dans E: D[k] = v Dans les deux cas, ceci est suivi de : pour k, v dans F.items(): D[k] = v
values()Attributes
Récupérez tous les objets enfants sous forme de dictionnaire ou None si il n'y a pas d'enfants.
Vérifier si l'objet est sale après la dernière déflation.
Récupérez l'ID d'objet.
- property children: dict[str, InflatableObject] | None¶
Récupérez tous les objets enfants sous forme de dictionnaire ou None si il n’y a pas d’enfants.
- clear() None. Remove all items from D.¶
- copy() Self¶
Retourner une copie superficielle du dictionnaire.
- get(k[, d]) D[k] if k in D, else d. d defaults to None.¶
- classmethod inflate(object_content: bytes, children: dict[str, InflatableObject] | None = None) MetricRecord[source]¶
Infléitez un RecordMetric à partir de bytes.
- Paramètres:
object_content (bytes) – Le contenu déflété de l’objet MetricRecord.
children (Optional[dict[str, InflatableObject]] (default: None)) – Doit être
None.MetricRecordne supporte pas d’objets enfants. La fourniture de tout enfant entraînera une erreurValueError.
- Renvoie:
L’objet MetricRecord infléi.
- Type renvoyé:
- property is_dirty: bool¶
Vérifier si l’objet est sale après la dernière déflation.
Un objet est considéré comme sale si son contenu a changé depuis le dernier calcul de son ID d’objet.
- items() a set-like object providing a view on D's items.¶
- keys() a set-like object providing a view on D's keys.¶
- property object_id: str¶
Récupérez l’ID d’objet.
- pop(k[, d]) v, remove specified key and return the corresponding value.¶
Si la clé n’est pas trouvée, d est retourné si donné, sinon KeyError est levé.
- popitem() (k, v), remove and return some (key, value) pair¶
Comme une 2-tuple ; mais levez KeyError si D est vide.
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D¶
- update([E, ]**F) None. Update D from mapping/iterable E and F.¶
Si E est présent et a une méthode .keys(), faites : pour k dans E: D[k] = E[k] Si E est présent mais manque de la méthode .keys(), faites : pour (k, v) dans E: D[k] = v Dans les deux cas, ceci est suivi de : pour k, v dans F.items(): D[k] = v
- values() an object providing a view on D's values.¶