RecordDict

class RecordDict(records: dict[str, ArrayRecord | MetricRecord | ConfigRecord] | None = None, *, parameters_records: dict[str, ArrayRecord] | None = None, metrics_records: dict[str, MetricRecord] | None = None, configs_records: dict[str, ConfigRecord] | None = None)[source]

Bases : TypedDict[str, ArrayRecord | MetricRecord | ConfigRecord], InflatableObject

RecordDict stocke des groupes d’arrays, de métriques et de configurations.

Un RecordDict est le mécanisme unifié par lequel les tableaux, les métriques et les configurations peuvent être stockés dans un Context de vos applications ou communiqués dans un Message entre vos applications.

Paramètres:

records (Optional[dict[str, RecordType]]) – Un dictionnaire associant les clés de chaînes à des instances de documents, où chaque valeur est soit un ArrayRecord, un MetricRecord ou un ConfigRecord.

Exemples

Un RecordDict peut contenir trois types de records, chacun conçu pour une finalité spécifique. Ce qui est commun à tous d’entre eux est qu’ils sont des dictionnaires Python conçus pour garantir que chaque paire clé-valeur respecte les types de données spécifiés.

Voyons un exemple :

from flwr.app import RecordDict
from flwr.app import ArrayRecord, ConfigRecord, MetricRecord

# Let's begin with an empty record
my_records = RecordDict()

# We can create a ConfigRecord
c_record = ConfigRecord({"lr": 0.1, "batch-size": 128})
# Adding it to the RecordDict would look like this
my_records["my_config"] = c_record

# We can create a MetricRecord following a similar process
m_record = MetricRecord({"accuracy": 0.93, "losses": [0.23, 0.1]})
# Adding it to the RecordDict would look like this
my_records["my_metrics"] = m_record

L’ajout d’un ArrayRecord suit les mêmes étapes que ci-dessus mais tout d’abord, l’array doit être sérialisé et représenté sous forme de flwr.app.Array. Par exemple:

from flwr.app import Array
# Creating an ArrayRecord would look like this
arr_np = np.random.randn(3, 3)

# You can use the built-in tool to serialize the array
arr = Array(arr_np)

# Finally, create the record
arr_record = ArrayRecord({"my_array": arr})

# Adding it to the RecordDict would look like this
my_records["my_parameters"] = arr_record

Pour des exemples supplémentaires sur la construction de chaque type de records montrés ci-dessus, veuillez consulter la documentation pour ConfigRecord, MetricRecord et ArrayRecord.

Methods

clear()

copy()

Retourner une copie superficielle du dictionnaire.

deflate()

Déflatez le RecordDict.

get(k[,d])

inflate(object_content[, children])

Infléitez un RecordDict à 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

array_records

Dictionnaire contenant uniquement des instances ArrayRecord.

children

Retournez un dictionnaire de records avec leurs ID d'objet comme clés.

config_records

Dictionnaire contenant uniquement des instances ConfigRecord.

configs_records

Propriété dépréciée.

is_dirty

Vérifier si l'objet est sale après la dernière déflation.

metric_records

Dictionnaire contenant uniquement des instances MetricRecord.

metrics_records

Propriété dépréciée.

object_id

Récupérez l'ID d'objet.

parameters_records

Propriété dépréciée.

property array_records: TypedDict[str, ArrayRecord]

Dictionnaire contenant uniquement des instances ArrayRecord.

property children: dict[str, InflatableObject]

Retournez un dictionnaire de records avec leurs ID d’objet comme clés.

clear() None.  Remove all items from D.
property config_records: TypedDict[str, ConfigRecord]

Dictionnaire contenant uniquement des instances ConfigRecord.

property configs_records: TypedDict[str, ConfigRecord]

Propriété dépréciée.

Utilisez config_records à la place.

copy() Self

Retourner une copie superficielle du dictionnaire.

deflate() bytes[source]

Déflatez le RecordDict.

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) RecordDict[source]

Infléitez un RecordDict à partir de bytes.

Paramètres:
  • object_content (bytes) – Contenu déflé de l’objet RecordDict.

  • children (Optional[dict[str, InflatableObject]] (default: None)) – Dictionnaire des enfants InflatableObjects mappés à leurs ID d’objet. Ces enfants permettent la pleine inflation du RecordDict. Par défaut, None.

Renvoie:

Le RecordDict enflammé.

Type renvoyé:

RecordDict

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 metric_records: TypedDict[str, MetricRecord]

Dictionnaire contenant uniquement des instances MetricRecord.

property metrics_records: TypedDict[str, MetricRecord]

Propriété dépréciée.

Utilisez metric_records à la place.

property object_id: str

Récupérez l’ID d’objet.

property parameters_records: TypedDict[str, ArrayRecord]

Propriété dépréciée.

Utilisez array_records à la place.

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.