tff.aggregators.federated_sample

Aggregation to produce uniform sample of at most max_num_samples values.

Each client value is assigned a random number when it is examined during each accumulation. Each accumulate and merge only keeps the top N values based on the random number. Report drops the random numbers and only returns the at most N values sampled from the accumulated client values using standard reservoir sampling (https://en.wikipedia.org/wiki/Reservoir_sampling), where N is user provided max_num_samples.

value A tff.Value placed on the tff.CLIENTS.
max_num_samples The maximum number of samples to collect from client values. If fewer clients than the defined max sample size participated in the round of computation, the actual number of samples will equal the number of clients in the round.

At most max_num_samples samples of the value from the tff.CLIENTS.