Save the date! Google I/O returns May 18-20 Register now


Creates an aggregation factory to perform L2 clipping.

Used in the notebooks

Used in the tutorials

The created tff.templates.AggregationProcess projects the values onto an L2 ball (also referred to as "clipping") with norm determined by the provided clipping_norm, before aggregating the values as specified by inner_agg_factory.

The provided clipping_norm can either be a constant (for fixed norm), or an instance of tff.templates.EstimationProcess (for adaptive norm). If it is an estimation process, the value returned by its report method will be used as the clipping norm. Its next method needs to accept a scalar float32 at clients, corresponding to the norm of value being aggregated. The process can thus adaptively determine the clipping norm based on the set of aggregated values. For example if a tff.aggregators.PrivateQuantileEstimationProcess is used, the clip will be an estimate of a quantile of the norms of the values being aggregated.

The returned AggregationFactory takes its weightedness (UnweightedAggregationFactory vs. WeightedAggregationFactory) from inner_agg_factory.

clipping_norm Either a float (for fixed norm) or an EstimationProcess (for adaptive norm) that specifies the norm over which the values should be clipped.
inner_agg_factory A factory specifying the type of aggregation to be done after clipping.

An aggregation factory to perform L2 clipping.