Skip to content

Releases: google-parfait/tensorflow-federated

TensorFlow Federated 0.18.0

01 Feb 21:06
Compare
Choose a tag to compare
Pre-release

Release 0.18.0

Major Features and Improvements

  • Extended the tff.simulation package to add many new tools for running
    simulations (checkpoints and metrics managers, client sampling functions).
  • Extended the tff.aggregators package with a number of new aggregation
    factories.
  • Added the tff.structure API to expose the Struct class and related
    functions.
  • Added the tff.profiler API to expose useful profiling related functions.
  • Added the tff.backends.test package to expose backends that focused on
    testing specifically a way to test a computation with a
    federated_secure_sum intrinsic.
  • Added the tff.experimental package to expose less stable API.

Breaking Changes

  • Replaced the tff.aggregators.AggregationProcessFactory abstract base class
    with the tff.aggregators.UnweightedAggregationFactory and the
    tff.aggregators.WeightedAggregationFactory classes.
  • Replaced the tff.aggregators.ZeroingFactory class with a
    tff.aggregators.zeroing_factory function with the same input arguments.
  • Replaced the tff.aggregators.ClippingFactory class with a
    tff.aggregators.clipping_factory function with the same input arguments.
  • Updated tensorflow package dependency to 2.4.0.
  • Updated absl-py package dependency to 0.10.
  • Updated grpcio package dependency to 1.32.0.
  • Added a jaxlib package dependency at 0.1.55.
  • Updated numpy package dependency to 1.19.2.
  • Updated tensorflow-addons package dependency to 0.12.0.
  • Updated tensorflow-model-optimization package dependency to 0.5.0.

Bug Fixes

  • Fixed issue with the sequence_reduce intrinsic handling federated types.

TensorFlow Federated 0.17.0

27 Oct 17:38
Compare
Choose a tag to compare
Pre-release

Major Features and Improvements

  • New tff.aggregators package with interfaces for stateful aggregation
    compositions.
  • New Google Landmark Dataset tff.simulations.dataset.gldv2
  • New convenience APIs tff.type_clients and tff.type_at_server
  • Invert control of computation tracing methods to produce clearer Python
    stack traces on error.
  • Move executor creation to a factory pattern in executor service, allowing
    distributed runtimes to be agnostic to number of clients.
  • Significant improvements of type serialization/deserialization
  • New tff.simulations.compose_dataset_computation_with_iterative_process API
    to move execution of client dataset construction to executor stack leaves.
  • Extend parameterization of tff.learning.build_federated_averaging_process
    with use_experimental_simulation_loop argument to better utilize multi-GPU
    setups.

Breaking Changes

  • Removed tff.utils.StatefulFn, replaced by tff.templates.MeasuredProcess.
  • Removed tff.learning.assign_weights_to_keras_model
  • Stop removing OptimizeDataset ops from tff.tf_computations.
  • The research/ directory has been moved to
    http://github.com/google-research/federated.
  • Updates to input_spec argument for tff.learning.from_keras_model.
  • Updated TensorFlow dependency to 2.3.0.
  • Updated TensorFlow Model Optimization dependency to 0.4.0.

Bug Fixes

  • Fixed streaming mode hang in remote executor.
  • Wrap collections.namedtuple._asdict calls in collections.OrderedDict to
    support Python 3.8.
  • Correctly serialize/deserialize tff.TensorType with unknown shapes.
  • Cleanup TF lookup HashTable resources in TFF execution.
  • Fix bug in Shakespeare dataset where OOV and last vocab character were the
    same.
  • Fix TFF ingestion of Keras models with shared embeddings.
  • Closed hole in compilation to CanonicalForm.

Known Bugs

Thanks to our Contributors

This release contains contributions from many people at Google, as well as:

@amitport, @ronaldseoh

TensorFlow Federated 0.16.1

29 Jul 00:57
Compare
Choose a tag to compare
Pre-release

Release 0.16.1

Bug Fixes

  • Fixed issue preventing Python lists being all_equal values.

TensorFlow Federated 0.16.0

28 Jul 20:30
Compare
Choose a tag to compare
Pre-release

Release 0.16.0

Major Features and Improvements

  • Mirrored user-provided types and minimize usage of AnonymousTuple.

Breaking Changes

  • Renamed AnonymousTuple to Struct.

TensorFlow Federated 0.15.0

16 Jul 21:20
Compare
Choose a tag to compare
Pre-release

Release 0.15.0

Major Features and Improvements

  • Updated tensorflow-addons package dependency to 0.9.0.
  • Added API to expose the native backend more conveniently. See
    tff.backends.native.* for more information.
  • Added a compiler argument to the tff.framework.ExecutionContext API and
    provided a compiler for the native execution environment, which improves
    TFF’s default concurrency pattern.
  • Introduced a new tff.templates.MeasuredProcess concept, a specialization
    of tff.templates.IterativeProcess.
  • Extends tff.learning interfaces to accept tff.templates.MeasuredProcess
    objects for aggregation and broadcast computations.
  • Introduce new convenience method tff.learning.weights_type_from_model.
  • Introduced the concept of a tff.framework.FederatingStrategy, which
    parameterizes the tff.framework.FederatingExecutor so that the
    implementation of a specific intrinsic is easier to provide.
  • Reduced duplication in TFF’s generated ASTs.
  • Enabled usage of GPUs on remote workers.
  • Documentation improvements.

Breaking Changes

  • The IterativeProcess return from
    tff.learning.build_federated_averaging_process and
    tff.learning.build_federated_sgd_process now zip the second tuple output
    (the metrics) to change the result from a structure of federated values to
    to a federated structure of values.
  • Removed tff.framework.set_default_executor function, instead you should
    use the more convenient tff.backends.native.set_local_execution_context
    function or manually construct a context an set it using
    tff.framework.set_default_context.
  • The tff.Computation base class now contains an abstract __hash__ method,
    to ensure compilation results can be cached. Any custom implementations of
    this interface should be updated accordingly.

Bug Fixes

  • Fixed issue for missing variable initialization for variables explicitly not
    added to any collections.
  • Fixed issue where table initializers were not run if the
    tff.tf_computation decorated function used no variables.

Thanks to our Contributors

This release contains contributions from many people at Google, as well as:

jvmcns@

TensorFlow-Federated 0.14.0

18 May 23:19
Compare
Choose a tag to compare
Pre-release

Release 0.14.0

Major Features and Improvements

  • Multiple TFF execution speedups.
  • New tff.templates.MeasuredProcess specialization of IterativeProcess.
  • Increased optimization of the tff.templates.IterativeProcess ->
    tff.backends.mapreduce.CanonicalForm compiler.

Breaking Changes

  • Moved tff.utils.IterativeProcess to tff.templates.IterativeProcess.
  • Removed tff.learning.TrainableModel, client optimizers are now arguments
    on the tff.learning.build_federated_averaging_process.
  • Bump required version of pip packages for tensorflow (2.2), numpy (1.18),
    pandas (0.24), grpcio (1.29).

Bug Fixes

  • Issue with GPUs in multimachine simulations not being utilized, and bug on
    deserializing datasets with GPU-backed runtime.
  • TensorFlow lookup table initialization failures.

Known Bugs

  • In some situations, TF will attempt to push Datasets inside of tf.functions
    over GPU device boundaries, which fails by default. This can be hit by
    certain usages of TFF,
    e.g. as tracked here.

Thanks to our Contributors

This release contains contributions from many people at Google, as well as:

jvmcns@

TensorFlow Federated 0.13.1

17 Mar 00:57
Compare
Choose a tag to compare
Pre-release

Release 0.13.1

Bug Fixes

  • Fixed issues in tutorial notebooks.

TensorFlow Federated 0.13.0

16 Mar 23:40
Compare
Choose a tag to compare
Pre-release

Release 0.13.0

Major Features and Improvements

  • Updated absl-py package dependency to 0.9.0.
  • Updated h5py package dependency to 2.8.0.
  • Updated numpy package dependency to 1.17.5.
  • Updated tensorflow-privacy package dependency to 0.2.2.

Breaking Changes

  • Deprecated dummy_batch parameter of the tff.learning.from_keras_model
    function.

Bug Fixes

  • Fixed issues with executor service using old executor API.
  • Fixed issues with remote executor test using old executor API.
  • Fixed issues in tutorial notebooks.

TensorFlow Federated 0.12.0

12 Feb 21:05
Compare
Choose a tag to compare
Pre-release

Release 0.12.0

Major Features and Improvements

  • Upgraded tensorflow dependency from 2.0.0 to 2.1.0.
  • Upgraded tensorflow-addons dependency from 0.6.0 to 0.7.0.
  • Upgraded attr dependency from 18.2 to 19.3.
  • Upgraded tfmot dependency from 0.1.3 to 0.2.1.
  • Added a federated partition of the CIFAR-100 dataset to
    tff.simulation.datasets.cifar100.
  • Made the high performance, parallel executor the default (replacing the
    reference executor).
  • Added a new tff.learning.build_personalization_eval for evaluating model
    personalization strategies.
  • Added new federated intrinsic tff.federated_secure_sum.
  • tff.learning.build_federated_averaing_process() now takes a
    client_optimizer_fn and a tff.learning.Model.
    tff.learning.TrainableModel is now deprecated.
  • Improved performance in the high performance executor stack.
  • Implemented and exposed tff.framework.ExecutorFactory; all
    tff.framework...executor_factory calls now return an instance of this
    class.
  • Added remote_executor_example binary which demonstrates using the
    RemoteExecutor across multi-machine deployments.
  • Added close() method to the Executor, allowing subclasses to proactively
    release resources.
  • Updated documentation and scripts for creating Docker images of the TFF
    runtime.
  • Automatically call tff.federated_zip on inputs to other federated
    intrinsics.

Breaking Changes

  • Dropped support for Python2.
  • Renamed tff.framework.create_local_executor (and similar methods) to
    tff.framework.local_executor_factory.
  • Deprecated federated_apply(), instead use federated_map() for all
    placements.

Bug Fixes

  • Fixed problem with different instances of the same model having different
    named types. tff.learning.ModelWeights no longer names the tuple fields
    returned for model weights, instead relying on an ordered list.
  • tff.sequence_* on unplaced types now correctly returns a tff.Value.

Known Bugs

  • tff.sequence_*.. operations are not implemented yet on the new
    high-performance executor stack.
  • A subset of previously-allowed lambda captures are no longer supported on
    the new execution stack.

Tensorflow Federated 0.11.0

26 Nov 22:55
Compare
Choose a tag to compare
Pre-release

Major Features and Improvements

  • Python 2 support is now deprecated and will be removed in a future release.
  • federated_map now works with both tff.SERVER and tff.CLIENT
    placements.
  • federated_zip received significant performance improvements and now works
    recursively.
  • Added retry logic to gRPC calls in the execution stack.

Breaking Changes

  • collections.OrderedDict is now required in many places rather than
    standard Python dictionaries.

Bug Fixes

  • Fixed computation of the number of examples when Keras is using multiple
    inputs.
  • Fixed an assumption that tff.framework.Tuple is returned from
    IterativeProcess.next.
  • Fixed argument packing in polymorphic invocations on the new executor API.
  • Fixed support for dir() in ValueImpl.
  • Fixed a number of issues in the Colab / Jupyter notebook tutorials.