View source on GitHub |
Computes a sum at tff.SERVER
of a value
placed on the tff.CLIENTS
.
tff.federated_secure_sum_bitwidth(
value, bitwidth
)
This function computes a sum such that it should not be possible for the server to learn any clients individual value. The specific algorithm and mechanism used to compute the secure sum may vary depending on the target runtime environment the computation is compiled for or executed on. See https://research.google/pubs/pub47246/ for more information.
Not all executors support tff.federated_secure_sum_bitwidth()
; consult the
documentation for the specific executor or executor stack you plan on using
for the specific of how it's handled by that executor.
The bitwidth
argument represents the bitwidth of the aggregand, that is the
bitwidth of the input value
. The federated secure sum bitwidth (i.e., the
bitwidth of the sum of the input value
s over all clients) will be a
function of this bitwidth and the number of participating clients.
Example:
value = tff.federated_value(1, tff.CLIENTS)
result = tff.federated_secure_sum_bitwidth(value, 2)
value = tff.federated_value([1, 1], tff.CLIENTS)
result = tff.federated_secure_sum_bitwidth(value, [2, 4])
value = tff.federated_value([1, [1, 1]], tff.CLIENTS)
result = tff.federated_secure_sum_bitwidth(value, [2, [4, 8]])
Args | |
---|---|
value
|
An integer value of a TFF federated type placed at the tff.CLIENTS ,
in the range [0, 2^bitwidth - 1].
|
bitwidth
|
An integer or nested structure of integers matching the structure
of value . If integer bitwidth is used with a nested value , the same
integer is used for each tensor in value .
|
Returns | |
---|---|
A representation of the sum of the member constituents of value placed
on the tff.SERVER .
|
Raises | |
---|---|
TypeError
|
If the argument is not a federated TFF value placed at
tff.CLIENTS .
|