Creates a ClientWorkProcess for federated averaging.

This differs from tff.learning.templates.build_model_delta_client_work in that it only accepts tff.learning.models.FunctionalModel and tff.learning.optimizers.Optimizer type arguments, resulting in TensorFlow graphs that do not contain tf.Variable operations.

model A tff.learning.models.FunctionalModel to train.
optimizer A tff.learning.optimizers.Optimizer to use for local, on-client optimization.
client_weighting A tff.learning.ClientWeighting value.
metrics_aggregator A function that takes in the metric finalizers (i.e., tff.learning.models.VariableModel.metric_finalizers()) and returns a tff.Computation for aggregating the unfinalized metrics. If None, this is set to tff.learning.metrics.sum_then_finalize.

A ClientWorkProcess.