TensorFlow Federated 0.12.0
Pre-release
Pre-release
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.