Updates `AggregationProcess` docstring.
@@ -45,8 +45,9 @@ class AggregationProcess(measured_process.MeasuredProcess):
Compared to the `tff.templates.MeasuredProcess`, this class requires a second
input argument, which is a value placed at `CLIENTS` and to be aggregated.
- The `result` field of returned `tff.templates.MeasuredProcessOutput` must have
- type signature equal to this value, but placed at `SERVER`.
+ The `result` field of returned `tff.templates.MeasuredProcessOutput` must be
+ placed at `SERVER`, and does not necessarily need to have type signature equal
+ to the type signature of the second input argument.
The intended composition pattern for `tff.templates.AggregationProcess` is
that of nesting. An aggregation will broadly consist of three logical parts:
@@ -61,8 +62,9 @@ class AggregationProcess(measured_process.MeasuredProcess):
type signatures:
- initialize: `( -> S@SERVER)`
- next: `(<S@SERVER, V@CLIENTS, *> ->
- <state=S@SERVER, result=V@SERVER, measurements=M@SERVER>)`
- where `*` represents optional other arguments placed at `CLIENTS`.
+ <state=S@SERVER, result=V'@SERVER, measurements=M@SERVER>)`
+ where `*` represents optional other arguments placed at `CLIENTS`. This can be
+ used for weighted aggregation, where the third parameter is the weight.
"""
def __init__(self, initialize_fn: computation_base.Computation,
