tff.backends.mapreduce.DistributeAggregateForm

Standard representation of logic deployable to a federated learning system.

Inherits From: TypedObject

This class docstring describes the purpose of DistributeAggregateForm as a data structure. For a discussion of how an instance of DistributeAggregateForm maps to a single federated round, see the package- level docstring.

This standardized representation can be used to describe a range of computations that constitute one round of processing in a federated learning system such as the one described in the following paper:

"Towards Federated Learning at Scale: System Design" https://arxiv.org/pdf/1902.01046.pdf

It should be noted that not every computation that proceeds in synchronous rounds is representable as an instance of this class. In particular, this representation is not suitable for computations that involve multiple back- and-forths between the server and clients.

Each of the variable constituents of the form are TFF Lambda Computations (as defined in computation.proto). Systems that cannot run TFF directly can convert these TFF Lambda Computations into TensorFlow code using TFF helper functions. Generally this class will not be instantiated by a programmer directly but instead targeted by a sequence of transformations that take a tff.Computation and produce the appropriate pieces of logic.

type_signature The type signature of the corresponding tff.Computation that is equivalent to the pieces of logic encoded in this data structure.
server_prepare The computation that prepares the input for the clients and computes intermediate server state that will be needed in later stages.
server_to_client_broadcast The computation that represents broadcasting data from the server to the clients.
client_work The client-side work computation.
client_to_server_aggregation The computation that aggregates the client results at the server, potentially using intermediate state generated by the server_prepare phase.
server_result The computation that combines the aggregated client results, the intermediate state, and the original server state for the round to produce the new server state as well as server-side output.

client_to_server_aggregation

client_work

server_prepare

server_result

server_to_client_broadcast

type_signature Returns the TFF type of the equivalent tff.Computation.

Methods

summary

View source

Prints a string summary of the DistributeAggregateForm.

Args
print_fn Print function to use. It will be called on each line of the summary in order to capture the string summary.