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.metrics
and 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.