View source on GitHub |
Standard representation of logic deployable to a federated learning system.
Inherits From: TypedObject
tff.backends.mapreduce.DistributeAggregateForm(
type_signature: tff.types.FunctionType
,
server_prepare: tff.framework.ConcreteComputation
,
server_to_client_broadcast: tff.framework.ConcreteComputation
,
client_work: tff.framework.ConcreteComputation
,
client_to_server_aggregation: tff.framework.ConcreteComputation
,
server_result: tff.framework.ConcreteComputation
)
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.
Args | |
---|---|
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 and the intermediate state for the round to produce the new server state as well as server-side output. |
Attributes | |
---|---|
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
summary(
print_fn: Callable[..., None] = print
) -> None
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. |