컨피그 레코드

class ConfigsRecord(configs_dict: dict[str, int | float | str | bytes | bool | list[int] | list[float] | list[str] | list[bytes] | list[bool]] | None = None, keep_input: bool = True)[소스]

기반 클래스: TypedDict[str, int | float | str | bytes | bool | list[int] | list[float] | list[str] | list[bytes] | list[bool]]

레코드를 설정합니다.

A ConfigsRecord is a Python dictionary designed to ensure that each key-value pair adheres to specified data types. A ConfigsRecord is one of the types of records that a flwr.common.RecordSet supports and can therefore be used to construct common.Message objects.

매개변수:
  • configs_dict (Optional[Dict[str, ConfigsRecordValues]]) – A dictionary that stores basic types (i.e. str, int, float, bytes as defined in ConfigsScalar) and lists of such types (see ConfigsScalarList).

  • keep_input (bool (default: True)) – A boolean indicating whether config passed should be deleted from the input dictionary immediately after adding them to the record. When set to True, the data is duplicated in memory. If memory is a concern, set it to False.

예제

The usage of a ConfigsRecord is envisioned for sending configuration values telling the target node how to perform a certain action (e.g. train/evaluate a model ). You can use standard Python built-in types such as float, str , bytes. All types allowed are defined in flwr.common.ConfigsRecordValues. While lists are supported, we encourage you to use a ParametersRecord instead if these are of high dimensionality.

Let’s see some examples of how to construct a ConfigsRecord from scratch:

>>> from flwr.common import ConfigsRecord
>>>
>>> # A `ConfigsRecord` is a specialized Python dictionary
>>> record = ConfigsRecord({"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"

Just like the other types of records in a flwr.common.RecordSet, types are enforced. If you need to add a custom data structure or object, we recommend to serialise it into bytes and save it as such (bytes are allowed in a ConfigsRecord)

메소드

clear()

count_bytes()

이 객체에 저장된 바이트 수를 반환합니다.

get(k[,d])

items()

keys()

pop(k[,d])

키를 찾을 수 없으면 주어진 경우 d가 반환되고, 그렇지 않으면 KeyError가 발생합니다.

popitem()

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[,d])

update([E, ]**F)

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values()

clear() None.  Remove all items from D.
count_bytes() int[소스]

이 객체에 저장된 바이트 수를 반환합니다.

이 함수는 booleans을 1바이트를 차지하는 것으로 계산합니다.

get(k[, d]) D[k] if k in D, else d.  d defaults to None.
items() a set-like object providing a view on D's items.
keys() a set-like object providing a view on D's keys.
pop(k[, d]) v, remove specified key and return the corresponding value.

키를 찾을 수 없으면 주어진 경우 d가 반환되고, 그렇지 않으면 KeyError가 발생합니다.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

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.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values.