From c5c9f0cf23e602e548776c60cc10b18673800b21 Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Mon, 31 Oct 2022 13:08:02 +0000 Subject: [PATCH] Add new tutorial sections to index --- doc/source/differential-privacy-wrappers.rst | 1 + doc/source/index.rst | 2 ++ .../tutorial/Flower-1-Intro-to-FL-PyTorch.ipynb | 2 +- .../Flower-2-Strategies-in-FL-PyTorch.ipynb | 13 +++++++++++++ .../Flower-3-Building-a-Strategy-PyTorch.ipynb | 6 +++++- ...> Flower-4-Client-and-NumPyClient-PyTorch.ipynb} | 0 6 files changed, 22 insertions(+), 2 deletions(-) rename doc/source/tutorial/{Flower-4-Client-PyTorch.ipynb => Flower-4-Client-and-NumPyClient-PyTorch.ipynb} (100%) diff --git a/doc/source/differential-privacy-wrappers.rst b/doc/source/differential-privacy-wrappers.rst index 0a8a0413db6a..a2dee6bc82a9 100644 --- a/doc/source/differential-privacy-wrappers.rst +++ b/doc/source/differential-privacy-wrappers.rst @@ -85,6 +85,7 @@ Performing the :math:`(\epsilon, \delta)` analysis Assume you have trained for :math:`n` rounds with sampling fraction :math:`q` and noise multiplier :math:`z`. In order to calculate the :math:`\epsilon` value this would result in for a particular :math:`\delta`, the following script may be used. .. code-block:: python + import tensorflow_privacy as tfp max_order = 32 orders = range(2, max_order + 1) diff --git a/doc/source/index.rst b/doc/source/index.rst index 8c2327c1da57..7371bf338876 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -34,6 +34,8 @@ A learning-oriented series of federated learning tutorials, the best place to st tutorial/Flower-1-Intro-to-FL-PyTorch tutorial/Flower-2-Strategies-in-FL-PyTorch + tutorial/Flower-3-Building-a-Strategy-PyTorch + tutorial/Flower-4-Client-and-NumPyClient-PyTorch .. toctree:: :maxdepth: 1 diff --git a/doc/source/tutorial/Flower-1-Intro-to-FL-PyTorch.ipynb b/doc/source/tutorial/Flower-1-Intro-to-FL-PyTorch.ipynb index 8d5a17d949de..e1247d85b99c 100755 --- a/doc/source/tutorial/Flower-1-Intro-to-FL-PyTorch.ipynb +++ b/doc/source/tutorial/Flower-1-Intro-to-FL-PyTorch.ipynb @@ -664,7 +664,7 @@ "\n", "There's a dedicated `#questions` channel if you need help, but we'd also love to hear who you are in `#introductions`!\n", "\n", - "[Part two](https://flower.dev/docs/tutorial/Flower-2-Strategies-in-FL-PyTorch.html) of the Flower tutorial goes into more depth about strategies and all the advanced things you can build with them." + "The [Flower Federated Learning Tutorial - Part 2](https://flower.dev/docs/tutorial/Flower-2-Strategies-in-FL-PyTorch.html) goes into more depth about strategies and all the advanced things you can build with them." ] } ], diff --git a/doc/source/tutorial/Flower-2-Strategies-in-FL-PyTorch.ipynb b/doc/source/tutorial/Flower-2-Strategies-in-FL-PyTorch.ipynb index fff5e9e120b2..d0da0267f657 100644 --- a/doc/source/tutorial/Flower-2-Strategies-in-FL-PyTorch.ipynb +++ b/doc/source/tutorial/Flower-2-Strategies-in-FL-PyTorch.ipynb @@ -654,6 +654,19 @@ "\n", "In the later sections, we've seen how we can communicate arbitrary values between server and clients to fully customize client-side execution. With that capability, we built a large-scale Federated Learning simulation using the Flower Virtual Client Engine and ran an experiment involving 1000 clients in the same workload - all in a Jupyter Notebook!" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Next steps\n", + "\n", + "Before you continue, make sure to join the Flower community on Slack: [Join Slack](https://flower.dev/join-slack/)\n", + "\n", + "There's a dedicated `#questions` channel if you need help, but we'd also love to hear who you are in `#introductions`!\n", + "\n", + "The [Flower Federated Learning Tutorial - Part 3 [WIP]](https://flower.dev/docs/tutorial/Flower-3-Building-a-Strategy-PyTorch.html) shows how to build a fully custom `Strategy` from scratch." + ] } ], "metadata": { diff --git a/doc/source/tutorial/Flower-3-Building-a-Strategy-PyTorch.ipynb b/doc/source/tutorial/Flower-3-Building-a-Strategy-PyTorch.ipynb index abfca3894bc2..4c8013f4a111 100644 --- a/doc/source/tutorial/Flower-3-Building-a-Strategy-PyTorch.ipynb +++ b/doc/source/tutorial/Flower-3-Building-a-Strategy-PyTorch.ipynb @@ -437,7 +437,11 @@ "source": [ "## Next steps\n", "\n", - "[WIP - add description]" + "Before you continue, make sure to join the Flower community on Slack: [Join Slack](https://flower.dev/join-slack/)\n", + "\n", + "There's a dedicated `#questions` channel if you need help, but we'd also love to hear who you are in `#introductions`!\n", + "\n", + "The [Flower Federated Learning Tutorial - Part 4](https://flower.dev/docs/tutorial/Flower-4-Client-and-NumPyClient-PyTorch.html) introduces `Client`, the flexible API underlying `NumPyClient`." ] } ], diff --git a/doc/source/tutorial/Flower-4-Client-PyTorch.ipynb b/doc/source/tutorial/Flower-4-Client-and-NumPyClient-PyTorch.ipynb similarity index 100% rename from doc/source/tutorial/Flower-4-Client-PyTorch.ipynb rename to doc/source/tutorial/Flower-4-Client-and-NumPyClient-PyTorch.ipynb