Пример #1
0
 def _sum_securely(self, value, upper_bound, lower_bound):
     """Securely sums `value` placed at CLIENTS."""
     if self._config_mode == _Config.INT:
         value = intrinsics.federated_map(
             _client_shift,
             (value, intrinsics.federated_broadcast(upper_bound),
              intrinsics.federated_broadcast(lower_bound)))
         value = intrinsics.federated_secure_sum(value,
                                                 self._secagg_bitwidth)
         num_summands = intrinsics.federated_sum(_client_one())
         value = intrinsics.federated_map(
             _server_shift, (value, lower_bound, num_summands))
         return value
     elif self._config_mode == _Config.FLOAT:
         return federated_aggregations.secure_quantized_sum(
             value, lower_bound, upper_bound)
     else:
         raise ValueError(
             f'Unexpected internal config type: {self._config_mode}')
Пример #2
0
 def call_secure_sum(value, lower_bound, upper_bound):
     with _hijack_federated_secure_sum():
         summed_value = federated_aggregations.secure_quantized_sum(
             value, lower_bound, upper_bound)
     return summed_value
Пример #3
0
 def call_secure_sum(value):  # pylint: disable=unused-variable
     lower_bound = intrinsics.federated_value(0, placements.CLIENTS)
     upper_bound = intrinsics.federated_value(1, placements.CLIENTS)
     summed_value = federated_aggregations.secure_quantized_sum(
         value, lower_bound, upper_bound)
     return summed_value
Пример #4
0
 def comp_tff_bounds(value, upper_bound, lower_bound):
     return federated_aggregations.secure_quantized_sum(
         value, upper_bound, lower_bound)
Пример #5
0
 def comp_py_bounds(value):
     return federated_aggregations.secure_quantized_sum(
         value, np.array(-1.0, dtype.as_numpy_dtype),
         np.array(1.0, dtype.as_numpy_dtype))