From 53eb3a5d84864822b5f0081713670845ea0b7ab3 Mon Sep 17 00:00:00 2001 From: Keith Rush Date: Wed, 26 Jun 2019 14:08:45 -0700 Subject: [PATCH] Increment version and add release notes for TFF 0.6.0. PiperOrigin-RevId: 255260630 --- README.md | 1 + RELEASE.md | 89 ++++++++++++------- .../custom_federated_algorithms_1.ipynb | 4 +- .../custom_federated_algorithms_2.ipynb | 4 +- ...ed_learning_for_image_classification.ipynb | 6 +- ...derated_learning_for_text_generation.ipynb | 6 +- tensorflow_federated/tools/setup.py | 4 +- 7 files changed, 72 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 6df9a6ba17..4e78fab4ac 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ versions. TensorFlow Federated | TensorFlow ------------------------------------------------------------ | ---------- [master](https://github.com/tensorflow/federated) | [tf-nightly 1.x](https://pypi.org/project/tf-nightly/) +[0.6.0](https://github.com/tensorflow/federated/tree/v0.5.0) | [tf-nightly 1.15.0.dev20190626](https://pypi.org/project/tf-nightly/1.15.0.dev20190626/) [0.5.0](https://github.com/tensorflow/federated/tree/v0.5.0) | [tf-nightly 1.14.1.dev20190528](https://pypi.org/project/tf-nightly/1.14.1.dev20190528/) [0.4.0](https://github.com/tensorflow/federated/tree/v0.4.0) | [tensorflow 1.13.1](https://pypi.org/project/tensorflow/1.13.1) [0.3.0](https://github.com/tensorflow/federated/tree/v0.3.0) | [tensorflow 1.13.1](https://pypi.org/project/tensorflow/1.13.1) diff --git a/RELEASE.md b/RELEASE.md index dac68153ef..66bd52dfa4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,71 +1,98 @@ +# Release 0.6.0 + +## Major Features and Improvements + +* Support for multiple outputs and loss functions in `keras` models. +* Support for stateful broadcast and aggregation functions in federated + averaging and federated SGD APIs. +* `tff.utils.update_state` extended to handle more general `state` arguments. +* Addition of `tff.utils.federated_min` and `tff.utils.federated_max`. +* Shuffle `client_ids` in `create_tf_dataset_from_all_clients` by default to + aid optimization. + +## Breaking Changes + +* Dependencies added to `requirements.txt`; in particular, `grpcio` and + `portpicker`. + +## Bug Fixes + +* Removes dependency on `tf.data.experimental.NestedStructure`. + +## Thanks to our Contributors + +This release contains contributions from many people at Google, as well as: + +Dheeraj R Reddy, @Squadrick. + # Release 0.5.0 ## Major Features and Improvements -* Removed source level TF dependencies and switched from `tensorflow` to - `tf-nightly` dependency. -* Add support for `attr` module in TFF type system. -* Introduced new `tff.framework` interface layer. -* New AST transformations and optimizations. -* Preserve Python container usage in `tff.tf_computation`. +* Removed source level TF dependencies and switched from `tensorflow` to + `tf-nightly` dependency. +* Add support for `attr` module in TFF type system. +* Introduced new `tff.framework` interface layer. +* New AST transformations and optimizations. +* Preserve Python container usage in `tff.tf_computation`. ## Bug Fixes -* Updated TFF model to reflect Keras `tf.keras.model.weights` order. -* Keras model with multiple inputs. #416 +* Updated TFF model to reflect Keras `tf.keras.model.weights` order. +* Keras model with multiple inputs. #416 # Release 0.4.0 ## Major Features and Improvements -* New `tff.simulation.TransformingClientData` API and associated inifinite - EMNIST dataset (see http://tensorflow.org/federated/api_docs/python/tff for - details) +* New `tff.simulation.TransformingClientData` API and associated inifinite + EMNIST dataset (see http://tensorflow.org/federated/api_docs/python/tff for + details) ## Breaking Change -* Normalized `func` to `fn` across the repository (rename some parameters and - functions) +* Normalized `func` to `fn` across the repository (rename some parameters and + functions) ## Bug Fixes -* Wrapped Keras models can now be used with - `tff.learning.build_federated_evaluation` -* Keras models with non-trainable variables in intermediate layers (e.g. - BatchNormalization) can be assigned back to Keras models with - `tff.learning.ModelWeights.assign_weights_to` +* Wrapped Keras models can now be used with + `tff.learning.build_federated_evaluation` +* Keras models with non-trainable variables in intermediate layers (e.g. + BatchNormalization) can be assigned back to Keras models with + `tff.learning.ModelWeights.assign_weights_to` # Release 0.3.0 ## Breaking Changes -* Rename `tff.learning.federated_average` to `tff.learning.federated_mean`. -* Rename 'func' arguments to 'fn' throughout the API. +* Rename `tff.learning.federated_average` to `tff.learning.federated_mean`. +* Rename 'func' arguments to 'fn' throughout the API. ## Bug Fixes -* Assorted fixes to typos in documentation and setup scripts. +* Assorted fixes to typos in documentation and setup scripts. # Release 0.2.0 ## Major Features and Improvements -* Updated to use TensorFlow version 1.13.1. -* Implemented Federated SGD in `tff.learning.build_federated_sgd_process()`. +* Updated to use TensorFlow version 1.13.1. +* Implemented Federated SGD in `tff.learning.build_federated_sgd_process()`. ## Breaking Changes -* `next()` function of `tff.utils.IteratedProcess`s returned by - `build_federated_*_process()` no longer unwraps single value tuples - (always returns a tuple). +* `next()` function of `tff.utils.IteratedProcess`s returned by + `build_federated_*_process()` no longer unwraps single value tuples (always + returns a tuple). ## Bug Fixes -* Modify setup.py to require TensorFlow 1.x and not upgrade to 2.0 alpha. -* Stop unpacking single value tuples in `next()` function of objects returned by - `build_federated_*_process()`. -* Clear cached Keras sessions when wrapping Keras models to avoid referencing - stale graphs. +* Modify setup.py to require TensorFlow 1.x and not upgrade to 2.0 alpha. +* Stop unpacking single value tuples in `next()` function of objects returned + by `build_federated_*_process()`. +* Clear cached Keras sessions when wrapping Keras models to avoid referencing + stale graphs. # Release 0.1.0 diff --git a/docs/tutorials/custom_federated_algorithms_1.ipynb b/docs/tutorials/custom_federated_algorithms_1.ipynb index c43cbf4a65..9b78b491bc 100644 --- a/docs/tutorials/custom_federated_algorithms_1.ipynb +++ b/docs/tutorials/custom_federated_algorithms_1.ipynb @@ -56,10 +56,10 @@ " \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/custom_federated_algorithms_1\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" /\u003eView on TensorFlow.org\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.5.0/docs/tutorials/custom_federated_algorithms_1.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.6.0/docs/tutorials/custom_federated_algorithms_1.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.5.0/docs/tutorials/custom_federated_algorithms_1.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.6.0/docs/tutorials/custom_federated_algorithms_1.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", " \u003c/td\u003e\n", "\u003c/table\u003e" ] diff --git a/docs/tutorials/custom_federated_algorithms_2.ipynb b/docs/tutorials/custom_federated_algorithms_2.ipynb index d96266ce69..c4dfc7f672 100644 --- a/docs/tutorials/custom_federated_algorithms_2.ipynb +++ b/docs/tutorials/custom_federated_algorithms_2.ipynb @@ -56,10 +56,10 @@ " \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/custom_federated_algorithms_2\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" /\u003eView on TensorFlow.org\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.5.0/docs/tutorials/custom_federated_algorithms_2.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.6.0/docs/tutorials/custom_federated_algorithms_2.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.5.0/docs/tutorials/custom_federated_algorithms_2.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.6.0/docs/tutorials/custom_federated_algorithms_2.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", " \u003c/td\u003e\n", "\u003c/table\u003e" ] diff --git a/docs/tutorials/federated_learning_for_image_classification.ipynb b/docs/tutorials/federated_learning_for_image_classification.ipynb index 0482dc1c73..e3a99a1e3d 100644 --- a/docs/tutorials/federated_learning_for_image_classification.ipynb +++ b/docs/tutorials/federated_learning_for_image_classification.ipynb @@ -56,10 +56,10 @@ " \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/federated_learning_for_image_classification\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" /\u003eView on TensorFlow.org\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.5.0/docs/tutorials/federated_learning_for_image_classification.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.6.0/docs/tutorials/federated_learning_for_image_classification.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.5.0/docs/tutorials/federated_learning_for_image_classification.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.6.0/docs/tutorials/federated_learning_for_image_classification.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", " \u003c/td\u003e\n", "\u003c/table\u003e" ] @@ -71,7 +71,7 @@ "id": "Zs2LgZBOMt4M" }, "source": [ - "**NOTE**: This colab has been verified to work with the `0.5.0` version of the `tensorflow_federated` pip package, but the Tensorflow Federated project is still in pre-release development and may not work on `master`.\n", + "**NOTE**: This colab has been verified to work with the `0.6.0` version of the `tensorflow_federated` pip package, but the Tensorflow Federated project is still in pre-release development and may not work on `master`.\n", "\n", "In this tutorial, we use the classic MNIST training example to introduce the\n", "Federated Learning (FL) API layer of TFF, `tff.learning` - a set of\n", diff --git a/docs/tutorials/federated_learning_for_text_generation.ipynb b/docs/tutorials/federated_learning_for_text_generation.ipynb index 2469c6c80b..b7bde58abc 100644 --- a/docs/tutorials/federated_learning_for_text_generation.ipynb +++ b/docs/tutorials/federated_learning_for_text_generation.ipynb @@ -56,10 +56,10 @@ " \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/federated_learning_for_text_generation\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/tf_logo_32px.png\" /\u003eView on TensorFlow.org\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.5.0/docs/tutorials/federated_learning_for_text_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/federated/blob/v0.6.0/docs/tutorials/federated_learning_for_text_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", " \u003c/td\u003e\n", " \u003ctd\u003e\n", - " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.5.0/docs/tutorials/federated_learning_for_text_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", + " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.6.0/docs/tutorials/federated_learning_for_text_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", " \u003c/td\u003e\n", "\u003c/table\u003e" ] @@ -71,7 +71,7 @@ "id": "KbNz2tuvsAFB" }, "source": [ - "**NOTE**: This colab has been verified to work with the `0.5.0` version of the `tensorflow_federated` pip package, but the Tensorflow Federated project is still in pre-release development and may not work on `master`.\n", + "**NOTE**: This colab has been verified to work with the `0.6.0` version of the `tensorflow_federated` pip package, but the Tensorflow Federated project is still in pre-release development and may not work on `master`.\n", "\n", "This tutorial builds on the concepts in the [Federated Learning for Image Classification](federated_learning_for_image_classification.md) tutorial, and demonstrates several other useful approaches for federated learning.\n", "\n", diff --git a/tensorflow_federated/tools/setup.py b/tensorflow_federated/tools/setup.py index 37bf09096e..0b58d016b7 100644 --- a/tensorflow_federated/tools/setup.py +++ b/tensorflow_federated/tools/setup.py @@ -56,7 +56,7 @@ DOCLINES = __doc__.split('\n') -_VERSION = '0.5.0' +_VERSION = '0.6.0' project_name = 'tensorflow_federated' @@ -72,6 +72,8 @@ 'numpy~=1.14', 'six~=1.10', 'tf-nightly', + 'grpcio~=1.8.0', + 'portpicker', ] setuptools.setup(