tff.Computation for evaluating a reconstruction
metrics_fn: Optional[fed_recon.MetricsFn] = None,
reconstruction_optimizer_fn: fed_recon.OptimizerFn = functools.partial(tf.keras.optimizers.SGD, learning_rate=0.1),
tff.learning.models.ReconstructionDatasetSplitFn] = None,
tff.learning.templates.DistributionProcess] = None,
tff.templates.AggregationProcess] = None
Used in the notebooks
The returned computation proceeds in two stages: (1) reconstruction and (2)
evaluation. During the reconstruction stage, local variables are reconstructed
by freezing global variables and training using
During the evaluation stage, the reconstructed local variables and global
variables are evaluated using the provided
Usage of returned computation:
eval_comp = build_federated_evaluation(...)
metrics = eval_comp(
A no-arg function that returns a
tff.learning.models.ReconstructionModel. This method must not capture
Tensorflow tensors or variables and use them. Must be constructed entirely
from scratch on each invocation, returning the same pre-constructed model
each call will result in an error.
A no-arg function returning a
tf.keras.losses.Loss to use to
reconstruct and evaluate the model. The loss will be applied to the
model's outputs during the evaluation stage. The final loss metric is the
example-weighted mean loss across batches (and across clients).
A no-arg function returning a list of
to evaluate the model. The metrics will be applied to the model's outputs
during the evaluation stage. Final metric values are the example-weighted
mean of metric values across batches (and across clients). If None, no
metrics are applied.
tff.learning.optimizers.Optimizer, or a
no-arg function that returns a
tf.keras.optimizers.Optimizer used to
reconstruct the local variables with the global ones frozen.
taking in a single TF dataset and producing two TF datasets. The first is
iterated over during reconstruction, and the second is iterated over
during evaluation. This can be used to preprocess datasets to e.g. iterate
over them for multiple epochs or use disjoint data for reconstruction and
evaluation. If None, split client data in half for each user, using one
half for reconstruction and the other for evaluation. See
that distributes the model weights on the server to the clients. If set to
None, the distributor is constructed via
which aggregates the local unfinalized metrics at clients to server and
finalizes the metrics at server. The
accumulates unfinalized metrics across round in the state, and produces a
tuple of current round metrics and total rounds metrics in the result.
tff.templates.AggregationProcess created by the
SumThenFinalizeFactory with metric finalizers defined in the model is
model_distributor does not have the expected signature.