Returns a tff.templates.IterativeProcess for Federated Reconstruction. On
the client, computation can be divided into two stages: (1) reconstruction of
local variables and (2) training of global variables.
A no-arg function that returns a
tff.learning.reconstruction.Model. 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
compute local model updates during reconstruction and post-reconstruction
and evaluate the model during training. The final loss metric is the
example-weighted mean loss across batches and across clients. The loss
metric does not include reconstruction batches in the loss.
A no-arg function returning a list of tf.keras.metrics.Metrics
to evaluate the model. Metrics results are computed locally as described
by the metric, and are aggregated across clients as in
federated_aggregate_keras_metric. If None, no metrics are applied.
Metrics are not computed on reconstruction batches.
A reconstruction_utils.DatasetSplitFn taking in a single
TF dataset and producing two TF datasets. The first is iterated over
during reconstruction, and the second is iterated over
post-reconstruction. This can be used to preprocess datasets to e.g.
iterate over them for multiple epochs or use disjoint data for
reconstruction and post-reconstruction. If None, split client data in half
for each user, using one half for reconstruction and the other for
evaluation. See reconstruction_utils.build_dataset_split_fn for options.
A value of tff.learning.ClientWeighting that specifies a
built-in weighting method, or a callable that takes the local metrics of
the model and returns a tensor that provides the weight in the federated
average of model deltas. If None, defaults to weighting by number of
A tff.templates.MeasuredProcess that broadcasts the
model weights on the server to the clients. It must support the signature
(input_values@SERVER -> output_values@CLIENT). If set to default None,
the server model is broadcast to the clients using the default