diff --git a/CITATION.cff b/CITATION.cff
index 83360d70ea..e90ec14bb1 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -4,6 +4,6 @@ authors:
- affiliation: Google
given-names: "The TensorFlow Federated Authors"
title: "TensorFlow Federated"
-version: 0.43.0
+version: 0.44.0
date-released: 2018-12-12
url: "https://github.com/tensorflow/federated"
diff --git a/RELEASE.md b/RELEASE.md
index f407069dec..e911812b0f 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,3 +1,17 @@
+# Release 0.44.0
+
+## Major Features and Improvements
+
+* Improved the Python type annotations for `tff.program` API.
+* Extended the metrics interface on FunctionalModel to accept the entire
+ `BatchOutput` structure from the model `forward_pass` (not just the
+ predictions).
+* Introduced a DTensor Executor.
+
+## Bug Fixes
+
+* Fixed async RuntimeWarning in the `tff.program.NativeFederatedContext`.
+
# Release 0.43.0
## Major Features and Improvements
diff --git a/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb b/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb
index 20de24ec35..19bc929e34 100644
--- a/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb
+++ b/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/building_your_own_federated_learning_algorithm\"\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.43.0/docs/tutorials/building_your_own_federated_learning_algorithm.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.44.0/docs/tutorials/building_your_own_federated_learning_algorithm.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.43.0/docs/tutorials/building_your_own_federated_learning_algorithm.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.44.0/docs/tutorials/building_your_own_federated_learning_algorithm.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/composing_learning_algorithms.ipynb b/docs/tutorials/composing_learning_algorithms.ipynb
index fe2044076e..dc7878e8e0 100644
--- a/docs/tutorials/composing_learning_algorithms.ipynb
+++ b/docs/tutorials/composing_learning_algorithms.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/composing_learning_algorithms\"\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.43.0/docs/tutorials/composing_learning_algorithms.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.44.0/docs/tutorials/composing_learning_algorithms.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.43.0/docs/tutorials/composing_learning_algorithms.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.44.0/docs/tutorials/composing_learning_algorithms.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/composing_learning_algorithms.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
@@ -129,7 +129,7 @@
"id": "3zQlyijofSzI"
},
"source": [
- "The [Building Your Own Federated Learning Algorithm Tutorial](https://github.com/tensorflow/federated/blob/v0.43.0/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb) used TFF's federated core to directly implement a version of the Federated Averaging (FedAvg) algorithm.\n",
+ "The [Building Your Own Federated Learning Algorithm Tutorial](https://github.com/tensorflow/federated/blob/v0.44.0/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb) used TFF's federated core to directly implement a version of the Federated Averaging (FedAvg) algorithm.\n",
"\n",
"In this tutorial, you will use federated learning components in TFF's API to build federated learning algorithms in a modular manner, without having to re-implement everything from scratch.\n",
"\n",
@@ -158,7 +158,7 @@
"id": "YwhOtjlvjboB"
},
"source": [
- "While the [Building Your Own Federated Learning Algorithm Tutorial](https://github.com/tensorflow/federated/blob/v0.43.0/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb) implemented all of these building blocks from scratch, this is often unnecessary. Instead, you can re-use building blocks from similar algorithms.\n",
+ "While the [Building Your Own Federated Learning Algorithm Tutorial](https://github.com/tensorflow/federated/blob/v0.44.0/docs/tutorials/building_your_own_federated_learning_algorithm.ipynb) implemented all of these building blocks from scratch, this is often unnecessary. Instead, you can re-use building blocks from similar algorithms.\n",
"\n",
"In this case, to implement FedAvg with gradient clipping, you only need to modify the **client work** building block. The remaining blocks can be identical to what is used in \"vanilla\" FedAvg."
]
diff --git a/docs/tutorials/custom_aggregators.ipynb b/docs/tutorials/custom_aggregators.ipynb
index 6aaed5a7e6..d381f1e049 100644
--- a/docs/tutorials/custom_aggregators.ipynb
+++ b/docs/tutorials/custom_aggregators.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/custom_aggregators\"\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.43.0/docs/tutorials/custom_aggregators.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.44.0/docs/tutorials/custom_aggregators.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.43.0/docs/tutorials/custom_aggregators.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.44.0/docs/tutorials/custom_aggregators.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/custom_aggregators.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.ipynb b/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.ipynb
index 99177570c1..a032639947 100644
--- a/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.ipynb
+++ b/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/custom_federated_algorithm_with_tff_optimizers\"\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.43.0/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.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.44.0/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.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.43.0/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.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.44.0/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/custom_federated_algorithm_with_tff_optimizers.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/custom_federated_algorithms_1.ipynb b/docs/tutorials/custom_federated_algorithms_1.ipynb
index 64a3bf49e3..c3cb83097f 100644
--- a/docs/tutorials/custom_federated_algorithms_1.ipynb
+++ b/docs/tutorials/custom_federated_algorithms_1.ipynb
@@ -51,10 +51,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.43.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.44.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.43.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.44.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/custom_federated_algorithms_1.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/custom_federated_algorithms_2.ipynb b/docs/tutorials/custom_federated_algorithms_2.ipynb
index f64fbd2424..91e942af95 100644
--- a/docs/tutorials/custom_federated_algorithms_2.ipynb
+++ b/docs/tutorials/custom_federated_algorithms_2.ipynb
@@ -51,10 +51,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.43.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.44.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.43.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.44.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/custom_federated_algorithms_2.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/federated_learning_for_image_classification.ipynb b/docs/tutorials/federated_learning_for_image_classification.ipynb
index 34b64ae7d2..f26d2dec60 100644
--- a/docs/tutorials/federated_learning_for_image_classification.ipynb
+++ b/docs/tutorials/federated_learning_for_image_classification.ipynb
@@ -51,10 +51,10 @@
" View on TensorFlow.org\n",
" \n",
"
\n",
- " Run in Google Colab\n",
+ " Run in Google Colab\n",
" | \n",
" \n",
- " View source on GitHub\n",
+ " View source on GitHub\n",
" | \n",
" \n",
" Download notebook\n",
diff --git a/docs/tutorials/federated_learning_for_text_generation.ipynb b/docs/tutorials/federated_learning_for_text_generation.ipynb
index 76425ab50f..cd5804087b 100644
--- a/docs/tutorials/federated_learning_for_text_generation.ipynb
+++ b/docs/tutorials/federated_learning_for_text_generation.ipynb
@@ -51,10 +51,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.43.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.44.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.43.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.44.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/federated_learning_for_text_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
@@ -503,7 +503,7 @@
"text": [
"Downloading data from https://storage.googleapis.com/tff-models-public/dickens_rnn.batch8.kerasmodel\n",
"16193984/16193984 [==============================] - 0s 0us/step\n",
- "Evaluating on an example Shakespeare character: 0.43.000\n",
+ "Evaluating on an example Shakespeare character: 0.44.000\n",
"Expected accuracy for random guessing: 0.012\n",
"Evaluating on completely random data: 0.011\n"
]
diff --git a/docs/tutorials/federated_learning_with_differential_privacy.ipynb b/docs/tutorials/federated_learning_with_differential_privacy.ipynb
index bcb1e6b754..779c67fd82 100644
--- a/docs/tutorials/federated_learning_with_differential_privacy.ipynb
+++ b/docs/tutorials/federated_learning_with_differential_privacy.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/federated_learning_with_differential_privacy\"\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.43.0/docs/tutorials/federated_learning_with_differential_privacy.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.44.0/docs/tutorials/federated_learning_with_differential_privacy.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.43.0/docs/tutorials/federated_learning_with_differential_privacy.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.44.0/docs/tutorials/federated_learning_with_differential_privacy.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/federated_learning_with_differential_privacy.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/federated_reconstruction_for_matrix_factorization.ipynb b/docs/tutorials/federated_reconstruction_for_matrix_factorization.ipynb
index 56fc5e01a9..5a1f6cb310 100644
--- a/docs/tutorials/federated_reconstruction_for_matrix_factorization.ipynb
+++ b/docs/tutorials/federated_reconstruction_for_matrix_factorization.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/federated_reconstruction_for_matrix_factorization\"\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.43.0/docs/tutorials/federated_reconstruction_for_matrix_factorization.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.44.0/docs/tutorials/federated_reconstruction_for_matrix_factorization.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.43.0/docs/tutorials/federated_reconstruction_for_matrix_factorization.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.44.0/docs/tutorials/federated_reconstruction_for_matrix_factorization.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/federated_reconstruction_for_matrix_factorization.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/federated_select.ipynb b/docs/tutorials/federated_select.ipynb
index ec332e7448..3e49a0535b 100644
--- a/docs/tutorials/federated_select.ipynb
+++ b/docs/tutorials/federated_select.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/federated_select\"\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.43.0/docs/tutorials/federated_select.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.44.0/docs/tutorials/federated_select.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.43.0/docs/tutorials/federated_select.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.44.0/docs/tutorials/federated_select.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/federated_select.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/high_performance_simulation_with_kubernetes.ipynb b/docs/tutorials/high_performance_simulation_with_kubernetes.ipynb
index 83d8dcd999..12d7b397c5 100644
--- a/docs/tutorials/high_performance_simulation_with_kubernetes.ipynb
+++ b/docs/tutorials/high_performance_simulation_with_kubernetes.ipynb
@@ -65,10 +65,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/high_performance_simulation_with_kubernetes\"\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.43.0/docs/tutorials/high_performance_simulation_with_kubernetes.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.44.0/docs/tutorials/high_performance_simulation_with_kubernetes.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.43.0/docs/tutorials/high_performance_simulation_with_kubernetes.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.44.0/docs/tutorials/high_performance_simulation_with_kubernetes.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/high_performance_simulation_with_kubernetes.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/jax_support.ipynb b/docs/tutorials/jax_support.ipynb
index 2421052afc..5c97df3cc7 100644
--- a/docs/tutorials/jax_support.ipynb
+++ b/docs/tutorials/jax_support.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/jax_support\"\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.43.0/docs/tutorials/jax_support.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.44.0/docs/tutorials/jax_support.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.43.0/docs/tutorials/jax_support.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView on GitHub\u003c/a\u003e\n",
+ " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/federated/blob/v0.44.0/docs/tutorials/jax_support.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView on GitHub\u003c/a\u003e\n",
" \u003c/td\u003e\n",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/jax_support.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/loading_remote_data.ipynb b/docs/tutorials/loading_remote_data.ipynb
index 38f25b3284..b60d175576 100644
--- a/docs/tutorials/loading_remote_data.ipynb
+++ b/docs/tutorials/loading_remote_data.ipynb
@@ -61,10 +61,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/loading_remote_data\"\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.43.0/docs/tutorials/loading_remote_data.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.44.0/docs/tutorials/loading_remote_data.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.43.0/docs/tutorials/loading_remote_data.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.44.0/docs/tutorials/loading_remote_data.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/loading_remote_data.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/private_heavy_hitters.ipynb b/docs/tutorials/private_heavy_hitters.ipynb
index 5880232944..7bb0848348 100644
--- a/docs/tutorials/private_heavy_hitters.ipynb
+++ b/docs/tutorials/private_heavy_hitters.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/private_heavy_hitters\"\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.43.0/docs/tutorials/private_heavy_hitters.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.44.0/docs/tutorials/private_heavy_hitters.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.43.0/docs/tutorials/private_heavy_hitters.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.44.0/docs/tutorials/private_heavy_hitters.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/private_heavy_hitters.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/random_noise_generation.ipynb b/docs/tutorials/random_noise_generation.ipynb
index 80ec1b8679..e85c5396b4 100644
--- a/docs/tutorials/random_noise_generation.ipynb
+++ b/docs/tutorials/random_noise_generation.ipynb
@@ -53,10 +53,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/random_noise_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.43.0/docs/tutorials/random_noise_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.44.0/docs/tutorials/random_noise_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.43.0/docs/tutorials/random_noise_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.44.0/docs/tutorials/random_noise_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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/random_noise_generation.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
@@ -538,7 +538,7 @@
"id": "TnyhlV0fIxYR"
},
"source": [
- "A general recommendation in TFF is to use the functional `tf.random.stateless_*` functions for random noise generation. These functions take `seed` (a Tensor with shape `[2]` or a `tuple` of two scalar tensors) as an explicit input argument to generate random noise. We first define a helper class to maintain the seed as pseudo state. The helper `RandomSeedGenerator` has functional operators in a state-in-state-out fashion. It is reasonable to use a counter as pseudo state for `tf.random.stateless_*` as these functions [scramble](https://github.com/tensorflow/tensorflow/blob/919f693420e35d00c8d0.43.00837ae3718f7927/tensorflow/core/kernels/stateless_random_ops.cc#L50-L64) the seed before using it to make noises generated by correlated seeds statistically uncorrelated."
+ "A general recommendation in TFF is to use the functional `tf.random.stateless_*` functions for random noise generation. These functions take `seed` (a Tensor with shape `[2]` or a `tuple` of two scalar tensors) as an explicit input argument to generate random noise. We first define a helper class to maintain the seed as pseudo state. The helper `RandomSeedGenerator` has functional operators in a state-in-state-out fashion. It is reasonable to use a counter as pseudo state for `tf.random.stateless_*` as these functions [scramble](https://github.com/tensorflow/tensorflow/blob/919f693420e35d00c8d0.44.00837ae3718f7927/tensorflow/core/kernels/stateless_random_ops.cc#L50-L64) the seed before using it to make noises generated by correlated seeds statistically uncorrelated."
]
},
{
diff --git a/docs/tutorials/simulations.ipynb b/docs/tutorials/simulations.ipynb
index 9cc1a727af..c662894e49 100644
--- a/docs/tutorials/simulations.ipynb
+++ b/docs/tutorials/simulations.ipynb
@@ -60,10 +60,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/simulations\"\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.43.0/docs/tutorials/simulations.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.44.0/docs/tutorials/simulations.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.43.0/docs/tutorials/simulations.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.44.0/docs/tutorials/simulations.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/simulations.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
@@ -207,7 +207,7 @@
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.27160493), ('loss', 2.340346), ('num_examples', 9720), ('num_batches', 490)]), round time 2.25 seconds\n",
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.34115225), ('loss', 2.0537064), ('num_examples', 9720), ('num_batches', 490)]), round time 2.27 seconds\n",
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.3745885), ('loss', 1.9158486), ('num_examples', 9720), ('num_batches', 490)]), round time 2.21 seconds\n",
- "train metrics OrderedDict([('sparse_categorical_accuracy', 0.43.02059), ('loss', 1.7523248), ('num_examples', 9720), ('num_batches', 490)]), round time 2.19 seconds\n",
+ "train metrics OrderedDict([('sparse_categorical_accuracy', 0.44.02059), ('loss', 1.7523248), ('num_examples', 9720), ('num_batches', 490)]), round time 2.19 seconds\n",
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.47644034), ('loss', 1.6085855), ('num_examples', 9720), ('num_batches', 490)]), round time 2.20 seconds\n",
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.5126543), ('loss', 1.5272282), ('num_examples', 9720), ('num_batches', 490)]), round time 2.27 seconds\n",
"train metrics OrderedDict([('sparse_categorical_accuracy', 0.5576132), ('loss', 1.393721), ('num_examples', 9720), ('num_batches', 490)]), round time 2.16 seconds\n"
diff --git a/docs/tutorials/simulations_with_accelerators.ipynb b/docs/tutorials/simulations_with_accelerators.ipynb
index d83c8ebdca..3691f01247 100644
--- a/docs/tutorials/simulations_with_accelerators.ipynb
+++ b/docs/tutorials/simulations_with_accelerators.ipynb
@@ -53,10 +53,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/simulations_with_accelerators\"\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.43.0/docs/tutorials/simulations_with_accelerators.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.44.0/docs/tutorials/simulations_with_accelerators.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.43.0/docs/tutorials/simulations_with_accelerators.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.44.0/docs/tutorials/simulations_with_accelerators.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/simulations_with_accelerators.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/sparse_federated_learning.ipynb b/docs/tutorials/sparse_federated_learning.ipynb
index 1dfb9dd8e0..d370651619 100644
--- a/docs/tutorials/sparse_federated_learning.ipynb
+++ b/docs/tutorials/sparse_federated_learning.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/sparse_federated_learning\"\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.43.0/docs/tutorials/sparse_federated_learning.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.44.0/docs/tutorials/sparse_federated_learning.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.43.0/docs/tutorials/sparse_federated_learning.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.44.0/docs/tutorials/sparse_federated_learning.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/sparse_federated_learning.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/tff_for_federated_learning_research_compression.ipynb b/docs/tutorials/tff_for_federated_learning_research_compression.ipynb
index b8da2d383d..4dd8af251c 100644
--- a/docs/tutorials/tff_for_federated_learning_research_compression.ipynb
+++ b/docs/tutorials/tff_for_federated_learning_research_compression.ipynb
@@ -42,10 +42,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/tff_for_federated_learning_research_compression\"\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.43.0/docs/tutorials/tff_for_federated_learning_research_compression.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.44.0/docs/tutorials/tff_for_federated_learning_research_compression.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.43.0/docs/tutorials/tff_for_federated_learning_research_compression.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.44.0/docs/tutorials/tff_for_federated_learning_research_compression.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/tff_for_federated_learning_research_compression.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/tuning_recommended_aggregators.ipynb b/docs/tutorials/tuning_recommended_aggregators.ipynb
index 0959367d5e..8f9617cb48 100644
--- a/docs/tutorials/tuning_recommended_aggregators.ipynb
+++ b/docs/tutorials/tuning_recommended_aggregators.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/tuning_recommended_aggregators\"\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.43.0/docs/tutorials/tuning_recommended_aggregators.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.44.0/docs/tutorials/tuning_recommended_aggregators.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.43.0/docs/tutorials/tuning_recommended_aggregators.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.44.0/docs/tutorials/tuning_recommended_aggregators.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/tuning_recommended_aggregators.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/docs/tutorials/working_with_client_data.ipynb b/docs/tutorials/working_with_client_data.ipynb
index af73ee2dd0..42c6b71b6d 100644
--- a/docs/tutorials/working_with_client_data.ipynb
+++ b/docs/tutorials/working_with_client_data.ipynb
@@ -51,10 +51,10 @@
" \u003ca target=\"_blank\" href=\"https://www.tensorflow.org/federated/tutorials/working_with_client_data\"\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.43.0/docs/tutorials/working_with_client_data.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.44.0/docs/tutorials/working_with_client_data.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.43.0/docs/tutorials/working_with_client_data.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.44.0/docs/tutorials/working_with_client_data.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",
" \u003ctd\u003e\n",
" \u003ca href=\"https://storage.googleapis.com/tensorflow_docs/federated/docs/tutorials/working_with_client_data.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/download_logo_32px.png\" /\u003eDownload notebook\u003c/a\u003e\n",
diff --git a/tensorflow_federated/version.py b/tensorflow_federated/version.py
index 23ecf29532..db2e34c5ce 100644
--- a/tensorflow_federated/version.py
+++ b/tensorflow_federated/version.py
@@ -13,4 +13,4 @@
# limitations under the License.
"""TensorFlow Federated version."""
-__version__ = '0.43.0'
+__version__ = '0.44.0'
|