Releases: google-parfait/tensorflow-federated
Releases · google-parfait/tensorflow-federated
TensorFlow Federated 0.88.0
Release 0.88.0
Added
tff.tensorflow.to_type.- Added
pack_args_into_structandunpack_args_from_structto the public
API underframework.
Deprecated
tff.types.tensorflow_to_type, usetff.tensorflow.to_typeinstead.
Changed
- Updated to use an environment-agnostic way to represent a sequence of data.
- Updated JAX computations and contexts to be able to handle sequence types.
- Moved
tff.types.structure_from_tensor_type_treeand
tff.types.type_to_tf_tensor_specsto thetff.tensorflowpackage.
Removed
tff.framework.merge_cardinalitiestff.framework.CardinalityCarryingtff.framework.CardinalityFreeDataDescriptortff.framework.CreateDataDescriptortff.framework.DataDescriptortff.framework.Ingestable
TensorFlow Federated 0.87.0
Release 0.87.0
Added
- Added an implementation of AdamW to
tff.learning.optimizers.
Changed
- Support
Nonegradients intff.learning.optimizers. This mimics the
behavior oftf.keras.optimizers- gradients that areNonewill be
skipped, and their corresponding optimizer output (e.g. momentum and
weights) will not be updated. - The behavior of
DPGroupingFederatedSum::Clamp: it now sets negatives to 0.
Associated test code has been updated. Reason: sensitivity calculation for
DP noise was calibrated for non-negative values. - Change tutorials to use
tff.learning.optimizersin conjunction with
tff.learningcomputations. tff.simulation.datasets.TestClientDataonly accepts dictionaries whose
leaf nodes are nottf.Tensors.
Fixed
- A bug where
tff.learning.optimizers.build_adafactorwould update its step
counter twice upon every invocation of.next(). - A bug where tensor learning rates for
tff.learning.optimizers.build_sgdm
would fail with mixed dtype gradients. - A bug where different optimizers had different behavior on empty weights
structures. TFF optimizers now consistently accept and function as no-ops on
empty weight structures. - A bug where
tff.simulation.datasets.TestClientData.dataset_computation
yielded datasets of indeterminate shape.
Removed
tff.jax_computation, usetff.jax.computationinstead.tff.profiler, this API is not used.- Removed various stale tutorials.
- Removed
structurefromtff.program.SavedModelFileReleaseManager's
get_valuemethod parameters. - Removed support for
tf.keras.optimizersintff.learning.
TensorFlow Federated 0.86.0
Release 0.86.0
Added
tff.tensorflow.transform_argsandtff.tensorflow.transform_result, these
functions are intended to be used when instantiating and execution context
in a TensorFlow environment.
Changed
- Replaced the
tensoron theValueprotobuf with anarrayfield and
updated the serialization logic to use this new field.
TensorFlow Federated 0.85.0
Release 0.85.0
Added
- The
dp_noise_mechanismsheader and source files: contains functions that
generatedifferential_privacy::LaplaceMechanismor
differential_privacy::GaussianMechanism, based upon privacy parameters and
norm bounds. Each of these functions return aDPHistogramBundlestruct,
which contains the mechanism, the threshold needed for DP open-domain
histograms, and a boolean indicating whether Laplace noise was used. - Added some TFF executor classes to the public API (CPPExecutorFactory,
ResourceManagingExecutorFactory, RemoteExecutor, RemoteExecutorGrpcStub). - Added support for
bfloat16dtypes from theml_dtypespackage.
Fixed
- A bug where
tf.stringwas mistakenly allowed as a dtype to
tff.types.TensorType. This now must benp.str_.
Changed
tff.Computationandtff.framework.ConcreteComputationto be able to
transform the arguments to the computation and result of the computation.DPClosedDomainHistogram::ReportandDPOpenDomainHistogram::Report: they
both use theDPHistogramBundlesproduced by theCreateDPHistogramBundle
function indp_noise_mechanisms.DPGroupByFactory::CreateInternal: whendeltais not provided, check if
the right norm bounds are provided to compute L1 sensitivity (for the
Laplace mech).- CreateRemoteExecutorStack now allows the composing executor to be specified
and assigns client values to leaf executors such that all leaf executors
receive the same number of clients, except for potentially the last leaf
executor, which may receive fewer clients. - Allow
tff.learning.programs.train_modelto accept ashould_discard_round
function to decide whether a round should be discarded and retried.
Removed
tff.structure.to_container_recursive, this should not be used externally.
TensorFlow Federated 0.84.0
Release 0.84.0
Added
- Added some TFF executor classes to the public API (
ComposingExecutor,
ExecutorTestBase,MockExecutor,ThreadPool). - Added some compiler transformation helper functions to the public API
(replace_intrinsics_with_bodies,unique_name_generator,
transform_preorder,to_call_dominant). - Added a method to get the number of checkpoints aggregated to the
CheckpointAggregator API. - The function
DPClosedDomainHistogram::IncrementDomainIndices. It allows
calling code to iterate through the domain of composite keys (in a do-while
loop).
Changed
- Fixed a bug in
tff.jax.computationthat raised an error when the
computation had unused arguments. - Fixed a bug when using
tff.backends.xlaexecution stack that raised errors
when single element structures were returned fromtff.jax.computation
wrapped methods. - Modified the model output release frequency to every 10 rounds and the final
round intff.learning.programs.train_model. - Loosened the
kEpsilonThresholdconstant and updated the tests of
DPOpenDomainHistogramaccordingly. - The behavior of
DPClosedDomainHistogram::Report(): it now produces an
aggregate for each possible combinations of keys. Those composite keys that
GroupByAggregatordid not already assign an aggregate to are assigned 0.
Future CL will add noise. - Modified
tff.learning.algorithms.build_weighted_fed_avgto generate
different training graphs whenuse_experimental_simulation_loop=Trueand
model_fnis of typetff.learning.models.FunctionalModel.
TensorFlow Federated 0.83.0
Release 0.83.0
Changed
- The
tff.learning.programs.train_modelprogram logic to save a deep copy of
the data source iterator within the program state. - The file-backed native program components to not flatten and unflatten
values.
Removed
- Unused functions from
tensorflow_utils. - Serializing raw
tf.Tensorvalues to theValueprotobuf. - Partial support for
dataclasses.
TensorFlow Federated 0.82.0
Release 0.82.0
Added
- Add a serialized raw array content field to the Array proto.
- A function to
DPCompositeKeyCombinerthat allows retrieval of an ordinal.
Intended for use by the closed-domain DP histogram aggregation core. - Constants for invalid ordinals and default
l0_bound_.
Changed
- How
DPCompositeKeyCombinerhandles invalidl0_bound_values. - The default
l0_bound_value inDPCompositeKeyCombinerto new constant. - Organization of DP histogram code. Previously, open-domain histogram class +
factory class lived side-by-side indp_group_by_aggregator.h/cc. Now split
intodp_open_domain_histogram.h/ccanddp_group_by_factory.h/cc, which
will ease future addition of code for closed-domain histogram. - Moved
tff.federated_secure_modular_sumto the mapreduce backend, use
tff.backends.mapreduce.federated_secure_modular_suminstead.
TensorFlow Federated 0.81.0
Release 0.81.0
Added
- A helper function to get a vector of strings for the elements of a tensor in
order to aid in formatting. - A field
string_valto thetensorproto to allow representing string
values explicitly.
Changed
- The format of the release notes (i.e.,
RELEASE.md) to be based on
https://keepachangelog.com/en/1.1.0/. - Moved constraint on
linfinity_boundfromDPGroupingFederatedSumFactory
toDPGroupByFactory, because closed-domain histogram algorithm will use
DPGroupingFederatedSumbut not demand a positivelinfinity_bound.
Removed
- The dependency on
semantic-version. - The
tff.async_utilspackage, useasyncioinstead.
TensorFlow Federated 0.80.0
Release 0.80.0
Breaking Changes
- Move the tools package to the root of the repository.
- Updated bazel to version 6.5.0.
- Updated rules_python to version 0.31.0.
- Deleted deprecated tff.learning.build_federated_evaluation, which was superseded by tff.learning.algorithms.build_fed_eval.
TensorFlow Federated 0.79.0
Release 0.79.0
Major Features and Improvements
- Enable support for models with non-trainable variables in
tff.learning.models.functional_model_from_keras.
Breaking Changes
- Removed
farmhashpydependency. - Updated
com_github_grpc_grpcto version1.50.0. - Moved the TFF repository from https://github.com/tensorflow/federated to
https://github.com/google-parfait/tensorflow-federated.