diff --git a/README.md b/README.md index 43ea81e243..115d22f62f 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ versions. | TensorFlow Federated | TensorFlow | |--------------------------------------------------------------|-------------------------------------------------------------| | [master](https://github.com/tensorflow/federated) | [tf-nightly (1.x)](https://pypi.org/project/tf-nightly/) | +| [0.4.0](https://github.com/tensorflow/federated/tree/v0.4.0) | [1.13.1](https://pypi.org/project/tensorflow/1.13.1) | | [0.3.0](https://github.com/tensorflow/federated/tree/v0.3.0) | [1.13.1](https://pypi.org/project/tensorflow/1.13.1) | | [0.2.0](https://github.com/tensorflow/federated/tree/v0.2.0) | [1.13.1](https://pypi.org/project/tensorflow/1.13.1) | | [0.1.0](https://github.com/tensorflow/federated/tree/v0.1.0) | [1.13.0rc2](https://pypi.org/project/tensorflow/1.13.0rc0/) | diff --git a/RELEASE.md b/RELEASE.md index 5147ee40f5..f4ca25924b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,8 +1,23 @@ +# Release 0.4.0 + +## Major Features and Improvements + +* New `tff.simulation.TransformingClientData` API and associated inifinite EMNIST dataset (see tensorflow.org/federated/api\_docs/python/tff for details) + +## Breaking Change + +* 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` + # Release 0.3.0 ## Breaking Changes -* Rename tff.learning.federated_average to tff.learning.federated_mean. +* Rename tff.learning.federated\_average to tff.learning.federated\_mean. * Rename 'func' arguments to 'fn' throughout the API. ## Bug Fixes diff --git a/docs/tutorials/custom_federated_algorithms_1.ipynb b/docs/tutorials/custom_federated_algorithms_1.ipynb index 5d30f3af70..b93d3579d7 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.3.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.4.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.3.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.4.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 22fb5ff522..5c678c7b8b 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.3.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.4.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.3.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.4.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 eb4200d709..662e44a0ef 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.3.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.4.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.3.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.4.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.3.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.4.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 ebbf2bf00b..7664902e6e 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.3.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.4.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.3.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.4.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.3.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.4.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 f75ccc1c44..33376c4ef7 100644 --- a/tensorflow_federated/tools/setup.py +++ b/tensorflow_federated/tools/setup.py @@ -56,7 +56,7 @@ DOCLINES = __doc__.split('\n') -_VERSION = '0.3.0' +_VERSION = '0.4.0' project_name = 'tensorflow_federated'