Releases: google-parfait/tensorflow-federated
Releases · google-parfait/tensorflow-federated
TensorFlow Federated 0.18.0
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 theStruct
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 thetff.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 to2.4.0
. - Updated
absl-py
package dependency to0.10
. - Updated
grpcio
package dependency to1.32.0
. - Added a
jaxlib
package dependency at0.1.55
. - Updated
numpy
package dependency to1.19.2
. - Updated
tensorflow-addons
package dependency to0.12.0
. - Updated
tensorflow-model-optimization
package dependency to0.5.0
.
Bug Fixes
- Fixed issue with the
sequence_reduce
intrinsic handling federated types.
TensorFlow Federated 0.17.0
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
andtff.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
withuse_experimental_simulation_loop
argument to better utilize multi-GPU
setups.
Breaking Changes
- Removed
tff.utils.StatefulFn
, replaced bytff.templates.MeasuredProcess
. - Removed
tff.learning.assign_weights_to_keras_model
- Stop removing
OptimizeDataset
ops fromtff.tf_computation
s. - The
research/
directory has been moved to
http://github.com/google-research/federated. - Updates to
input_spec
argument fortff.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 incollections.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
- "Federated Learning for Image Classification" tutorial fails to load
projector
plugin for tensorboard (https://github.com/tensorflow/federated/issues/914). - Certain Keras models with activity regularization fail in execution with
unliftable error (https://github.com/tensorflow/federated/issues/913).
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
TensorFlow Federated 0.16.1
Release 0.16.1
Bug Fixes
- Fixed issue preventing Python
list
s beingall_equal
values.
TensorFlow Federated 0.16.0
Release 0.16.0
Major Features and Improvements
- Mirrored user-provided types and minimize usage of
AnonymousTuple
.
Breaking Changes
- Renamed
AnonymousTuple
toStruct
.
TensorFlow Federated 0.15.0
Release 0.15.0
Major Features and Improvements
- Updated
tensorflow-addons
package dependency to0.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
oftff.templates.IterativeProcess
. - Extends
tff.learning
interfaces to accepttff.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 thetff.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 convenienttff.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
Release 0.14.0
Major Features and Improvements
- Multiple TFF execution speedups.
- New
tff.templates.MeasuredProcess
specialization ofIterativeProcess
. - Increased optimization of the
tff.templates.IterativeProcess
->
tff.backends.mapreduce.CanonicalForm
compiler.
Breaking Changes
- Moved
tff.utils.IterativeProcess
totff.templates.IterativeProcess
. - Removed
tff.learning.TrainableModel
, client optimizers are now arguments
on thetff.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
Release 0.13.1
Bug Fixes
- Fixed issues in tutorial notebooks.
TensorFlow Federated 0.13.0
Release 0.13.0
Major Features and Improvements
- Updated
absl-py
package dependency to0.9.0
. - Updated
h5py
package dependency to2.8.0
. - Updated
numpy
package dependency to1.17.5
. - Updated
tensorflow-privacy
package dependency to0.2.2
.
Breaking Changes
- Deprecated
dummy_batch
parameter of thetff.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
Release 0.12.0
Major Features and Improvements
- Upgraded tensorflow dependency from
2.0.0
to2.1.0
. - Upgraded tensorflow-addons dependency from
0.6.0
to0.7.0
. - Upgraded attr dependency from
18.2
to19.3
. - Upgraded tfmot dependency from
0.1.3
to0.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 atff.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 usefederated_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 atff.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
Major Features and Improvements
- Python 2 support is now deprecated and will be removed in a future release.
federated_map
now works with bothtff.SERVER
andtff.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()
inValueImpl
. - Fixed a number of issues in the Colab / Jupyter notebook tutorials.