Skip to content

TensorFlow Federated 0.85.0

Compare
Choose a tag to compare
@github-actions github-actions released this 14 Aug 19:58

Release 0.85.0

Added

  • The dp_noise_mechanisms header and source files: contains functions that
    generate differential_privacy::LaplaceMechanism or
    differential_privacy::GaussianMechanism, based upon privacy parameters and
    norm bounds. Each of these functions return a DPHistogramBundle struct,
    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 bfloat16 dtypes from the ml_dtypes package.

Fixed

  • A bug where tf.string was mistakenly allowed as a dtype to
    tff.types.TensorType. This now must be np.str_.

Changed

  • tff.Computation and tff.framework.ConcreteComputation to be able to
    transform the arguments to the computation and result of the computation.
  • DPClosedDomainHistogram::Report and DPOpenDomainHistogram::Report: they
    both use the DPHistogramBundles produced by the CreateDPHistogramBundle
    function in dp_noise_mechanisms.
  • DPGroupByFactory::CreateInternal: when delta is 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_model to accept a should_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.