View source on GitHub
|
Libraries for building federated learning algorithms.
Currently, tff.learning provides a few types of functionality.
- Algorithmic building blocks (see
tff.learning.templates) for constructing federated learning algorithms. These are algorithms centered around the client work, server work, broadcast, or aggregation steps of a federated algorithms, and are intended to compose in a somewhat modular fashion. - End-to-end federated learning algorithms (such as
tff.learning.algorithms.build_weighted_fed_avg) that combine broadcast, client work, aggregation, and server update logic into a single algorithm (often by composing the building blocks discussed above). This library also provides end-to-end algorithms for federated evaluation (seetff.learning.build_federated_evaluation). - Functionality supporting the development of the algorithms above. This
includes
tff.learning.optimizers,tff.learning.metricsand recommended aggregators, such astff.learning.robust_aggregator.
The library also contains classes of models that are used for the purposes of
model training. See tff.learning.models.VariableModel for the overall base
class, and
tff.learning.models for related model classes.
Modules
algorithms module: Libraries providing implementations of federated learning algorithms.
metrics module: Libraries for working with metrics in federated learning algorithms.
models module: Libraries for working with models in federated learning algorithms.
optimizers module: Libraries for optimization algorithms.
programs module: Package of methods for compositional federated program logic.
templates module: Libraries of specialized processes used for building learning algorithms.
Classes
class ClientWeighting: Enum for built-in methods for weighing clients.
class LoopImplementation: An enum to specify which implementation of the training loop to use.
Functions
add_debug_measurements(...): Adds measurements suitable for debugging learning processes.
add_debug_measurements_with_mixed_dtype(...): Adds measurements suitable for debugging learning processes.
compression_aggregator(...): Creates aggregator with compression and adaptive zeroing and clipping.
ddp_secure_aggregator(...): Creates aggregator with adaptive zeroing and distributed DP.
dp_aggregator(...): Creates aggregator with adaptive zeroing and differential privacy.
robust_aggregator(...): Creates aggregator for mean with adaptive zeroing and clipping.
secure_aggregator(...): Creates secure aggregator with adaptive zeroing and clipping.
View source on GitHub