TensorFlow Federated v0.20.0
Pre-release
Pre-release
Release 0.20.0
Major Features and Improvements
- Added
tff.programAPI; this API is still in active development but can be
used to compose shared and platform specific: program logic, components, and
privacy concepts to create federated programs. - Added support for Python 3.9.
- Added CelebA and iNaturalist datasets to
tff.simulation.datasets. - Added
tff.analyticsAPI for federated analytics, including private heavy
hitters algorithms. - Added
tff.learning.algorithmsAPI, including TFF implementations of
FedProx, FedAvg with learning rate scheduling, federated k-Means, and
MimeLite. - Added
tff.learning.metricsAPI to support easy configuration of
cross-client metrics aggregation via the newmetrics_aggregatorargument. - Added
metrics_aggregatorargument to
tff.learning.build_federated_averaging_processand
tff.learning.build_federated_evaluation. - Added
report_local_unfinalized_metricsandmetric_finalizersmethods to
tff.learning.Modeland deprecatedreport_local_outputsand
federated_output_computation. - Added
tff.learning.optimizersAPI for building purely functional
optimizers and implementations of SGD, Adagrad, Rmsprop, Adam, Yogi, - Added
tff.learning.reconstructionAPI for building partially local
federated learning algorithms, including Federated Reconstruction. - Added
tff.learning.templatesAPI to support building learning algorithms
in a modular fashion. - Added
tff.simulation.baselinesAPI to support evaluating learning
algorithms on a suite of representative tasks. - Added
tff.aggregators.DifferentiallyPrivateFactory.tree_aggregationto
support the DP-FTRL algorithm. - Added
tff.aggrgators.SecureModularSumFactory - Added
tff.aggregators.DiscreteFourierTransformFactoryand
tff.aggregators.HadamardTransformFactoryto support rotation-based
aggregators. - Added
tff.aggregators.concat_factoryfor aggregating structures as a
single tensor. - Added
tff.backends.native.create_mergeable_comp_execution_context,
tff.backends.native.set_mergeable_comp_execution_context; these can be
used with a distributed runtime to scale to tens of thousands of clients. - Improved performance of many
tff.simulation.datasets.ClientData
subclasses. - Added
tff.simulation.datasets.ClientData.serializable_dataset_fn
attribute, enabling dataset creation within TF/TFF computations. - Added
debug_measurementsoption to aggregators intff.learning. - Added support for unambiguous zero-client aggregations.
- Added support for Python dataclasses as function parameters and return
values for TFF computations. - Added automatic insertion of
tff.federated_zipto invocation of
user-defined TFF federated computations. - Added utilities to
tff.simulation.datasetsfor saving federated datasets
to a SQL database compatible withtff.simulation.datasets.SqlClientData. - Added
tff.learning.models.FunctionalModeland
tff.learning.models.functional_model_from_keras. - Increased max flow of tensors. Tensors now flow here, there, and everywhere.
- Updated the Python dependencies:
- Updated
absl-pyto version1.0.0. - Updated
attrsto version21.2.0. - Added
farmhashpyversion0.4.0. - Updated
jaxto version0.2.27. - Updated
jaxlibto version0.1.76. - Updated
numpyto version1.21.4. - Removed
retrying. - Updated
tensorflow-model-optimizationto version0.7.1. - Updated
tensorflow-model-optimizationto version0.7.3. - Updated
tensorflowto version2.8.0. - Added support for building many dependencies including
tensorflowusing
Bazel. - Updated the Bazel dependencies:
- Updated
rules_pythonto version0.5.0. - Updated
com_google_protobufto versionv3.18.0-rc1. - Added
absl_pyversion1.0.0. - Added
com_google_googletestversionrelease-1.11.0. - Added
io_bazel_rules_goversionv0.29.0. - Added
bazel_skylibversion1.0.3. - Added
pybind11_abseil. - Added
pybind11_bazel. - Added
pybind11_protobuf. - Added
com_google_abslversion20211102.0. - Added
tensorflow_orgversionv2.8.0.
Breaking Changes
- Removed support for building source on MacOS.
- Removed support for Python 3.6.
- Removed symbol
tff.framework.type_contains, usetff.types.contains
instead. - Removed many symbols from
tff.simulation, these can be found in
tff.programinstead. - Removed support for converting non-OrderedDict mapping types to
tff.Values. - Removed
tff.simulation.datasets.ClientData.from_clients_and_fnin favor of
tff.simulation.datasets.ClientData.from_clients_and_tf_fn. - Restricted
tff.simulation.datasets.ClientData.preprocessto only support
TF-serializable functions. - Removed
tff.backends.reference, and the reference context it contained. - Removed
tff.learning.build_federated_sgd_processin favor of
tff.learning.algorithms.build_fed_sgd. - Removed
tff.simulation.run_simulationin favor of
tff.simulation.run_training_process. - Removed
tff.learning.framework.EnhancedModel. - Removed
tff.learning.framework.build_stateless_mean.
Bug Fixes
- Fixed broken links in documentation.
- Fixed many pytype errors.
- Fixed some inconsistencies in Bazel visibility.
- Fixed bug where
tff.simulation.datasets.gldv2.load_data()would result in
an error.