ConfigRecord¶
- class ConfigRecord(config_dict: dict[str, int | float | str | bytes | bool | list[int] | list[float] | list[str] | list[bytes] | list[bool]] | None = None, keep_input: bool = True)[source]¶
Bases :
TypedDict[str,int|float|str|bytes|bool|list[int] |list[float] |list[str] |list[bytes] |list[bool]],InflatableObjectEnregistrement de configuration.
Un
ConfigRecordest un dictionnaire Python conçu pour garantir que chaque paire de clé-valeur respecte les types de données spécifiés. UnConfigRecordest l’un des types de documents que supporte une flwr.app.RecordDict et peut donc être utilisé pour construire des objetsapp.Message.- Paramètres:
config_dict (Optional[Dict[str, ConfigRecordValues]]) – Un dictionnaire qui stocke les types de base (c’est-à-dire str, int, float, bytes tels que définis dans ConfigScalar) et les listes de tels types (voir ConfigScalarList).
keep_input (bool (default: True)) – Une valeur booléenne indiquant si la configuration passée doit être supprimée du dictionnaire d’entrée immédiatement après y avoir ajouté. Lorsque cela est défini sur True, les données sont dupliquées en mémoire. Si la mémoire est un souci, définissez-le sur False.
Exemples
L’utilisation d’un
ConfigRecordest prévue pour envoyer des valeurs de configuration indiquant au nœud cible comment effectuer une certaine action (par exemple, entraîner/évaluer un modèle). Vous pouvez utiliser les types Python intégrés tels quefloat,str,bytes. Tous les types autorisés sont définis dansflwr.app.ConfigRecordValues. Même si les listes sont prises en charge, nous vous encourageons à utiliser unArrayRecordau lieu d’elles si celles-ci ont une grande dimensionnalité.Voyez quelques exemples de construction d’un
ConfigRecordà partir de zéro:from flwr.app import ConfigRecord # A `ConfigRecord` is a specialized Python dictionary record = ConfigRecord({"lr": 0.1, "batch-size": 128}) # You can add more content to an existing record record["compute-average"] = True # It also supports lists record["loss-fn-coefficients"] = [0.4, 0.25, 0.35] # And string values (among other types) record["path-to-S3"] = "s3://bucket_name/folder1/fileA.json"
De même que les autres types de documents dans un
flwr.app.RecordDict, les types sont contrôlés. Si vous avez besoin d’ajouter une structure de données personnalisée ou un objet, nous recommandons de le sérialiser en bytes et de le sauvegarder sous forme de telles (les octets sont autorisés dans unConfigRecord).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 ConfigRecord à 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.
- count_bytes() int[source]¶
Retourner le nombre de Bytes stockés dans cet objet.
Cette fonction compte les booléens comme occupant 1 Byte.
- 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) ConfigRecord[source]¶
Infléitez un ConfigRecord à partir de bytes.
- Paramètres:
object_content (bytes) – Le contenu déflété de la ConfigRecord.
children (Optional[dict[str, InflatableObject]] (default: None)) – Doit être
None.ConfigRecordne supporte pas d’objets enfants. La fourniture de tout enfant entraînera une erreurValueError.
- Renvoie:
La ConfigRecord gonflée.
- 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.¶