|View source on GitHub|
tff.utils.IterativeProcess for Federated Averaging or SGD.
tff.learning.framework.build_model_delta_optimizer_process( model_fn, model_to_client_delta_fn, server_optimizer_fn, stateful_delta_aggregate_fn=build_stateless_mean(), stateful_model_broadcast_fn=build_stateless_broadcaster() )
This provides the TFF orchestration logic connecting the common server logic
which applies aggregated model deltas to the server model with a
ClientDeltaFn that specifies how
weight_deltas are computed on device.
model_fn: A no-arg function that returns a
model_to_client_delta_fn: A function from a
server_optimizer_fn: A no-arg function that returns a
apply_gradientsmethod of this optimizer is used to apply client updates to the server model.
next_fnperforms a federated aggregation and upates state. That is, it has TFF type
(state@SERVER, value@CLIENTS, weights@CLIENTS) -> (state@SERVER, aggregate@SERVER), where the
tff.learning.framework.ModelWeights.trainablecorresponding to the object returned by
next_fnperforms a federated broadcast and upates state. That is, it has TFF type
(state@SERVER, value@SERVER) -> (state@SERVER, value@CLIENTS), where the
tff.learning.framework.ModelWeightscorresponding to the object returned by