
msgid ""
msgstr ""
"Project-Id-Version: Flower Docs\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-28 00:32+0000\n"
"PO-Revision-Date: 2023-09-05 17:54+0000\n"
"Last-Translator: Charles Beauville <charles@flower.ai>\n"
"Language: fr\n"
"Language-Team: French <https://hosted.weblate.org/projects/flower-"
"docs/framework/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"

#: ../../source/contributor-explanation-public-and-private-apis.rst:2
msgid "Public and private APIs"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:4
msgid ""
"In Python, everything is public. To enable developers to understand which"
" components can be relied upon, Flower declares a public API. Components "
"that are part of the public API can be relied upon. Changes to the public"
" API are announced in the release notes and are subject to deprecation "
"policies."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:9
msgid ""
"Everything that is not part of the public API is part of the private API."
" Even though Python allows accessing them, user code should never use "
"those components. Private APIs can change at any time, even in patch "
"releases."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:13
msgid ""
"How can you determine whether a component is part of the public API or "
"not? Easy:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:15
msgid "`Use the Flower API reference documentation <ref-api/flwr.html>`_"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:16
msgid "`Use the Flower CLI reference documentation <ref-api-cli.html>`_"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:18
msgid ""
"Everything listed in the reference documentation is part of the public "
"API. This document explains how Flower maintainers define the public API "
"and how you can determine whether a component is part of the public API "
"or not by reading the Flower source code."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:23
#, fuzzy
msgid "Flower public API"
msgstr "Flower ClientApp."

#: ../../source/contributor-explanation-public-and-private-apis.rst:25
msgid "Flower has a well-defined public API. Let's look at this in more detail."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:29
msgid ""
"Every component that is reachable by recursively following "
"``__init__.__all__`` starting from the root package (``flwr``) is part of"
" the public API."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:32
msgid ""
"If you want to determine whether a component "
"(class/function/generator/...) is part of the public API or not, you need"
" to start at the root of the ``flwr`` package. Let's use ``tree -L 1 -d "
"src/py/flwr`` to look at the Python sub-packages contained ``flwr``:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:46
msgid ""
"Contrast this with the definition of ``__all__`` in the root "
"``src/py/flwr/__init__.py``:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:59
msgid ""
"You can see that ``flwr`` has six subpackages (``cli``, ``client``, "
"``common``, ``proto``, ``server``, ``simulation``), but only four of them"
" are \"exported\" via ``__all__`` (``client``, ``common``, ``server``, "
"``simulation``)."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:63
msgid ""
"What does this mean? It means that ``client``, ``common``, ``server`` and"
" ``simulation`` are part of the public API, but ``cli`` and ``proto`` are"
" not. The ``flwr`` subpackages ``cli`` and ``proto`` are private APIs. A "
"private API can change completely from one release to the next (even in "
"patch releases). It can change in a breaking way, it can be renamed (for "
"example, ``flwr.cli`` could be renamed to ``flwr.command``) and it can "
"even be removed completely."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:70
msgid "Therefore, as a Flower user:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:72
msgid "``from flwr import client`` ✅ Ok, you're importing a public API."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:73
msgid ""
"``from flwr import proto`` ❌ Not recommended, you're importing a private "
"API."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:75
msgid ""
"What about components that are nested deeper in the hierarchy? Let's look"
" at Flower strategies to see another typical pattern. Flower strategies "
"like ``FedAvg`` are often imported using ``from flwr.server.strategy "
"import FedAvg``. Let's look at "
"``src/py/flwr/server/strategy/__init__.py``:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:91
msgid ""
"What's notable here is that all strategies are implemented in dedicated "
"modules (e.g., ``fedavg.py``). In ``__init__.py``, we *import* the "
"components we want to make part of the public API and then *export* them "
"via ``__all__``. Note that we export the component itself (for example, "
"the ``FedAvg`` class), but not the module it is defined in (for example, "
"``fedavg.py``). This allows us to move the definition of ``FedAvg`` into "
"a different module (or even a module in a subpackage) without breaking "
"the public API (as long as we update the import path in ``__init__.py``)."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:99
msgid "Therefore:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:101
msgid ""
"``from flwr.server.strategy import FedAvg`` ✅ Ok, you're importing a "
"class that is part of the public API."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:103
msgid ""
"``from flwr.server.strategy import fedavg`` ❌ Not recommended, you're "
"importing a private module."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:106
msgid ""
"This approach is also implemented in the tooling that automatically "
"builds API reference docs."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:110
msgid "Flower public API of private packages"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:112
msgid ""
"We also use this to define the public API of private subpackages. Public,"
" in this context, means the API that other ``flwr`` subpackages should "
"use. For example, ``flwr.server.driver`` is a private subpackage (it's "
"not exported via ``src/py/flwr/server/__init__.py``'s ``__all__``)."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:117
msgid ""
"Still, the private sub-package ``flwr.server.driver`` defines a "
"\"public\" API using ``__all__`` in "
"``src/py/flwr/server/driver/__init__.py``:"
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:132
msgid ""
"The interesting part is that both ``GrpcDriver`` and ``InMemoryDriver`` "
"are never used by Flower framework users, only by other parts of the "
"Flower framework codebase. Those other parts of the codebase import, for "
"example, ``InMemoryDriver`` using ``from flwr.server.driver import "
"InMemoryDriver`` (i.e., the ``InMemoryDriver`` exported via ``__all__``),"
" not ``from flwr.server.driver.in_memory_driver import InMemoryDriver`` "
"(``in_memory_driver.py`` is the module containing the actual "
"``InMemoryDriver`` class definition)."
msgstr ""

#: ../../source/contributor-explanation-public-and-private-apis.rst:140
msgid ""
"This is because ``flwr.server.driver`` defines a public interface for "
"other ``flwr`` subpackages. This allows codeowners of "
"``flwr.server.driver`` to refactor the package without breaking other "
"``flwr``-internal users."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:2
msgid "How to Build Docker Flower Images Locally"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:4
msgid ""
"Flower provides pre-made docker images on `Docker Hub "
"<https://hub.docker.com/u/flwr>`_ that include all necessary dependencies"
" for running the SuperLink, SuperNode or ServerApp. You can also build "
"your own custom docker images from scratch with a different version of "
"Python or Linux distribution (Ubuntu/Alpine) if that is what you need. In"
" this guide, we will explain what images exist and how to build them "
"locally."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:10
msgid ""
"Before we can start, we need to meet a few prerequisites in our local "
"development environment."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:13
#, fuzzy
msgid "Clone the ``flower`` repository."
msgstr "**Fourche le dépôt de Flower**"

#: ../../source/contributor-how-to-build-docker-images.rst:19
msgid "Verify the Docker daemon is running."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:21
msgid ""
"The build instructions that assemble the images are located in the "
"respective Dockerfiles. You can find them in the subdirectories of "
"``src/docker``."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:24
msgid ""
"Flower Docker images are configured via build arguments. Through build "
"arguments, we can make the creation of images more flexible. For example,"
" in the base image, we can specify the version of Python to install using"
" the ``PYTHON_VERSION`` build argument. Some of the build arguments have "
"default values, others must be specified when building the image. All "
"available build arguments for each image are listed in one of the tables "
"below."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:32
#, fuzzy
msgid "Building the Base Image"
msgstr "Chargement des données"

#: ../../source/contributor-how-to-build-docker-images.rst:38
#: ../../source/contributor-how-to-build-docker-images.rst:104
#, fuzzy
msgid "Build argument"
msgstr "Amélioration de la documentation"

#: ../../source/contributor-how-to-build-docker-images.rst:39
#: ../../source/contributor-how-to-build-docker-images.rst:105
#, fuzzy
msgid "Description"
msgstr "Dépréciations"

#: ../../source/contributor-how-to-build-docker-images.rst:40
#: ../../source/contributor-how-to-build-docker-images.rst:106
#, fuzzy
msgid "Required"
msgstr "Changements nécessaires"

#: ../../source/contributor-how-to-build-docker-images.rst:41
#: ../../source/contributor-how-to-build-docker-images.rst:107
#: ../../source/docker/persist-superlink-state.rst:19
#: ../../source/docker/pin-version.rst:12
#: ../../source/docker/set-environment-variables.rst:8
#, fuzzy
msgid "Example"
msgstr "Exemples de PyTorch"

#: ../../source/contributor-how-to-build-docker-images.rst:42
msgid "``DISTRO``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:43
#, fuzzy
msgid "The Linux distribution to use as the base image."
msgstr "Chargement des données"

#: ../../source/contributor-how-to-build-docker-images.rst:44
#: ../../source/contributor-how-to-build-docker-images.rst:48
#: ../../source/contributor-how-to-build-docker-images.rst:52
#: ../../source/contributor-how-to-build-docker-images.rst:68
#: ../../source/contributor-how-to-build-docker-images.rst:75
#: ../../source/contributor-how-to-build-docker-images.rst:110
#, fuzzy
msgid "No"
msgstr "Aucun"

#: ../../source/contributor-how-to-build-docker-images.rst:45
msgid "``ubuntu``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:46
#, fuzzy
msgid "``DISTRO_VERSION``"
msgstr "Version Python"

#: ../../source/contributor-how-to-build-docker-images.rst:47
msgid "Version of the Linux distribution."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:49
msgid ":substitution-code:`|ubuntu_version|`"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:50
#, fuzzy
msgid "``PYTHON_VERSION``"
msgstr "Version Python"

#: ../../source/contributor-how-to-build-docker-images.rst:51
msgid "Version of ``python`` to be installed."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:53
msgid "``3.11`` or ``3.11.1``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:54
msgid "``PIP_VERSION``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:55
msgid "Version of ``pip`` to be installed."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:56
#: ../../source/contributor-how-to-build-docker-images.rst:60
#: ../../source/contributor-how-to-build-docker-images.rst:64
#: ../../source/contributor-how-to-build-docker-images.rst:114
#, fuzzy
msgid "Yes"
msgstr "Types"

#: ../../source/contributor-how-to-build-docker-images.rst:57
msgid ":substitution-code:`|pip_version|`"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:58
msgid "``SETUPTOOLS_VERSION``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:59
msgid "Version of ``setuptools`` to be installed."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:61
msgid ":substitution-code:`|setuptools_version|`"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:62
msgid "``FLWR_VERSION``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:63
msgid "Version of Flower to be installed."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:65
msgid ":substitution-code:`|stable_flwr_version|`"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:66
msgid "``FLWR_PACKAGE``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:67
msgid "The Flower package to be installed."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:69
msgid "``flwr`` or ``flwr-nightly``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:70
#, fuzzy
msgid "``FLWR_VERSION_REF``"
msgstr "Version Python"

#: ../../source/contributor-how-to-build-docker-images.rst:71
msgid ""
"A `direct reference "
"<https://packaging.python.org/en/latest/specifications/version-specifiers"
"/#direct-references>`_ without the ``@`` specifier. If both "
"``FLWR_VERSION`` and ``FLWR_VERSION_REF`` are specified, the "
"``FLWR_VERSION_REF`` has precedence."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:76
#, fuzzy
msgid "`Direct Reference Examples`_"
msgstr "Demande pour un nouveau Flower Example"

#: ../../source/contributor-how-to-build-docker-images.rst:78
msgid ""
"The following example creates a base Ubuntu/Alpine image with Python "
"``3.11.0``, pip :substitution-code:`|pip_version|`, setuptools "
":substitution-code:`|setuptools_version|` and Flower :substitution-"
"code:`|stable_flwr_version|`:"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:93
msgid ""
"In this example, we specify our image name as ``flwr_base`` and the tag "
"as ``0.1.0``. Remember that the build arguments as well as the name and "
"tag can be adapted to your needs. These values serve as examples only."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:98
#, fuzzy
msgid "Building a Flower Binary Image"
msgstr "Chargement des données"

#: ../../source/contributor-how-to-build-docker-images.rst:108
msgid "``BASE_REPOSITORY``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:109
msgid "The repository name of the base image."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:111
msgid "``flwr/base``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:112
msgid "``BASE_IMAGE``"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:113
#, fuzzy
msgid "The Tag of the Flower base image."
msgstr "Chargement des données"

#: ../../source/contributor-how-to-build-docker-images.rst:115
msgid ":substitution-code:`|stable_flwr_version|-py3.11-ubuntu|ubuntu_version|`"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:117
msgid ""
"For example, to build a SuperLink image with the latest Flower version, "
"Python 3.11 and Ubuntu 22.04, run the following:"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:128
msgid ""
"If you want to use your own base image instead of the official Flower "
"base image, all you need to do is set the ``BASE_REPOSITORY`` build "
"argument to ``flwr_base`` (as we've specified above)."
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:140
msgid "After creating the image, we can test whether the image is working:"
msgstr ""

#: ../../source/contributor-how-to-build-docker-images.rst:147
#, fuzzy
msgid "Direct Reference Examples"
msgstr "Demande pour un nouveau Flower Example"

#: ../../source/contributor-how-to-contribute-translations.rst:2
#, fuzzy
msgid "Contribute translations"
msgstr "Explications"

#: ../../source/contributor-how-to-contribute-translations.rst:4
msgid ""
"Since `Flower 1.5 <https://flower.ai/docs/framework/ref-"
"changelog.html#v1-5-0-2023-08-31>`_ we have introduced translations to "
"our doc pages, but, as you might have noticed, the translations are often"
" imperfect. If you speak languages other than English, you might be able "
"to help us in our effort to make Federated Learning accessible to as many"
" people as possible by contributing to those translations! This might "
"also be a great opportunity for those wanting to become open source "
"contributors with little prerequisites."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:13
msgid ""
"Our translation project is publicly available over on `Weblate "
"<https://hosted.weblate.org/projects/flower-docs/framework/>`_, this "
"where most of the work will happen."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:18
#, fuzzy
msgid "Contribute to existing languages"
msgstr "Explications"

#: ../../source/contributor-how-to-contribute-translations.rst:23
msgid ""
"The first thing you will need to do in order to contribute is to create a"
" free Weblate account on this `page "
"<https://hosted.weblate.org/accounts/register/>`_. More information about"
" profile settings can be found `here "
"<https://docs.weblate.org/en/latest/user/profile.html>`_."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:28
msgid ""
"Once you are signed in to Weblate, you can navigate to the `Flower "
"Framework project <https://hosted.weblate.org/projects/flower-"
"docs/framework/>`_. Here, you should see the different existing languages"
" that can be found on the website."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:32
msgid ""
"Once you have selected the language you want to contribute to, you should"
" see a similar interface to this:"
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:37
msgid ""
"The most straight forward option here is to click on the ``Translate`` "
"button on the top right (in the ``Translation status`` section). This "
"will automatically bring you to the translation interface for "
"untranslated strings."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:41
msgid "This is what the interface looks like:"
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:45
msgid ""
"You input your translation in the text box at the top and then, once you "
"are happy with it, you either press ``Save and continue`` (to save the "
"translation and go to the next untranslated string), ``Save and stay`` "
"(to save the translation and stay on the same page), ``Suggest`` (to add "
"your translation to suggestions for other users to view), or ``Skip`` (to"
" go to the next untranslated string without saving anything)."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:51
msgid ""
"In order to help with the translations, you can see on the bottom the "
"``Nearby strings``, the ``Comments`` (from other contributors), the "
"``Automatic suggestions`` (from machine translation engines), the "
"translations in ``Other languages``, and the ``History`` of translations "
"for this string."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:56
msgid ""
"On the right, under the ``String information`` section, you can also "
"click the link under ``Source string location`` in order to view the "
"source of the doc file containing the string."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:60
msgid ""
"For more information about translating using Weblate, you can check out "
"this `in-depth guide "
"<https://docs.weblate.org/en/latest/user/translating.html>`_."
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:64
msgid "Add new languages"
msgstr ""

#: ../../source/contributor-how-to-contribute-translations.rst:66
msgid ""
"If you want to add a new language, you will first have to contact us, "
"either on `Slack <https://flower.ai/join-slack>`_, or by opening an issue"
" on our `GitHub repo <https://github.com/adap/flower>`_."
msgstr ""

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:2
msgid "Develop in VSCode Dev Containers"
msgstr "Utiliser les conteneurs VS Code Remote"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:4
msgid ""
"When working on the Flower framework we want to ensure that all "
"contributors use the same developer environment to format code or run "
"tests. For this purpose we are using the VSCode Remote Containers "
"extension. What is it? Read the following quote:"
msgstr ""
"Lorsque nous travaillons sur Flower, nous voulons nous assurer que tous "
"les contributeurs utilisent le même environnement de développement pour "
"formater le code ou exécuter des tests. À cette fin, nous utilisons "
"l'extension VSCode Remote Containers. Qu'est-ce que c'est ?"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:8
#, fuzzy
msgid ""
"The Visual Studio Code Remote - Containers extension lets you use a "
"Docker container as a fully-featured development environment. It allows "
"you to open any folder inside (or mounted into) a container and take "
"advantage of Visual Studio Code's full feature set. A "
"``devcontainer.json`` file in your project tells VS Code how to access "
"(or create) a development container with a well-defined tool and runtime "
"stack. This container can be used to run an application or to separate "
"tools, libraries, or runtimes needed for working with a codebase."
msgstr ""
"L'extension Visual Studio Code Remote - Containers te permet d'utiliser "
"un conteneur Docker comme environnement de développement complet. Elle te"
" permet d'ouvrir n'importe quel dossier à l'intérieur (ou monté dans) "
"d'un conteneur et de profiter de l'ensemble des fonctionnalités de Visual"
" Studio Code. Un fichier :code:`devcontainer.json` dans ton projet "
"indique à VS Code comment accéder à (ou créer) un conteneur de "
"développement avec une pile d'outils et d'exécutions bien définie. Ce "
"conteneur peut être utilisé pour exécuter une application ou pour séparer"
" les outils, les bibliothèques ou les exécutions nécessaires pour "
"travailler avec une base de code."

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:16
msgid ""
"Workspace files are mounted from the local file system or copied or "
"cloned into the container. Extensions are installed and run inside the "
"container, where they have full access to the tools, platform, and file "
"system. This means that you can seamlessly switch your entire development"
" environment just by connecting to a different container."
msgstr ""
"Les fichiers de l'espace de travail sont montés à partir du système de "
"fichiers local ou copiés ou clonés dans le conteneur. Les extensions sont"
" installées et exécutées à l'intérieur du conteneur, où elles ont un "
"accès complet aux outils, à la plateforme et au système de fichiers. Cela"
" signifie que tu peux changer de façon transparente tout ton "
"environnement de développement simplement en te connectant à un autre "
"conteneur."

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:22
#, fuzzy
msgid ""
"Source: `Official VSCode documentation "
"<https://code.visualstudio.com/docs/devcontainers/containers>`_"
msgstr ""
"Source : `Documentation officielle de VSCode "
"<https://code.visualstudio.com/docs/remote/containers>`_"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:26
msgid "Getting started"
msgstr "Pour commencer"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:28
#, fuzzy
msgid ""
"Configuring and setting up the ``Dockerfile`` as well the configuration "
"for the devcontainer can be a bit more involved. The good thing is you "
"don't have to do it. Usually it should be enough to install `Docker "
"<https://docs.docker.com/engine/install/>`_ on your system and ensure its"
" available on your command line. Additionally, install the `VSCode "
"Containers Extension <vscode:extension/ms-vscode-remote.remote-"
"containers>`_."
msgstr ""
"La configuration et le paramétrage du :code:`Dockerfile` ainsi que la "
"configuration du devcontainer peuvent être un peu plus complexes. "
"L'avantage, c'est que tu veux avoir à le faire. En général, il devrait "
"suffire d'installer Docker sur ton système et de s'assurer qu'il est "
"disponible sur ta ligne de commande. En outre, installe l'extension "
"`VSCode Containers Extension <vscode:extension/ms-vscode-remote.remote-"
"containers>`_."

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:35
msgid ""
"Now you should be good to go. When starting VSCode, it will ask you to "
"run in the container environment and - if you confirm - automatically "
"build the container and use it. To manually instruct VSCode to use the "
"devcontainer, you can, after installing the extension, click the green "
"area in the bottom left corner of your VSCode window and select the "
"option *(Re)Open Folder in Container*."
msgstr ""
"Maintenant, tu devrais être prêt à partir. Au démarrage de VSCode, il te "
"demandera de fonctionner dans l'environnement du conteneur et - si tu "
"confirmes - construira automatiquement le conteneur et l'utilisera. Pour "
"demander manuellement à VSCode d'utiliser le devcontainer, tu peux, après"
" avoir installé l'extension, cliquer sur la zone verte dans le coin "
"inférieur gauche de ta fenêtre VSCode et sélectionner l'option "
"*(Re)Ouvrir le dossier dans le conteneur*."

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:41
msgid ""
"In some cases your setup might be more involved. For those cases consult "
"the following sources:"
msgstr ""
"Dans certains cas, ton installation peut être plus complexe. Pour ces "
"cas-là, consulte les sources suivantes :"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:44
#, fuzzy
msgid ""
"`Developing inside a Container "
"<https://code.visualstudio.com/docs/devcontainers/containers#_system-"
"requirements>`_"
msgstr ""
"`Développement à l'intérieur d'un conteneur "
"<https://code.visualstudio.com/docs/remote/containers#_system-"
"requirements>`_"

#: ../../source/contributor-how-to-develop-in-vscode-dev-containers.rst:46
#, fuzzy
msgid ""
"`Remote development in Containers "
"<https://code.visualstudio.com/docs/devcontainers/tutorial>`_"
msgstr ""
"`Développement à distance dans les conteneurs "
"<https://code.visualstudio.com/docs/remote/containers-tutorial>`_"

#: ../../source/contributor-how-to-install-development-versions.rst:2
msgid "Install development versions"
msgstr "Installer les versions de développement de Flower"

#: ../../source/contributor-how-to-install-development-versions.rst:5
msgid "Install development versions of Flower"
msgstr "Installe les versions de développement de Flower"

#: ../../source/contributor-how-to-install-development-versions.rst:8
msgid "Using Poetry (recommended)"
msgstr "Utiliser la poésie (recommandé)"

#: ../../source/contributor-how-to-install-development-versions.rst:10
msgid ""
"Install a ``flwr`` pre-release from PyPI: update the ``flwr`` dependency "
"in ``pyproject.toml`` and then reinstall (don't forget to delete "
"``poetry.lock`` (``rm poetry.lock``) before running ``poetry install``)."
msgstr ""
"Installez une pré-version ``flwr`` de PyPI : mettez à jour la dépendance "
"``flwr`` dans ``pyproject.toml`` puis réinstallez (n'oubliez pas de "
"supprimer ``poetry.lock`` (``rm poetry.lock``) avant d'exécuter ``poetry "
"install``)."

#: ../../source/contributor-how-to-install-development-versions.rst:14
msgid ""
"``flwr = { version = \"1.0.0a0\", allow-prereleases = true }`` (without "
"extras)"
msgstr ""
"``flwr = { version = \"1.0.0a0\", allow-prereleases = true }`` (sans "
"extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:15
msgid ""
"``flwr = { version = \"1.0.0a0\", allow-prereleases = true, extras = "
"[\"simulation\"] }`` (with extras)"
msgstr ""
"``flwr = { version = \"1.0.0a0\", allow-prereleases = true, extras = "
"[\"simulation\"] }`` (avec extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:18
msgid ""
"Install ``flwr`` from a local copy of the Flower source code via "
"``pyproject.toml``:"
msgstr ""
"Installez ``flwr`` à partir d'une copie locale du code source de Flower "
"via ``pyproject.toml`` :"

#: ../../source/contributor-how-to-install-development-versions.rst:20
msgid "``flwr = { path = \"../../\", develop = true }`` (without extras)"
msgstr "``flwr = { path = \"../../\", develop = true }`` (sans extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:21
msgid ""
"``flwr = { path = \"../../\", develop = true, extras = [\"simulation\"] "
"}`` (with extras)"
msgstr ""
"``flwr = { path = \"../../\", develop = true, extras = [\"simulation\"] "
"}`` (avec extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:23
msgid "Install ``flwr`` from a local wheel file via ``pyproject.toml``:"
msgstr "Installez ``flwr`` à partir d'un fichier local via ``pyproject.toml`` :"

#: ../../source/contributor-how-to-install-development-versions.rst:25
#, fuzzy
msgid ""
"``flwr = { path = \"../../dist/flwr-1.8.0-py3-none-any.whl\" }`` (without"
" extras)"
msgstr ""
"``flwr = { path = \"../../dist/flwr-1.0.0-py3-none-any.whl\" }`` (sans "
"extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:26
#, fuzzy
msgid ""
"``flwr = { path = \"../../dist/flwr-1.8.0-py3-none-any.whl\", extras = "
"[\"simulation\"] }`` (with extras)"
msgstr ""
"``flwr = { path = \"../../dist/flwr-1.0.0-py3-none-any.whl\", extras = "
"[\"simulation\"] }`` (avec extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:29
msgid ""
"Please refer to the Poetry documentation for further details: `Poetry "
"Dependency Specification <https://python-poetry.org/docs/dependency-"
"specification/>`_"
msgstr ""
"Reporte-toi à la documentation de Poetry pour plus de détails : `Poetry "
"Dependency Specification <https://python-poetry.org/docs/dependency-"
"specification/>`_"

#: ../../source/contributor-how-to-install-development-versions.rst:33
msgid "Using pip (recommended on Colab)"
msgstr "Utiliser pip (recommandé sur Colab)"

#: ../../source/contributor-how-to-install-development-versions.rst:35
msgid "Install a ``flwr`` pre-release from PyPI:"
msgstr "Installe une pré-version de ``flwr`` depuis PyPI :"

#: ../../source/contributor-how-to-install-development-versions.rst:37
msgid "``pip install -U --pre flwr`` (without extras)"
msgstr "``pip install -U --pre flwr`` (sans les extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:38
msgid "``pip install -U --pre 'flwr[simulation]'`` (with extras)"
msgstr "``pip install -U --pre 'flwr[simulation]'`` (avec les extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:40
msgid ""
"Python packages can be installed from git repositories. Use one of the "
"following commands to install the Flower directly from GitHub."
msgstr ""
"Les paquets Python peuvent être installés à partir des dépôts git. "
"Utilise l'une des commandes suivantes pour installer Flower directement à"
" partir de GitHub."

#: ../../source/contributor-how-to-install-development-versions.rst:43
msgid "Install ``flwr`` from the default GitHub branch (``main``):"
msgstr "Installez ``flwr`` à partir de la branche GitHub par défaut (``main``) :"

#: ../../source/contributor-how-to-install-development-versions.rst:45
msgid ""
"``pip install flwr@git+https://github.com/adap/flower.git`` (without "
"extras)"
msgstr ""
"``pip install flwr@git+https://github.com/adap/flower.git`` (sans les "
"extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:46
msgid ""
"``pip install 'flwr[simulation]@git+https://github.com/adap/flower.git'``"
" (with extras)"
msgstr ""
"``pip install 'flwr[simulation]@git+https://github.com/adap/flower.git'``"
" (avec les extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:49
msgid "Install ``flwr`` from a specific GitHub branch (``branch-name``):"
msgstr ""
"Installez ``flwr`` à partir d'une branche GitHub spécifique (``nom-"
"branche``) :"

#: ../../source/contributor-how-to-install-development-versions.rst:51
msgid ""
"``pip install flwr@git+https://github.com/adap/flower.git@branch-name`` "
"(without extras)"
msgstr ""
"``pip install flwr@git+https://github.com/adap/flower.git@nom-branche`` "
"(sans les extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:53
#, fuzzy
msgid ""
"``pip install 'flwr[simulation]@git+https://github.com/adap/flower.git"
"@branch-name'`` (with extras)"
msgstr ""
"``pip install 'flwr[simulation]@git+https://github.com/adap/flower.git"
"``@nom-de-la-branche'`` (avec des extras)"

#: ../../source/contributor-how-to-install-development-versions.rst:57
msgid "Open Jupyter Notebooks on Google Colab"
msgstr "Ouvre les carnets Jupyter sur Google Colab"

#: ../../source/contributor-how-to-install-development-versions.rst:59
#, fuzzy
msgid ""
"Open the notebook ``doc/source/tutorial-series-get-started-with-flower-"
"pytorch.ipynb``:"
msgstr ""
"Ouvrir le notebook ``doc/source/tutorial/Flower-1-Intro-to-FL-"
"PyTorch.ipynb`` :"

#: ../../source/contributor-how-to-install-development-versions.rst:61
#, fuzzy
msgid ""
"https://colab.research.google.com/github/adap/flower/blob/main/doc/source"
"/tutorial-series-get-started-with-flower-pytorch.ipynb"
msgstr ""
"https://colab.research.google.com/github/adap/flower/blob/main/doc/source"
"/tutorial-get-started-with-flower-pytorch.ipynb"

#: ../../source/contributor-how-to-install-development-versions.rst:63
msgid ""
"Open a development version of the same notebook from branch `branch-name`"
" by changing ``main`` to ``branch-name`` (right after ``blob``):"
msgstr ""
"Ouvre une version de développement du même carnet à partir de la branche "
"`nom-branche` en remplaçant `main` par `nom-branche` (juste après `blob`)"
" :"

#: ../../source/contributor-how-to-install-development-versions.rst:66
#, fuzzy
msgid ""
"https://colab.research.google.com/github/adap/flower/blob/branch-"
"name/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb"
msgstr ""
"https://colab.research.google.com/github/adap/flower/blob/branch-"
"name/doc/source/tutorial-get-started-with-flower-pytorch.ipynb"

#: ../../source/contributor-how-to-install-development-versions.rst:68
msgid "Install a `whl` on Google Colab:"
msgstr ""

#: ../../source/contributor-how-to-install-development-versions.rst:70
msgid ""
"In the vertical icon grid on the left hand side, select ``Files`` > "
"``Upload to session storage``"
msgstr ""

#: ../../source/contributor-how-to-install-development-versions.rst:72
msgid "Upload the whl (e.g., ``flwr-1.8.0-py3-none-any.whl``)"
msgstr ""

#: ../../source/contributor-how-to-install-development-versions.rst:73
msgid ""
"Change ``!pip install -q 'flwr[simulation]' torch torchvision "
"matplotlib`` to ``!pip install -q 'flwr-1.8.0-py3-none-"
"any.whl[simulation]' torch torchvision matplotlib``"
msgstr ""

#: ../../source/contributor-how-to-release-flower.rst:2
msgid "Release Flower"
msgstr "Publier Flower"

#: ../../source/contributor-how-to-release-flower.rst:4
msgid ""
"This document describes the current release process. It may or may not "
"change in the future."
msgstr ""
"Ce document décrit le processus de diffusion actuel, qui peut ou non "
"changer à l'avenir."

#: ../../source/contributor-how-to-release-flower.rst:8
msgid "During the release"
msgstr "Lors de la sortie"

#: ../../source/contributor-how-to-release-flower.rst:10
msgid ""
"The version number of a release is stated in ``pyproject.toml``. To "
"release a new version of Flower, the following things need to happen (in "
"that order):"
msgstr ""
"Le numéro de version d'une version est indiqué dans ``pyproject.toml``. "
"Pour publier une nouvelle version de Flower, les choses suivantes doivent"
" se produire (dans cet ordre) :"

#: ../../source/contributor-how-to-release-flower.rst:13
msgid ""
"Run ``python3 ./dev/update_changelog.py <YOUR_GH_TOKEN>`` in order to add"
" every new change to the changelog (feel free to make manual changes to "
"the changelog afterwards until it looks good)."
msgstr ""

#: ../../source/contributor-how-to-release-flower.rst:16
msgid ""
"Once the changelog has been updated with all the changes, run ``./dev"
"/prepare-release-changelog.sh v<NEW_VERSION>``, where ``<NEW_VERSION>`` "
"is the version stated in ``pyproject.toml`` (notice the ``v`` added "
"before it). This will replace the ``Unreleased`` header of the changelog "
"by the version and current date, and it will add a thanking message for "
"the contributors. Open a pull request with those changes."
msgstr ""

#: ../../source/contributor-how-to-release-flower.rst:22
msgid ""
"Once the pull request is merged, tag the release commit with the version "
"number as soon as the PR is merged: ``git tag v<NEW_VERSION>`` (notice "
"the ``v`` added before the version number), then ``git push --tags``. "
"This will create a draft release on GitHub containing the correct "
"artifacts and the relevant part of the changelog."
msgstr ""

#: ../../source/contributor-how-to-release-flower.rst:26
msgid "Check the draft release on GitHub, and if everything is good, publish it."
msgstr ""

#: ../../source/contributor-how-to-release-flower.rst:29
msgid "After the release"
msgstr "Après la publication"

#: ../../source/contributor-how-to-release-flower.rst:31
msgid "Create a pull request which contains the following changes:"
msgstr "Crée une demande de pull qui contient les modifications suivantes :"

#: ../../source/contributor-how-to-release-flower.rst:33
msgid "Increase the minor version in ``pyproject.toml`` by one."
msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité."

#: ../../source/contributor-how-to-release-flower.rst:34
msgid "Update all files which contain the current version number if necessary."
msgstr ""
"Mets à jour tous les fichiers qui contiennent le numéro de version actuel"
" si nécessaire."

#: ../../source/contributor-how-to-release-flower.rst:35
msgid "Add a new ``Unreleased`` section in ``changelog.md``."
msgstr "Ajoute une nouvelle section ``Unreleased`` dans ``changelog.md``."

#: ../../source/contributor-how-to-release-flower.rst:37
msgid ""
"Merge the pull request on the same day (i.e., before a new nightly "
"release gets published to PyPI)."
msgstr ""
"Fusionne la pull request le jour même (c'est-à-dire avant qu'une nouvelle"
" version nightly ne soit publiée sur PyPI)."

#: ../../source/contributor-how-to-release-flower.rst:41
msgid "Publishing a pre-release"
msgstr "Publier une pré-version"

#: ../../source/contributor-how-to-release-flower.rst:44
msgid "Pre-release naming"
msgstr "Nom de la pré-version"

#: ../../source/contributor-how-to-release-flower.rst:46
msgid ""
"PyPI supports pre-releases (alpha, beta, release candidate). Pre-releases"
" MUST use one of the following naming patterns:"
msgstr ""
"PyPI prend en charge les préversions (alpha, bêta, version candidate). "
"Les préversions DOIVENT utiliser l'un des modèles de dénomination "
"suivants :"

#: ../../source/contributor-how-to-release-flower.rst:49
msgid "Alpha: ``MAJOR.MINOR.PATCHaN``"
msgstr "Alpha : ``MAJOR.MINOR.PATCHaN``"

#: ../../source/contributor-how-to-release-flower.rst:50
msgid "Beta: ``MAJOR.MINOR.PATCHbN``"
msgstr "Bêta : ``MAJOR.MINOR.PATCHbN``"

#: ../../source/contributor-how-to-release-flower.rst:51
msgid "Release candidate (RC): ``MAJOR.MINOR.PATCHrcN``"
msgstr "Candidat à la publication (RC) : ``MAJOR.MINOR.PATCHrcN``"

#: ../../source/contributor-how-to-release-flower.rst:53
msgid "Examples include:"
msgstr "Voici quelques exemples :"

#: ../../source/contributor-how-to-release-flower.rst:55
msgid "``1.0.0a0``"
msgstr "``1.0.0a0``"

#: ../../source/contributor-how-to-release-flower.rst:56
msgid "``1.0.0b0``"
msgstr "``1.0.0b0``"

#: ../../source/contributor-how-to-release-flower.rst:57
msgid "``1.0.0rc0``"
msgstr "``1.0.0rc0``"

#: ../../source/contributor-how-to-release-flower.rst:58
msgid "``1.0.0rc1``"
msgstr "1.0.0rc1"

#: ../../source/contributor-how-to-release-flower.rst:60
msgid ""
"This is in line with PEP-440 and the recommendations from the Python "
"Packaging Authority (PyPA):"
msgstr ""
"Ceci est conforme au PEP-440 et aux recommandations de l'Autorité de "
"l'emballage Python (PyPA) :"

#: ../../source/contributor-how-to-release-flower.rst:63
msgid "`PEP-440 <https://peps.python.org/pep-0440/>`_"
msgstr "`PEP-440 <https://peps.python.org/pep-0440/>`_"

#: ../../source/contributor-how-to-release-flower.rst:64
msgid ""
"`PyPA Choosing a versioning scheme "
"<https://packaging.python.org/en/latest/guides/distributing-packages-"
"using-setuptools/#choosing-a-versioning-scheme>`_"
msgstr ""
"`PyPA Choisir un schéma de version "
"<https://packaging.python.org/en/latest/guides/distributing-packages-"
"using-setuptools/#choosing-a-versioning-scheme>`_"

#: ../../source/contributor-how-to-release-flower.rst:67
msgid ""
"Note that the approach defined by PyPA is not compatible with SemVer "
"2.0.0 spec, for details consult the `Semantic Versioning Specification "
"<https://semver.org/spec/v2.0.0.html#spec-item-11>`_ (specifically item "
"11 on precedence)."
msgstr ""
"Note que l'approche définie par PyPA n'est pas compatible avec la "
"spécification SemVer 2.0.0, pour plus de détails, consulte la `Semantic "
"Versioning Specification <https://semver.org/spec/v2.0.0.html#spec-"
"item-11>`_ (en particulier le point 11 sur la préséance)."

#: ../../source/contributor-how-to-release-flower.rst:73
msgid "Pre-release classification"
msgstr "Classification avant publication"

#: ../../source/contributor-how-to-release-flower.rst:75
msgid "Should the next pre-release be called alpha, beta, or release candidate?"
msgstr ""
"La prochaine préversion doit-elle être appelée alpha, bêta ou release "
"candidate ?"

#: ../../source/contributor-how-to-release-flower.rst:77
msgid ""
"RC: feature complete, no known issues (apart from issues that are "
"classified as \"won't fix\" for the next stable release) - if no issues "
"surface this will become the next stable release"
msgstr ""
"RC : fonctionnalités complètes, pas de problèmes connus (à l'exception "
"des problèmes classés comme \"à ne pas corriger\" pour la prochaine "
"version stable) - si aucun problème n'apparaît, cette version deviendra "
"la prochaine version stable"

#: ../../source/contributor-how-to-release-flower.rst:80
msgid "Beta: feature complete, allowed to have known issues"
msgstr "Bêta : fonctionnalité complète, autorisée à avoir des problèmes connus"

#: ../../source/contributor-how-to-release-flower.rst:81
msgid "Alpha: not feature complete, allowed to have known issues"
msgstr ""
"Alpha : les fonctionnalités ne sont pas complètes, les problèmes connus "
"sont autorisés"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:2
msgid "Set up a virtual env"
msgstr "Mettre un environment virtuel en place"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:4
msgid ""
"It is recommended to run your Python setup within a virtual environment. "
"This guide shows three different examples how to create a virtual "
"environment with pyenv virtualenv, poetry, or Anaconda. You can follow "
"the instructions or choose your preferred setup."
msgstr ""
"Il est recommandé d'exécuter ton installation Python dans un "
"environnement virtuel. Ce guide montre trois exemples différents de "
"création d'un environnement virtuel avec pyenv virtualenv, poetry ou "
"Anaconda. Tu peux suivre les instructions ou choisir la configuration que"
" tu préfères."

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:10
msgid "Python Version"
msgstr "Version Python"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:12
#: ../../source/how-to-install-flower.rst:7
#, fuzzy
msgid ""
"Flower requires at least `Python 3.9 <https://docs.python.org/3.9/>`_, "
"but `Python 3.10 <https://docs.python.org/3.10/>`_ or above is "
"recommended."
msgstr ""
"Flower nécessite `Python 3.9 <https://docs.python.org/3.9/>`_ ou plus, "
"nous recommandons `Python 3.10 <https://docs.python.org/3.10/>`_."

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:17
msgid ""
"Due to a known incompatibility with `ray "
"<https://docs.ray.io/en/latest/>`_, we currently recommend utilizing at "
"most `Python 3.11 <https://docs.python.org/3.11/>`_ for running Flower "
"simulations."
msgstr ""

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:22
#, fuzzy
msgid "Virtualenv with Pyenv/Virtualenv"
msgstr "Virutualenv avec Pyenv/Virtualenv"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:24
msgid ""
"One of the recommended virtual environment is `pyenv "
"<https://github.com/pyenv/pyenv>`_/`virtualenv <https://github.com/pyenv"
"/pyenv-virtualenv>`_. Please see `Flower examples "
"<https://github.com/adap/flower/tree/main/examples/>`_ for details."
msgstr ""
"L'un des environnements virtuels recommandés est `pyenv "
"<https://github.com/pyenv/pyenv>`_/`virtualenv <https://github.com/pyenv"
"/pyenv-virtualenv>`_. Voir `Flower examples "
"<https://github.com/adap/flower/tree/main/examples/>`_ pour plus de "
"détails."

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:29
#, fuzzy
msgid ""
"Once Pyenv is set up, you can use it to install `Python Version 3.10 "
"<https://docs.python.org/3.10/>`_ or above:"
msgstr ""
"Une fois Pyenv mis en place, tu peux l'utiliser pour installer `Python "
"Version 3.7 <https://docs.python.org/3.7/>`_ ou supérieure :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:36
msgid "Create the virtualenv with:"
msgstr "Crée le virtualenv avec :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:42
msgid "Activate the virtualenv by running the following command:"
msgstr "Active la virtualenv en exécutant la commande suivante :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:49
msgid "Virtualenv with Poetry"
msgstr "Virtualenv et la poésie"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:51
msgid ""
"The Flower examples are based on `Poetry <https://python-"
"poetry.org/docs/>`_ to manage dependencies. After installing Poetry you "
"simply create a virtual environment with:"
msgstr ""
"Les exemples de Flower sont basés sur `Poetry <https://python-"
"poetry.org/docs/>`_ pour gérer les dépendances. Après l'installation de "
"Poetry, il te suffit de créer un environnement virtuel avec :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:58
msgid ""
"If you open a new terminal you can activate the previously created "
"virtual environment with the following command:"
msgstr ""
"Si tu ouvres un nouveau terminal, tu peux activer l'environnement virtuel"
" précédemment créé avec la commande suivante :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:66
msgid "Virtualenv with Anaconda"
msgstr "Virtualenv avec Anaconda"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:68
#, fuzzy
msgid ""
"If you prefer to use Anaconda for your virtual environment then install "
"and setup the `conda <https://docs.conda.io/projects/conda/en/latest"
"/user-guide/install/index.html>`_ package. After setting it up you can "
"create a virtual environment with:"
msgstr ""
"Si tu préfères utiliser Anaconda pour ton environnement virtuel, installe"
" et configure le paquet `conda "
"<https://docs.conda.io/projects/conda/en/latest/user-"
"guide/install/index.html>`_. Après l'avoir configuré, tu peux créer un "
"environnement virtuel avec :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:76
msgid "and activate the virtual environment with:"
msgstr "et active l'environnement virtuel avec :"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:83
msgid "And then?"
msgstr "Et ensuite ?"

#: ../../source/contributor-how-to-set-up-a-virtual-env.rst:85
msgid ""
"As soon as you created your virtual environment you clone one of the "
"`Flower examples <https://github.com/adap/flower/tree/main/examples/>`_."
msgstr ""
"Dès que tu as créé ton environnement virtuel, tu clones l'un des exemples"
" de `Flower <https://github.com/adap/flower/tree/main/examples/>`_."

#: ../../source/contributor-how-to-write-documentation.rst:2
msgid "Write documentation"
msgstr "Rédiger de la documentation"

#: ../../source/contributor-how-to-write-documentation.rst:5
msgid "Project layout"
msgstr "Schéma du projet"

#: ../../source/contributor-how-to-write-documentation.rst:7
msgid ""
"The Flower documentation lives in the ``doc`` directory. The Sphinx-based"
" documentation system supports both reStructuredText (``.rst`` files) and"
" Markdown (``.md`` files)."
msgstr ""
"La documentation de Flower se trouve dans le répertoire `doc``. Le "
"système de documentation basé sur Sphinx supporte à la fois "
"reStructuredText (fichiers `.rst`) et Markdown (fichiers `.md`)."

#: ../../source/contributor-how-to-write-documentation.rst:10
#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:196
#, fuzzy
msgid ""
"Note that, in order to build the documentation locally (with ``poetry run"
" make html``, like described below), `Pandoc "
"<https://pandoc.org/installing.html>`_ needs to be installed on the "
"system."
msgstr ""
"Noter que, pour compiler la documentation localement (avec ``poetry run "
"make html``, comme décrit plus bas), `Pandoc "
"<https://pandoc.org/installing.html>_` doit être installé sur le système."

#: ../../source/contributor-how-to-write-documentation.rst:15
msgid "Edit an existing page"
msgstr "Modifier une page existante"

#: ../../source/contributor-how-to-write-documentation.rst:17
msgid "Edit an existing ``.rst`` (or ``.md``) file under ``doc/source/``"
msgstr "Modifier un fichier ``.rst`` (ou ``.md``) existant sous ``doc/source/``"

#: ../../source/contributor-how-to-write-documentation.rst:18
#: ../../source/contributor-how-to-write-documentation.rst:27
msgid "Compile the docs: ``cd doc``, then ``poetry run make html``"
msgstr "Compilez les documents : ``cd doc``, puis ``poetry run make html``"

#: ../../source/contributor-how-to-write-documentation.rst:19
#: ../../source/contributor-how-to-write-documentation.rst:28
msgid "Open ``doc/build/html/index.html`` in the browser to check the result"
msgstr ""
"Ouvre ``doc/build/html/index.html`` dans le navigateur pour vérifier le "
"résultat"

#: ../../source/contributor-how-to-write-documentation.rst:22
msgid "Create a new page"
msgstr "Créer une nouvelle page"

#: ../../source/contributor-how-to-write-documentation.rst:24
msgid "Add new ``.rst`` file under ``doc/source/``"
msgstr "Ajouter un nouveau fichier ``.rst`` sous ``doc/source/``"

#: ../../source/contributor-how-to-write-documentation.rst:25
msgid "Add content to the new ``.rst`` file"
msgstr "Ajoute du contenu au nouveau fichier ``.rst``"

#: ../../source/contributor-how-to-write-documentation.rst:26
msgid "Link to the new rst from ``index.rst``"
msgstr "Lien vers le nouveau rst depuis ``index.rst``"

#: ../../source/contributor-ref-good-first-contributions.rst:2
msgid "Good first contributions"
msgstr "Bonnes premières contributions"

#: ../../source/contributor-ref-good-first-contributions.rst:4
msgid ""
"We welcome contributions to Flower! However, it is not always easy to "
"know where to start. We therefore put together a few recommendations on "
"where to start to increase your chances of getting your PR accepted into "
"the Flower codebase."
msgstr ""
"Les contributions à Flower sont les bienvenues ! Cependant, il n'est pas "
"toujours facile de savoir par où commencer. Nous avons donc rassemblé "
"quelques recommandations sur les points de départ pour augmenter tes "
"chances de voir ton PR accepté dans la base de code de Flower."

#: ../../source/contributor-ref-good-first-contributions.rst:9
msgid "Where to start"
msgstr "Par où commencer"

#: ../../source/contributor-ref-good-first-contributions.rst:11
msgid ""
"Until the Flower core library matures it will be easier to get PR's "
"accepted if they only touch non-core areas of the codebase. Good "
"candidates to get started are:"
msgstr ""
"Jusqu'à ce que la bibliothèque centrale de Flower arrive à maturité, il "
"sera plus facile de faire accepter les RP s'ils ne touchent que des zones"
" non essentielles de la base de code. Les bons candidats pour commencer "
"sont :"

#: ../../source/contributor-ref-good-first-contributions.rst:14
msgid "Documentation: What's missing? What could be expressed more clearly?"
msgstr ""
"Documentation : Qu'est-ce qui manque ? Qu'est-ce qui pourrait être "
"exprimé plus clairement ?"

#: ../../source/contributor-ref-good-first-contributions.rst:15
msgid "Baselines: See below."
msgstr "Références : voir ci-dessous."

#: ../../source/contributor-ref-good-first-contributions.rst:16
msgid "Examples: See below."
msgstr "Exemples : voir ci-dessous."

#: ../../source/contributor-ref-good-first-contributions.rst:19
msgid "Request for Flower Baselines"
msgstr "Demande pour une nouvelle Flower Baseline"

#: ../../source/contributor-ref-good-first-contributions.rst:21
#, fuzzy
msgid ""
"If you are not familiar with Flower Baselines, you should probably check-"
"out our `contributing guide for baselines "
"<https://flower.ai/docs/baselines/how-to-contribute-baselines.html>`_."
msgstr ""
"Si tu n'es pas familier avec les Flower Baselines, tu devrais "
"probablement consulter notre `guide de contribution pour les baselines "
"<https://flower.ai/docs/baselines/how-to-contribute-baselines.html>`_."

#: ../../source/contributor-ref-good-first-contributions.rst:25
#, fuzzy
msgid ""
"You should then check out the open `issues "
"<https://github.com/adap/flower/issues?q=is%3Aopen+is%3Aissue+label%3A%22new+baseline%22>`_"
" for baseline requests. If you find a baseline that you'd like to work on"
" and that has no assignees, feel free to assign it to yourself and start "
"working on it!"
msgstr ""
"Tu devrais ensuite consulter les `issues ouvertes "
"<https://github.com/adap/flower/issues?q=is%3Aopen+is%3Aissue+label%3A%22new+baseline%22>`_"
" pour les demandes de lignes de base. Si tu trouves une ligne de base sur"
" laquelle tu aimerais travailler et qui n'a pas d'assignés, n'hésite pas "
"à te l'attribuer et à commencer à travailler dessus !"

#: ../../source/contributor-ref-good-first-contributions.rst:30
msgid ""
"Otherwise, if you don't find a baseline you'd like to work on, be sure to"
" open a new issue with the baseline request template!"
msgstr ""
"Sinon, si tu ne trouves pas de ligne de base sur laquelle tu aimerais "
"travailler, n'oublie pas d'ouvrir un nouveau problème à l'aide du modèle "
"de demande de ligne de base !"

#: ../../source/contributor-ref-good-first-contributions.rst:34
msgid "Request for examples"
msgstr "Demande pour un nouveau Flower Example"

#: ../../source/contributor-ref-good-first-contributions.rst:36
msgid ""
"We wish we had more time to write usage examples because we believe they "
"help users to get started with building what they want to build. Here are"
" a few ideas where we'd be happy to accept a PR:"
msgstr ""
"Nous aimerions avoir plus de temps pour écrire des exemples d'utilisation"
" car nous pensons qu'ils aident les utilisateurs à commencer à construire"
" ce qu'ils veulent construire. Voici quelques idées pour lesquelles nous "
"serions heureux d'accepter un RP :"

#: ../../source/contributor-ref-good-first-contributions.rst:40
msgid "Llama 2 fine-tuning, with Hugging Face Transformers and PyTorch"
msgstr "LLaMA 2 fine-tuning avec Hugging Face et PyTorch"

#: ../../source/contributor-ref-good-first-contributions.rst:41
#: ../../source/tutorial-quickstart-xgboost.rst:7
msgid "XGBoost"
msgstr "XGBoost"

#: ../../source/contributor-ref-good-first-contributions.rst:42
msgid "Android ONNX on-device training"
msgstr "Training sur téléphone à l'aide d'Android ONNX"

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:2
msgid "Secure Aggregation Protocols"
msgstr "Protocoles d'agrégation sécurisés"

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:6
msgid ""
"While this term might be used in other places, here it refers to a series"
" of protocols, including ``SecAgg``, ``SecAgg+``, ``LightSecAgg``, "
"``FastSecAgg``, etc. This concept was first proposed by Bonawitz et al. "
"in `Practical Secure Aggregation for Federated Learning on User-Held Data"
" <https://arxiv.org/abs/1611.04482>`_."
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:11
msgid ""
"Secure Aggregation protocols are used to securely aggregate model updates"
" from multiple clients while keeping the updates private. This is done by"
" encrypting the model updates before sending them to the server. The "
"server can decrypt only the aggregated model update without being able to"
" inspect individual updates."
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:16
msgid ""
"Flower now provides the ``SecAgg`` and ``SecAgg+`` protocols. While we "
"plan to implement more protocols in the future, one may also implement "
"their own custom secure aggregation protocol via low-level APIs."
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:21
msgid "The ``SecAgg+`` protocol in Flower"
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:23
msgid ""
"The ``SecAgg+`` protocol is implemented using the ``SecAggPlusWorkflow`` "
"in the ``ServerApp`` and the ``secaggplus_mod`` in the ``ClientApp``. The"
" ``SecAgg`` protocol is a special case of the ``SecAgg+`` protocol, and "
"one may use ``SecAggWorkflow`` and ``secagg_mod`` for that."
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:28
msgid ""
"You may find a detailed example in the `Secure Aggregation Example "
"<https://flower.ai/docs/examples/flower-secure-aggregation.html>`_. The "
"documentation for the ``SecAgg+`` protocol configuration is available at "
"`SecAggPlusWorkflow <https://flower.ai/docs/framework/ref-"
"api/flwr.server.workflow.SecAggPlusWorkflow.html>`_."
msgstr ""

#: ../../source/contributor-ref-secure-aggregation-protocols.rst:33
msgid ""
"The logic of the ``SecAgg+`` protocol is illustrated in the following "
"sequence diagram: the dashed lines represent communication over the "
"network, and the solid lines represent communication within the same "
"process. The ``ServerApp`` is connected to ``SuperLink``, and the "
"``ClientApp`` is connected to the ``SuperNode``; thus, the communication "
"between the ``ServerApp`` and the ``ClientApp`` is done via the "
"``SuperLink`` and the ``SuperNode``."
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:2
msgid "Contribute on GitHub"
msgstr "Contribuer sur GitHub"

#: ../../source/contributor-tutorial-contribute-on-github.rst:4
msgid ""
"This guide is for people who want to get involved with Flower, but who "
"are not used to contributing to GitHub projects."
msgstr ""
"Ce guide s'adresse aux personnes qui veulent participer au développement "
"de Flower mais qui n'ont pas l'habitude de contribuer à des projets "
"GitHub."

#: ../../source/contributor-tutorial-contribute-on-github.rst:7
#, fuzzy
msgid ""
"If you're familiar with how contributing on GitHub works, you can "
"directly checkout our :doc:`getting started guide for contributors "
"<contributor-tutorial-get-started-as-a-contributor>`."
msgstr ""
"Si tu es familier avec le fonctionnement des contributions sur GitHub, tu"
" peux directement consulter notre `guide de démarrage pour les "
"contributeurs <https://flower.ai/docs/getting-started-for-"
"contributors.html>`_ et des exemples de `bonnes premières contributions "
"<https://flower.ai/docs/good-first-contributions.html>`_."

#: ../../source/contributor-tutorial-contribute-on-github.rst:12
msgid "Setting up the repository"
msgstr "Mise en place du référentiel"

#: ../../source/contributor-tutorial-contribute-on-github.rst:29
msgid "**Create a GitHub account and setup Git**"
msgstr "**Créer un compte GitHub et configurer Git**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:15
#, fuzzy
msgid ""
"Git is a distributed version control tool. This allows for an entire "
"codebase's history to be stored and every developer's machine. It is a "
"software that will need to be installed on your local machine, you can "
"follow this `guide <https://docs.github.com/en/get-started/getting-"
"started-with-git/set-up-git>`_ to set it up."
msgstr ""
"Git est un outil de contrôle de version distribué. Il permet de stocker "
"l'historique d'une base de code entière sur la machine de chaque "
"développeur. C'est un logiciel qui devra être installé sur ta machine "
"locale, tu peux suivre ce `guide <https://docs.github.com/en/get-"
"started/quickstart/set-up-git>`_ pour le mettre en place."

#: ../../source/contributor-tutorial-contribute-on-github.rst:21
msgid ""
"GitHub, itself, is a code hosting platform for version control and "
"collaboration. It allows for everyone to collaborate and work from "
"anywhere on remote repositories."
msgstr ""
"GitHub, lui-même, est une plateforme d'hébergement de code pour le "
"contrôle des versions et la collaboration. Il permet à chacun de "
"collaborer et de travailler de n'importe où sur des dépôts à distance."

#: ../../source/contributor-tutorial-contribute-on-github.rst:25
msgid ""
"If you haven't already, you will need to create an account on `GitHub "
"<https://github.com/signup>`_."
msgstr ""
"Si ce n'est pas déjà fait, tu devras créer un compte sur `GitHub "
"<https://github.com/signup>`_."

#: ../../source/contributor-tutorial-contribute-on-github.rst:28
msgid ""
"The idea behind the generic Git and GitHub workflow boils down to this: "
"you download code from a remote repository on GitHub, make changes "
"locally and keep track of them using Git and then you upload your new "
"history back to GitHub."
msgstr ""
"L'idée derrière le flux de travail générique de Git et GitHub se résume à"
" ceci : tu télécharges le code d'un dépôt distant sur GitHub, tu apportes"
" des modifications localement et tu en gardes une trace à l'aide de Git, "
"puis tu télécharges ton nouvel historique à nouveau sur GitHub."

#: ../../source/contributor-tutorial-contribute-on-github.rst:42
msgid "**Forking the Flower repository**"
msgstr "**Fourche le dépôt de Flower**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:32
#, fuzzy
msgid ""
"A fork is a personal copy of a GitHub repository. To create one for "
"Flower, you must navigate to https://github.com/adap/flower (while "
"connected to your GitHub account) and click the ``Fork`` button situated "
"on the top right of the page."
msgstr ""
"Un fork est une copie personnelle d'un dépôt GitHub. Pour en créer un "
"pour Flower, tu dois naviguer sur https://github.com/adap/flower (en "
"étant connecté à ton compte GitHub) et cliquer sur le bouton ``Fork`` "
"situé en haut à droite de la page."

#: ../../source/contributor-tutorial-contribute-on-github.rst:38
msgid ""
"You can change the name if you want, but this is not necessary as this "
"version of Flower will be yours and will sit inside your own account "
"(i.e., in your own list of repositories). Once created, you should see on"
" the top left corner that you are looking at your own version of Flower."
msgstr ""
"Tu peux changer le nom si tu le souhaites, mais ce n'est pas nécessaire "
"car cette version de Flower sera la tienne et se trouvera dans ton propre"
" compte (c'est-à-dire dans ta propre liste de dépôts). Une fois créée, tu"
" devrais voir dans le coin supérieur gauche que tu es en train de "
"regarder ta propre version de Flower."

#: ../../source/contributor-tutorial-contribute-on-github.rst:59
msgid "**Cloning your forked repository**"
msgstr "**Clonage de ton dépôt forké**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:45
msgid ""
"The next step is to download the forked repository on your machine to be "
"able to make changes to it. On your forked repository page, you should "
"first click on the ``Code`` button on the right, this will give you the "
"ability to copy the HTTPS link of the repository."
msgstr ""
"L'étape suivante consiste à télécharger le dépôt forké sur ta machine "
"pour pouvoir y apporter des modifications. Sur la page de ton dépôt "
"forké, tu dois d'abord cliquer sur le bouton ``Code`` à droite, ce qui te"
" permettra de copier le lien HTTPS du dépôt."

#: ../../source/contributor-tutorial-contribute-on-github.rst:52
msgid ""
"Once you copied the \\<URL\\>, you can open a terminal on your machine, "
"navigate to the place you want to download the repository to and type:"
msgstr ""
"Une fois que tu as copié le \\<URL\\>, tu peux ouvrir un terminal sur ta "
"machine, naviguer jusqu'à l'endroit où tu veux télécharger le référentiel"
" et taper :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:59
#, fuzzy
msgid ""
"This will create a ``flower/`` (or the name of your fork if you renamed "
"it) folder in the current working directory."
msgstr ""
"Cela créera un dossier `flower/` (ou le nom de ta fourche si tu l'as "
"renommée) dans le répertoire de travail actuel."

#: ../../source/contributor-tutorial-contribute-on-github.rst:78
msgid "**Add origin**"
msgstr "**Ajouter l'origine**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:62
msgid "You can then go into the repository folder:"
msgstr "Tu peux ensuite aller dans le dossier du référentiel :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:68
msgid ""
"And here we will need to add an origin to our repository. The origin is "
"the \\<URL\\> of the remote fork repository. To obtain it, we can do as "
"previously mentioned by going to our fork repository on our GitHub "
"account and copying the link."
msgstr ""
"Et ici, nous devrons ajouter une origine à notre dépôt.L'origine est le "
"\\<URL\\> du dépôt fork distant.Pour l'obtenir, nous pouvons faire comme "
"indiqué précédemment en allant sur notre dépôt fork sur notre compte "
"GitHub et en copiant le lien."

#: ../../source/contributor-tutorial-contribute-on-github.rst:75
msgid ""
"Once the \\<URL\\> is copied, we can type the following command in our "
"terminal:"
msgstr ""
"Une fois que le \\<URL\\> est copié, nous pouvons taper la commande "
"suivante dans notre terminal :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:102
msgid "**Add upstream**"
msgstr "**Ajouter en amont**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:81
#, fuzzy
msgid ""
"Now we will add an upstream address to our repository. Still in the same "
"directory, we must run the following command:"
msgstr ""
"Nous allons maintenant ajouter une adresse en amont à notre dépôt. "
"Toujours dans le même directroy, nous devons exécuter la commande "
"suivante :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:88
msgid "The following diagram visually explains what we did in the previous steps:"
msgstr ""
"Le schéma suivant explique visuellement ce que nous avons fait dans les "
"étapes précédentes :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:92
msgid ""
"The upstream is the GitHub remote address of the parent repository (in "
"this case Flower), i.e. the one we eventually want to contribute to and "
"therefore need an up-to-date history of. The origin is just the GitHub "
"remote address of the forked repository we created, i.e. the copy (fork) "
"in our own account."
msgstr ""
"L'amont est l'adresse distante GitHub du dépôt parent (dans ce cas "
"Flower), c'est-à-dire celui auquel nous voulons éventuellement contribuer"
" et dont nous avons donc besoin d'un historique à jour. L'origine est "
"simplement l'adresse distante GitHub du dépôt forké que nous avons créé, "
"c'est-à-dire la copie (fork) dans notre propre compte."

#: ../../source/contributor-tutorial-contribute-on-github.rst:97
msgid ""
"To make sure our local version of the fork is up-to-date with the latest "
"changes from the Flower repository, we can execute the following command:"
msgstr ""
"Pour nous assurer que notre version locale du fork est à jour avec les "
"dernières modifications du dépôt Flower, nous pouvons exécuter la "
"commande suivante :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:105
msgid "Setting up the coding environment"
msgstr "Mise en place de l'environnement de codage"

#: ../../source/contributor-tutorial-contribute-on-github.rst:107
#, fuzzy
msgid ""
"This can be achieved by following this :doc:`getting started guide for "
"contributors <contributor-tutorial-get-started-as-a-contributor>` (note "
"that you won't need to clone the repository). Once you are able to write "
"code and test it, you can finally start making changes!"
msgstr ""
"Pour ce faire, tu peux suivre ce `guide de démarrage pour les "
"contributeurs`_ (note que tu n'auras pas besoin de cloner le dépôt). Une "
"fois que tu es capable d'écrire du code et de le tester, tu peux enfin "
"commencer à faire des changements !"

#: ../../source/contributor-tutorial-contribute-on-github.rst:113
msgid "Making changes"
msgstr "Apporter des changements"

#: ../../source/contributor-tutorial-contribute-on-github.rst:115
msgid ""
"Before making any changes make sure you are up-to-date with your "
"repository:"
msgstr ""
"Avant de faire des changements, assure-toi que tu es à jour avec ton "
"référentiel :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:121
msgid "And with Flower's repository:"
msgstr "Et avec le référentiel de Flower :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:134
msgid "**Create a new branch**"
msgstr "**Créer une nouvelle branche**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:128
msgid ""
"To make the history cleaner and easier to work with, it is good practice "
"to create a new branch for each feature/project that needs to be "
"implemented."
msgstr ""
"Pour rendre l'historique plus propre et plus facile à travailler, c'est "
"une bonne pratique de créer une nouvelle branche pour chaque "
"fonctionnalité/projet qui doit être mis en œuvre."

#: ../../source/contributor-tutorial-contribute-on-github.rst:131
msgid ""
"To do so, just run the following command inside the repository's "
"directory:"
msgstr ""
"Pour ce faire, il suffit d'exécuter la commande suivante dans le "
"répertoire du référentiel :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:136
msgid "**Make changes**"
msgstr "**Apporter des modifications**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:137
msgid "Write great code and create wonderful changes using your favorite editor!"
msgstr ""
"Écris du bon code et crée de merveilleuses modifications à l'aide de ton "
"éditeur préféré !"

#: ../../source/contributor-tutorial-contribute-on-github.rst:149
msgid "**Test and format your code**"
msgstr "**Teste et mets en forme ton code**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:139
msgid ""
"Don't forget to test and format your code! Otherwise your code won't be "
"able to be merged into the Flower repository. This is done so the "
"codebase stays consistent and easy to understand."
msgstr ""
"N'oublie pas de tester et de formater ton code ! Sinon, ton code ne "
"pourra pas être fusionné dans le dépôt Flower, et ce, afin que la base de"
" code reste cohérente et facile à comprendre."

#: ../../source/contributor-tutorial-contribute-on-github.rst:143
msgid "To do so, we have written a few scripts that you can execute:"
msgstr "Pour ce faire, nous avons écrit quelques scripts que tu peux exécuter :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:162
msgid "**Stage changes**"
msgstr "**Changements de scène**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:152
msgid ""
"Before creating a commit that will update your history, you must specify "
"to Git which files it needs to take into account."
msgstr ""
"Avant de créer un commit qui mettra à jour ton historique, tu dois "
"spécifier à Git les fichiers qu'il doit prendre en compte."

#: ../../source/contributor-tutorial-contribute-on-github.rst:155
msgid "This can be done with:"
msgstr "Cela peut se faire avec :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:161
#, fuzzy
msgid ""
"To check which files have been modified compared to the last version "
"(last commit) and to see which files are staged for commit, you can use "
"the ``git status`` command."
msgstr ""
"Pour vérifier quels fichiers ont été modifiés par rapport à la dernière "
"version (last commit) et pour voir quels fichiers sont mis à disposition "
"pour le commit, tu peux utiliser la commande :code:`git status`."

#: ../../source/contributor-tutorial-contribute-on-github.rst:173
msgid "**Commit changes**"
msgstr "**Commit changes**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:165
#, fuzzy
msgid ""
"Once you have added all the files you wanted to commit using ``git add``,"
" you can finally create your commit using this command:"
msgstr ""
"Une fois que tu as ajouté tous les fichiers que tu voulais livrer à "
"l'aide de :code:`git add`, tu peux enfin créer ta livraison à l'aide de "
"cette commande :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:172
#, fuzzy
msgid ""
"The \\<commit_message\\> is there to explain to others what the commit "
"does. It should be written in an imperative style and be concise. An "
"example would be ``git commit -m \"Add images to README\"``."
msgstr ""
"Le ``commit_message`` est là pour expliquer aux autres ce que fait le "
"commit. Il doit être écrit dans un style impératif et être concis. Un "
"exemple serait :code:`git commit -m \"Ajouter des images au README\"`."

#: ../../source/contributor-tutorial-contribute-on-github.rst:185
msgid "**Push the changes to the fork**"
msgstr "**Pousser les changements vers la fourche**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:176
msgid ""
"Once we have committed our changes, we have effectively updated our local"
" history, but GitHub has no way of knowing this unless we push our "
"changes to our origin's remote address:"
msgstr ""
"Une fois que nous avons validé nos modifications, nous avons "
"effectivement mis à jour notre historique local, mais GitHub n'a aucun "
"moyen de le savoir à moins que nous ne poussions nos modifications vers "
"l'adresse distante de notre origine :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:184
msgid ""
"Once this is done, you will see on the GitHub that your forked repo was "
"updated with the changes you have made."
msgstr ""
"Une fois que c'est fait, tu verras sur GitHub que ton repo forké a été "
"mis à jour avec les modifications que tu as apportées."

#: ../../source/contributor-tutorial-contribute-on-github.rst:188
msgid "Creating and merging a pull request (PR)"
msgstr "Créer et fusionner une pull request (PR)"

#: ../../source/contributor-tutorial-contribute-on-github.rst:226
msgid "**Create the PR**"
msgstr "**Créer le PR**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:191
msgid ""
"Once you have pushed changes, on the GitHub webpage of your repository "
"you should see the following message:"
msgstr ""
"Une fois que tu as poussé les modifications, sur la page web GitHub de "
"ton dépôt, tu devrais voir le message suivant :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:196
#, fuzzy
msgid "Otherwise you can always find this option in the ``Branches`` page."
msgstr "Sinon, tu peux toujours trouver cette option dans la page `Branches`."

#: ../../source/contributor-tutorial-contribute-on-github.rst:198
#, fuzzy
msgid ""
"Once you click the ``Compare & pull request`` button, you should see "
"something similar to this:"
msgstr ""
"Une fois que tu as cliqué sur le bouton `Compare & pull request`, tu "
"devrais voir quelque chose de similaire à ceci :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:203
msgid "At the top you have an explanation of which branch will be merged where:"
msgstr ""
"En haut, tu as une explication de quelle branche sera fusionnée à quel "
"endroit :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:207
msgid ""
"In this example you can see that the request is to merge the branch "
"``doc-fixes`` from my forked repository to branch ``main`` from the "
"Flower repository."
msgstr ""
"Dans cet exemple, tu peux voir que la demande consiste à fusionner la "
"branche ``doc-fixes`` de mon dépôt forké à la branche ``main`` du dépôt "
"Flower."

#: ../../source/contributor-tutorial-contribute-on-github.rst:210
msgid ""
"The title should be changed to adhere to the :ref:`pr_title_format` "
"guidelines, otherwise it won't be possible to merge the PR. So in this "
"case, a correct title might be ``docs(framework:skip) Fix typos``."
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:214
msgid ""
"The input box in the middle is there for you to describe what your PR "
"does and to link it to existing issues. We have placed comments (that "
"won't be rendered once the PR is opened) to guide you through the "
"process."
msgstr ""
"La zone de saisie au milieu est là pour que tu décrives ce que fait ton "
"PR et que tu le relies aux questions existantes. Nous avons placé des "
"commentaires (qui ne seront pas rendus une fois le PR ouvert) pour te "
"guider tout au long du processus."

#: ../../source/contributor-tutorial-contribute-on-github.rst:218
msgid "It is important to follow the instructions described in comments."
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:220
msgid ""
"At the bottom you will find the button to open the PR. This will notify "
"reviewers that a new PR has been opened and that they should look over it"
" to merge or to request changes."
msgstr ""
"En bas de l'écran, tu trouveras le bouton permettant d'ouvrir le PR, ce "
"qui informera les réviseurs qu'un nouveau PR a été ouvert et qu'ils "
"doivent le consulter pour le fusionner ou demander des modifications."

#: ../../source/contributor-tutorial-contribute-on-github.rst:224
msgid ""
"If your PR is not yet ready for review, and you don't want to notify "
"anyone, you have the option to create a draft pull request:"
msgstr ""
"Si ton RP n'est pas encore prêt à être examiné, et que tu ne veux avertir"
" personne, tu as la possibilité de créer un brouillon de demande de "
"traction :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:230
msgid "**Making new changes**"
msgstr "**Faire de nouveaux changements**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:229
msgid ""
"Once the PR has been opened (as draft or not), you can still push new "
"commits to it the same way we did before, by making changes to the branch"
" associated with the PR."
msgstr ""
"Une fois que le PR a été ouvert (en tant que brouillon ou non), tu peux "
"toujours y pousser de nouveaux commits de la même manière qu'auparavant, "
"en apportant des modifications à la branche associée au PR."

#: ../../source/contributor-tutorial-contribute-on-github.rst:253
msgid "**Review the PR**"
msgstr "**Review the PR**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:233
msgid ""
"Once the PR has been opened or once the draft PR has been marked as "
"ready, a review from code owners will be automatically requested:"
msgstr ""
"Une fois que le PR a été ouvert ou que le projet de PR a été marqué comme"
" étant prêt, une révision des propriétaires de code sera automatiquement "
"demandée :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:238
msgid ""
"Code owners will then look into the code, ask questions, request changes "
"or validate the PR."
msgstr ""
"Les propriétaires du code vont alors se pencher sur le code, poser des "
"questions, demander des modifications ou valider le RP."

#: ../../source/contributor-tutorial-contribute-on-github.rst:241
msgid "Merging will be blocked if there are ongoing requested changes."
msgstr "La fusion sera bloquée s'il y a des changements demandés en cours."

#: ../../source/contributor-tutorial-contribute-on-github.rst:245
msgid ""
"To resolve them, just push the necessary changes to the branch associated"
" with the PR:"
msgstr ""
"Pour les résoudre, il suffit de pousser les changements nécessaires vers "
"la branche associée au PR :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:250
msgid "And resolve the conversation:"
msgstr "Et résous la conversation :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:254
msgid ""
"Once all the conversations have been resolved, you can re-request a "
"review."
msgstr ""
"Une fois que toutes les conversations ont été résolues, tu peux "
"redemander un examen."

#: ../../source/contributor-tutorial-contribute-on-github.rst:274
msgid "**Once the PR is merged**"
msgstr "**Une fois que le PR est fusionné**"

#: ../../source/contributor-tutorial-contribute-on-github.rst:256
msgid ""
"If all the automatic tests have passed and reviewers have no more changes"
" to request, they can approve the PR and merge it."
msgstr ""
"Si tous les tests automatiques ont réussi et que les réviseurs n'ont plus"
" de modifications à demander, ils peuvent approuver le PR et le "
"fusionner."

#: ../../source/contributor-tutorial-contribute-on-github.rst:261
msgid ""
"Once it is merged, you can delete the branch on GitHub (a button should "
"appear to do so) and also delete it locally by doing:"
msgstr ""
"Une fois qu'elle est fusionnée, tu peux supprimer la branche sur GitHub "
"(un bouton devrait apparaître pour le faire) et aussi la supprimer "
"localement en faisant :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:269
msgid "Then you should update your forked repository by doing:"
msgstr "Ensuite, tu dois mettre à jour ton dépôt forké en faisant :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:277
msgid "Example of first contribution"
msgstr "Exemple de première contribution"

#: ../../source/contributor-tutorial-contribute-on-github.rst:280
msgid "Problem"
msgstr "Problème"

#: ../../source/contributor-tutorial-contribute-on-github.rst:282
#, fuzzy
msgid ""
"For our documentation, we've started to use the `Diàtaxis framework "
"<https://diataxis.fr/>`_."
msgstr ""
"Pour notre documentation, nous avons commencé à utiliser le cadre "
"`Diàtaxis <https://diataxis.fr/>`_."

#: ../../source/contributor-tutorial-contribute-on-github.rst:285
#, fuzzy
msgid ""
"Our \"How to\" guides should have titles that continue the sentence \"How"
" to …\", for example, \"How to upgrade to Flower 1.0\"."
msgstr ""
"Nos guides \"Comment faire\" devraient avoir des titres qui poursuivent "
"la phrase \"Comment faire pour...\", par exemple, \"Comment passer à "
"Flower 1.0\"."

#: ../../source/contributor-tutorial-contribute-on-github.rst:288
msgid ""
"Most of our guides do not follow this new format yet, and changing their "
"title is (unfortunately) more involved than one might think."
msgstr ""
"La plupart de nos guides ne suivent pas encore ce nouveau format, et "
"changer leur titre est (malheureusement) plus compliqué qu'on ne le "
"pense."

#: ../../source/contributor-tutorial-contribute-on-github.rst:291
#, fuzzy
msgid ""
"This issue is about changing the title of a doc from present continuous "
"to present simple."
msgstr ""
"Cette question porte sur le changement du titre d'un document du présent "
"continu au présent simple."

#: ../../source/contributor-tutorial-contribute-on-github.rst:294
#, fuzzy
msgid ""
"Let's take the example of \"Saving Progress\" which we changed to \"Save "
"Progress\". Does this pass our check?"
msgstr ""
"Prenons l'exemple de \"Sauvegarder la progression\" que nous avons "
"remplacé par \"Sauvegarder la progression\". Est-ce que cela passe notre "
"contrôle ?"

#: ../../source/contributor-tutorial-contribute-on-github.rst:297
#, fuzzy
msgid "Before: \"How to saving progress\" ❌"
msgstr "Avant : \"Comment sauvegarder les progrès\" ❌"

#: ../../source/contributor-tutorial-contribute-on-github.rst:299
#, fuzzy
msgid "After: \"How to save progress\" ✅"
msgstr "Après : \"Comment sauvegarder la progression\" ✅"

#: ../../source/contributor-tutorial-contribute-on-github.rst:302
msgid "Solution"
msgstr "Solution"

#: ../../source/contributor-tutorial-contribute-on-github.rst:304
#, fuzzy
msgid ""
"This is a tiny change, but it'll allow us to test your end-to-end setup. "
"After cloning and setting up the Flower repo, here's what you should do:"
msgstr ""
"C'est un tout petit changement, mais il nous permettra de tester ta "
"configuration de bout en bout. Après avoir cloné et configuré le repo "
"Flower, voici ce que tu dois faire :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:307
#, fuzzy
msgid "Find the source file in ``doc/source``"
msgstr "Trouve le fichier source dans `doc/source`"

#: ../../source/contributor-tutorial-contribute-on-github.rst:308
#, fuzzy
msgid ""
"Make the change in the ``.rst`` file (beware, the dashes under the title "
"should be the same length as the title itself)"
msgstr ""
"Effectue la modification dans le fichier `.rst` (attention, les tirets "
"sous le titre doivent être de la même longueur que le titre lui-même)"

#: ../../source/contributor-tutorial-contribute-on-github.rst:310
#, fuzzy
msgid ""
"Build the docs and `check the result <contributor-how-to-write-"
"documentation.html#edit-an-existing-page>`_"
msgstr ""
"Construis les documents et vérifie le résultat : `<https://flower.ai/docs"
"/writing-documentation.html#edit-an-existing-page>`_"

#: ../../source/contributor-tutorial-contribute-on-github.rst:314
msgid "Rename file"
msgstr "Renommer le fichier"

#: ../../source/contributor-tutorial-contribute-on-github.rst:316
msgid ""
"You might have noticed that the file name still reflects the old wording."
" If we just change the file, then we break all existing links to it - it "
"is **very important** to avoid that, breaking links can harm our search "
"engine ranking."
msgstr ""
"Tu as peut-être remarqué que le nom du fichier reflète toujours "
"l'ancienne formulation. Si nous changeons simplement le fichier, nous "
"brisons tous les liens existants vers celui-ci - il est **très "
"important** d'éviter cela, car briser des liens peut nuire à notre "
"classement dans les moteurs de recherche."

#: ../../source/contributor-tutorial-contribute-on-github.rst:320
#, fuzzy
msgid "Here's how to change the file name:"
msgstr "Voici comment changer le nom du fichier :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:322
#, fuzzy
msgid "Change the file name to ``save-progress.rst``"
msgstr "Change le nom du fichier en `save-progress.rst`"

#: ../../source/contributor-tutorial-contribute-on-github.rst:323
#, fuzzy
msgid "Add a redirect rule to ``doc/source/conf.py``"
msgstr "Ajouter une règle de redirection à `doc/source/conf.py`"

#: ../../source/contributor-tutorial-contribute-on-github.rst:325
#, fuzzy
msgid ""
"This will cause a redirect from ``saving-progress.html`` to ``save-"
"progress.html``, old links will continue to work."
msgstr ""
"Cela entraînera une redirection de `saving-progress.html` vers `save-"
"progress.html`, les anciens liens continueront à fonctionner."

#: ../../source/contributor-tutorial-contribute-on-github.rst:329
msgid "Apply changes in the index file"
msgstr "Applique les changements dans le fichier d'index"

#: ../../source/contributor-tutorial-contribute-on-github.rst:331
#, fuzzy
msgid ""
"For the lateral navigation bar to work properly, it is very important to "
"update the ``index.rst`` file as well. This is where we define the whole "
"arborescence of the navbar."
msgstr ""
"Pour que la barre de navigation latérale fonctionne correctement, il est "
"très important de mettre également à jour le fichier `index.rst`. C'est "
"là que nous définissons toute l'arborescence de la barre de navigation."

#: ../../source/contributor-tutorial-contribute-on-github.rst:335
#, fuzzy
msgid "Find and modify the file name in ``index.rst``"
msgstr "Trouve et modifie le nom du fichier dans `index.rst`"

#: ../../source/contributor-tutorial-contribute-on-github.rst:338
msgid "Open PR"
msgstr "Open PR"

#: ../../source/contributor-tutorial-contribute-on-github.rst:340
#, fuzzy
msgid ""
"Commit the changes (commit messages are always imperative: \"Do "
"something\", in this case \"Change …\")"
msgstr ""
"Valide les modifications (les messages de validation sont toujours "
"impératifs : \"Fais quelque chose\", dans ce cas \"Modifie...\")"

#: ../../source/contributor-tutorial-contribute-on-github.rst:342
msgid "Push the changes to your fork"
msgstr "Transmets les changements à ta fourchette"

#: ../../source/contributor-tutorial-contribute-on-github.rst:343
msgid ""
"Open a PR (as shown above) with title ``docs(framework) Update how-to "
"guide title``"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:344
msgid "Wait for it to be approved!"
msgstr "Attends qu'elle soit approuvée !"

#: ../../source/contributor-tutorial-contribute-on-github.rst:345
msgid "Congrats! 🥳 You're now officially a Flower contributor!"
msgstr ""
"Félicitations 🥳 Tu es désormais officiellement une contributrice de "
"Flower !"

#: ../../source/contributor-tutorial-contribute-on-github.rst:348
#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:573
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1012
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:811
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:857
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:367
msgid "Next steps"
msgstr "Prochaines étapes"

#: ../../source/contributor-tutorial-contribute-on-github.rst:350
msgid ""
"Once you have made your first PR, and want to contribute more, be sure to"
" check out the following :"
msgstr ""
"Une fois que tu auras fait ton premier RP, et que tu voudras contribuer "
"davantage, ne manque pas de consulter les sites suivants :"

#: ../../source/contributor-tutorial-contribute-on-github.rst:353
#, fuzzy
msgid ""
":doc:`Good first contributions <contributor-ref-good-first-"
"contributions>`, where you should particularly look into the "
"``baselines`` contributions."
msgstr ""
"`Bonnes premières contributions <https://flower.ai/docs/framework"
"/contributor-ref-good-first-contributions.html>`_, où vous devriez "
"particulièrement regarder les contributions :code:`baselines`."

#: ../../source/contributor-tutorial-contribute-on-github.rst:357
msgid "Appendix"
msgstr "Annexe"

#: ../../source/contributor-tutorial-contribute-on-github.rst:362
msgid "PR title format"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:364
msgid "We enforce the following PR title format:"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:370
msgid ""
"(or ``<type>(<project>:skip) <subject>`` to ignore the PR in the "
"changelog)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:372
msgid ""
"Where ``<type>`` needs to be in ``{ci, fix, feat, docs, refactor, "
"break}``, ``<project>`` should be in ``{framework, baselines, datasets, "
"examples, or '*' when modifying multiple projects which requires the "
"':skip' flag to be used}``, and ``<subject>`` starts with a capitalised "
"verb in the imperative mood."
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:377
#, fuzzy
msgid "Valid examples:"
msgstr "Exemples de PyTorch"

#: ../../source/contributor-tutorial-contribute-on-github.rst:379
msgid "``feat(framework) Add flwr build CLI command``"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:380
msgid "``refactor(examples:skip) Improve quickstart-pytorch logging``"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:381
msgid "``ci(*:skip) Enforce PR title format``"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:383
#, fuzzy
msgid "Invalid examples:"
msgstr "Exemples de PyTorch"

#: ../../source/contributor-tutorial-contribute-on-github.rst:385
msgid "``feat(framework): Add flwr build CLI command`` (extra ``:``)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:386
msgid ""
"``feat(*) Add flwr build CLI command`` (missing ``skip`` flag along with "
"``*``)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:387
msgid "``feat(skip) Add flwr build CLI command`` (missing ``<project>``)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:388
msgid "``feat(framework) add flwr build CLI command`` (non capitalised verb)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:389
msgid "``feat(framework) Add flwr build CLI command.`` (dot at the end)"
msgstr ""

#: ../../source/contributor-tutorial-contribute-on-github.rst:390
msgid "``Add flwr build CLI command.`` (missing ``<type>(<project>)``)"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:2
msgid "Get started as a contributor"
msgstr "Devenez un·e contributeur·ice"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:5
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:16
#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:18
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:13
#: ../../source/docker/tutorial-quickstart-docker.rst:11
msgid "Prerequisites"
msgstr "Prérequis"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:7
#, fuzzy
msgid "`Python 3.9 <https://docs.python.org/3.9/>`_ or above"
msgstr "`Python 3.10 <https://docs.python.org/3.10/>`_ ou plus"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:8
msgid "`Poetry 1.3 <https://python-poetry.org/>`_ or above"
msgstr "`Poetry 1.3 <https://python-poetry.org/>`_ ou plus"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:9
msgid "(Optional) `pyenv <https://github.com/pyenv/pyenv>`_"
msgstr "(Optionnel) `pyenv <https://github.com/pyenv/pyenv>`_"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:10
msgid "(Optional) `pyenv-virtualenv <https://github.com/pyenv/pyenv-virtualenv>`_"
msgstr ""
"(Optionnel) `pyenv-virtualenv <https://github.com/pyenv/pyenv-"
"virtualenv>`_"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:12
#, fuzzy
msgid ""
"Flower uses ``pyproject.toml`` to manage dependencies and configure "
"development tools (the ones which support it). Poetry is a build tool "
"which supports `PEP 517 <https://peps.python.org/pep-0517/>`_."
msgstr ""
"Flower utilise un fichier :code:`pyproject.toml` pour gérer les "
"dependences et configurer les outils de développement (du moins ceux qui "
"le supportent). Poetry est un outil qui support `PEP 517 "
"<https://www.python.org/dev/peps/pep-0517/>`_."

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:17
msgid "Developer Machine Setup"
msgstr "Setup de la machine"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:20
#, fuzzy
msgid "Preliminaries"
msgstr "Principes"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:22
msgid "Some system-wide dependencies are needed."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:25
msgid "For macOS"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:27
msgid ""
"Install `homebrew <https://brew.sh/>`_. Don't forget the post-"
"installation actions to add `brew` to your PATH."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:29
msgid ""
"Install `xz` (to install different Python versions) and `pandoc` to build"
" the docs:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:36
msgid "For Ubuntu"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:38
msgid ""
"Ensure you system (Ubuntu 22.04+) is up-to-date, and you have all "
"necessary packages:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:47
#, fuzzy
msgid "Create Flower Dev Environment"
msgstr "Créer/Supprimer l'environment virtuel"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:49
#, fuzzy
msgid ""
"Clone the `Flower repository <https://github.com/adap/flower>`_ from "
"GitHub:"
msgstr ""
"Pour commencer, cloner la `repo Flower <https://github.com/adap/flower>`_"
" depuis GitHub::"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:56
msgid ""
"Let's create the Python environment for all-things Flower. If you wish to"
" use ``pyenv``, we provide two convenience scripts that you can use. If "
"you prefer using something else than ``pyenv``, create a new environment,"
" activate and skip to the last point where all packages are installed."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:61
#, fuzzy
msgid ""
"If you don't have ``pyenv`` installed, the following script that will "
"install it, set it up, and create the virtual environment (with "
":substitution-code:`Python |python_full_version|` by default):"
msgstr ""
"Si vous n'avez pas :code:`pyenv` installé, vous pouvez utiliser le script"
" suivant qui l'installera, le configurera et créera l'environnement "
"virtuel (avec :code:`Python 3.9.20` par défaut)::"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:69
#, fuzzy
msgid ""
"If you already have ``pyenv`` installed (along with the ``pyenv-"
"virtualenv`` plugin), you can use the following convenience script (with "
":substitution-code:`Python |python_full_version|` by default):"
msgstr ""
"Si vous n'avez pas :code:`pyenv` installé, vous pouvez utiliser le script"
" suivant qui l'installera, le configurera et créera l'environnement "
"virtuel (avec :code:`Python 3.9.20` par défaut)::"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:77
#, fuzzy
msgid ""
"3. Install the Flower package in development mode (think ``pip install "
"-e``) along with all necessary dependencies:"
msgstr ""
"Troisièmement, installez le paquet Flower en mode de développement ( "
":code :`pip install -e`) avec toutes les dépendances nécessaires :"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:85
msgid "Convenience Scripts"
msgstr "Scripts pratiques"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:87
#, fuzzy
msgid ""
"The Flower repository contains a number of convenience scripts to make "
"recurring development tasks easier and less error-prone. See the ``/dev``"
" subdirectory for a full list. The following scripts are amongst the most"
" important ones:"
msgstr ""
"La repo de Flower contient un certain nombre de scripts de commodité pour"
" rendre les tâches de développement récurrentes plus faciles et moins "
"problématiques. Voir le sous-répertoire :code :`/dev` pour une liste "
"complète. Les scripts suivants sont parmis les plus importants :"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:92
msgid "Create/Delete Virtual Environment"
msgstr "Créer/Supprimer l'environment virtuel"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:101
msgid "Compile ProtoBuf Definitions"
msgstr "Compiler les définitions ProtoBuf"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:108
msgid "Auto-Format Code"
msgstr "Formatter le code"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:115
msgid "Run Linters and Tests"
msgstr "Vérifier le format et tester le code"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:122
msgid "Add a pre-commit hook"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:124
msgid ""
"Developers may integrate a pre-commit hook into their workflow utilizing "
"the `pre-commit <https://pre-commit.com/#install>`_ library. The pre-"
"commit hook is configured to execute two primary operations: "
"``./dev/format.sh`` and ``./dev/test.sh`` scripts."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:128
msgid "There are multiple ways developers can use this:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:130
msgid "Install the pre-commit hook to your local git directory by simply running:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:136
msgid ""
"Each ``git commit`` will trigger the execution of formatting and "
"linting/test scripts."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:138
msgid ""
"If in a hurry, bypass the hook using ``--no-verify`` with the ``git "
"commit`` command."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:145
msgid ""
"For developers who prefer not to install the hook permanently, it is "
"possible to execute a one-time check prior to committing changes by using"
" the following command:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:152
msgid ""
"This executes the formatting and linting checks/tests on all the files "
"without modifying the default behavior of ``git commit``."
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:156
msgid "Run Github Actions (CI) locally"
msgstr "Exécuter les GitHub Actions (CI) localement"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:158
#, fuzzy
msgid ""
"Developers could run the full set of Github Actions workflows under their"
" local environment by using `Act <https://github.com/nektos/act>`_. "
"Please refer to the installation instructions under the linked repository"
" and run the next command under Flower main cloned repository folder:"
msgstr ""
"Il est possible d'exécuter l'ensemble des Github Actions sous leur "
"environnement local en utilisant `Act <https ://github.com/nektos/act>_`."
" En suivant le lien vous trouverez les instructions d'installation. Une "
"fois installé, exécuter la commande suivante dans le dossier principale "
"de Flower :"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:167
msgid ""
"The Flower default workflow would run by setting up the required Docker "
"machines underneath."
msgstr ""
"Le workflow par défaut de Flower sera exécuté en configurant les machines"
" Docker requises en arrière plan."

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:171
#, fuzzy
msgid "Build Release"
msgstr "Inédit"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:173
#, fuzzy
msgid ""
"Flower uses Poetry to build releases. The necessary command is wrapped in"
" a simple script:"
msgstr ""
"Flower utilise Poetry pour construire les nouvelles versions. La commande"
" nécessaire est comprise dans un script simple ::"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:180
#, fuzzy
msgid ""
"The resulting ``.whl`` and ``.tar.gz`` releases will be stored in the "
"``/dist`` subdirectory."
msgstr ""
"Les versions résultantes :code:`.whl` et :code:`.tar.gz` seront stockées "
"dans le sous-répertoire:code:`/dist`."

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:184
#, fuzzy
msgid "Build Documentation"
msgstr "Amélioration de la documentation"

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:186
msgid ""
"Flower's documentation uses `Sphinx <https://www.sphinx-doc.org/>`_. "
"There's no convenience script to re-build the documentation yet, but it's"
" pretty easy:"
msgstr ""

#: ../../source/contributor-tutorial-get-started-as-a-contributor.rst:194
msgid "This will generate HTML documentation in ``doc/build/html``."
msgstr ""

#: ../../source/docker/enable-tls.rst:2
#, fuzzy
msgid "Enable TLS for Secure Connections"
msgstr "Collecte centralisée des données"

#: ../../source/docker/enable-tls.rst:4
msgid ""
"When operating in a production environment, it is strongly recommended to"
" enable Transport Layer Security (TLS) for each Flower component to "
"ensure secure communication."
msgstr ""

#: ../../source/docker/enable-tls.rst:9
msgid ""
"For testing purposes, you can generate your own self-signed certificates."
" The `Enable SSL connections <https://flower.ai/docs/framework/how-to-"
"enable-ssl-connections.html#certificates>`__ page contains a section that"
" will guide you through the process."
msgstr ""

#: ../../source/docker/enable-tls.rst:16
msgid ""
"Because Flower containers, by default, run with a non-root user ``app``, "
"the mounted files and directories must have the proper permissions for "
"the user ID ``49999``."
msgstr ""

#: ../../source/docker/enable-tls.rst:19
msgid ""
"For example, to change the user ID of all files in the ``certificates/`` "
"directory, you can run ``sudo chown -R 49999:49999 certificates/*``."
msgstr ""

#: ../../source/docker/enable-tls.rst:22
msgid ""
"If you later want to delete the directory, you can change the user ID "
"back to the current user ID by running ``sudo chown -R $USER:$(id -gn) "
"certificates``."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "Isolation Mode ``subprocess``"
msgstr ""

#: ../../source/docker/enable-tls.rst:29
msgid ""
"By default, the ServerApp is executed as a subprocess within the "
"SuperLink Docker container, and the ClientApp is run as a subprocess "
"within the SuperNode Docker container. You can learn more about the "
"different process modes here: :doc:`run-as-subprocess`."
msgstr ""

#: ../../source/docker/enable-tls.rst:34 ../../source/docker/enable-tls.rst:119
msgid ""
"To enable TLS between the SuperLink and SuperNode, as well as between the"
" SuperLink and the ``flwr`` CLI, you will need a PEM-encoded root "
"certificate, private key, and certificate chain."
msgstr ""

#: ../../source/docker/enable-tls.rst:37
#, fuzzy
msgid "**SuperLink**"
msgstr "flower-superlink"

#: ../../source/docker/enable-tls.rst:39
msgid ""
"Assuming all files we need are in the local ``superlink-certificates`` "
"directory, we can use the flag ``--volume`` to mount the local "
"directories into the SuperLink container:"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "Understanding the command"
msgstr "Entraîne le modèle"

#: ../../source/docker/enable-tls.rst:54 ../../source/docker/enable-tls.rst:96
#: ../../source/docker/enable-tls.rst:140
#: ../../source/docker/enable-tls.rst:179
#: ../../source/docker/enable-tls.rst:206
#: ../../source/docker/enable-tls.rst:231
#: ../../source/docker/tutorial-quickstart-docker.rst:68
#: ../../source/docker/tutorial-quickstart-docker.rst:109
#: ../../source/docker/tutorial-quickstart-docker.rst:221
#: ../../source/docker/tutorial-quickstart-docker.rst:303
msgid "``docker run``: This tells Docker to run a container from an image."
msgstr ""

#: ../../source/docker/enable-tls.rst:55 ../../source/docker/enable-tls.rst:97
#: ../../source/docker/enable-tls.rst:141
#: ../../source/docker/enable-tls.rst:180
#: ../../source/docker/enable-tls.rst:207
#: ../../source/docker/enable-tls.rst:232
#: ../../source/docker/tutorial-quickstart-docker.rst:69
#: ../../source/docker/tutorial-quickstart-docker.rst:110
#: ../../source/docker/tutorial-quickstart-docker.rst:222
#: ../../source/docker/tutorial-quickstart-docker.rst:304
msgid "``--rm``: Remove the container once it is stopped or the command exits."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the "
"``superlink-certificates``"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"directory in the current working directory of the host machine as a read-"
"only volume"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "at the ``/app/certificates`` directory inside the container."
msgstr "Utiliser les conteneurs VS Code Remote"

#: ../../source/docker/enable-tls.rst
msgid ""
"This allows the container to access the TLS certificates that are stored "
"in the certificates"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "directory."
msgstr ""

#: ../../source/docker/enable-tls.rst:62
msgid "``<superlink-image>``: The name of your SuperLink image to be run."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--ssl-ca-certfile certificates/ca.crt``: Specify the location of the CA"
" certificate file"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "inside the container."
msgstr "Utiliser les conteneurs VS Code Remote"

#: ../../source/docker/enable-tls.rst
msgid ""
"The ``certificates/ca.crt`` file is a certificate that is used to verify "
"the identity of the"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "SuperLink."
msgstr "flower-superlink"

#: ../../source/docker/enable-tls.rst
msgid ""
"``--ssl-certfile certificates/server.pem``: Specify the location of the "
"SuperLink's"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "TLS certificate file inside the container."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"The ``certificates/server.pem`` file is used to identify the SuperLink "
"and to encrypt the"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "data that is transmitted over the network."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--ssl-keyfile certificates/server.key``: Specify the location of the "
"SuperLink's"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "TLS private key file inside the container."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"The ``certificates/server.key`` file is used to decrypt the data that is "
"transmitted over"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "the network."
msgstr ""

#: ../../source/docker/enable-tls.rst:79
#, fuzzy
msgid "**SuperNode**"
msgstr "flower-superlink"

#: ../../source/docker/enable-tls.rst:83 ../../source/docker/enable-tls.rst:189
msgid ""
"If you're generating self-signed certificates and the ``ca.crt`` "
"certificate doesn't exist on the SuperNode, you can copy it over after "
"the generation step."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the "
"``ca.crt``"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"file from the ``superlink-certificates`` directory of the host machine as"
" a read-only"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "volume at the ``/app/ca.crt`` directory inside the container."
msgstr "Utiliser les conteneurs VS Code Remote"

#: ../../source/docker/enable-tls.rst:101
msgid "``<supernode-image>``: The name of your SuperNode image to be run."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--root-certificates ca.crt``: This specifies the location of the CA "
"certificate file"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "The ``ca.crt`` file is used to verify the identity of the SuperLink."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "Isolation Mode ``process``"
msgstr ""

#: ../../source/docker/enable-tls.rst:109
msgid ""
"In isolation mode ``process``, the ServerApp and ClientApp run in their "
"own processes. Unlike in isolation mode ``subprocess``, the SuperLink or "
"SuperNode does not attempt to create the respective processes; instead, "
"they must be created externally."
msgstr ""

#: ../../source/docker/enable-tls.rst:113
msgid ""
"It is possible to run only the SuperLink in isolation mode ``subprocess``"
" and the SuperNode in isolation mode ``process``, or vice versa, or even "
"both with isolation mode ``process``."
msgstr ""

#: ../../source/docker/enable-tls.rst:117
msgid "**SuperLink and ServerApp**"
msgstr ""

#: ../../source/docker/enable-tls.rst:122
msgid ""
"Assuming all files we need are in the local ``superlink-certificates`` "
"directory, we can use the flag ``--volume`` to mount the local directory "
"into the SuperLink container:"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "``--volume ./superlink-certificates/:/app/certificates/:ro``: Mount the"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``superlink-certificates`` directory in the current working directory of "
"the host"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"machine as a read-only volume at the ``/app/certificates`` directory "
"inside the container."
msgstr ""

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
":substitution-code:`flwr/superlink:|stable_flwr_version|`: The name of "
"the image to be run and the specific"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"tag of the image. The tag :substitution-code:`|stable_flwr_version|` "
"represents a specific version of the image."
msgstr ""

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--isolation process``: Tells the SuperLink that the ServerApp is "
"created by separate"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid "independent process. The SuperLink does not attempt to create it."
msgstr ""

#: ../../source/docker/enable-tls.rst:168
#: ../../source/docker/tutorial-quickstart-docker.rst:207
#, fuzzy
msgid "Start the ServerApp container:"
msgstr "Démarrer le serveur"

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker-compose.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "Understand the command"
msgstr ""

#: ../../source/docker/enable-tls.rst:181
msgid "``<serverapp-image>``: The name of your ServerApp image to be run."
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``--insecure``:  This flag tells the container to operate in an insecure "
"mode, allowing"
msgstr ""

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"unencrypted communication. Secure connections will be added in future "
"releases."
msgstr ""

#: ../../source/docker/enable-tls.rst:185
msgid "**SuperNode and ClientApp**"
msgstr ""

#: ../../source/docker/enable-tls.rst:192
#, fuzzy
msgid "Start the SuperNode container:"
msgstr "Démarrer le serveur"

#: ../../source/docker/enable-tls.rst
msgid ""
"``--volume ./superlink-certificates/ca.crt:/app/ca.crt/:ro``: Mount the "
"``ca.crt`` file from the"
msgstr ""

#: ../../source/docker/enable-tls.rst
msgid ""
"``superlink-certificates`` directory of the host machine as a read-only "
"volume at the ``/app/ca.crt``"
msgstr ""

#: ../../source/docker/enable-tls.rst
#, fuzzy
msgid "directory inside the container."
msgstr "Utiliser les conteneurs VS Code Remote"

#: ../../source/docker/enable-tls.rst
msgid ""
":substitution-code:`flwr/supernode:|stable_flwr_version|`: The name of "
"the image to be run and the specific"
msgstr ""

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--isolation process``: Tells the SuperNode that the ClientApp is "
"created by separate"
msgstr ""

#: ../../source/docker/enable-tls.rst
#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "independent process. The SuperNode does not attempt to create it."
msgstr ""

#: ../../source/docker/enable-tls.rst:220
#, fuzzy
msgid "Start the ClientApp container:"
msgstr "Utilisation du moteur du client virtuel"

#: ../../source/docker/enable-tls.rst:233
msgid "``<clientapp-image>``: The name of your ClientApp image to be run."
msgstr ""

#: ../../source/docker/enable-tls.rst:237
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:54
#, fuzzy
msgid ""
"Append the following lines to the end of the ``pyproject.toml`` file and "
"save it:"
msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité."

#: ../../source/docker/enable-tls.rst:239
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:56
#: ../../source/docker/tutorial-quickstart-docker.rst:330
msgid "pyproject.toml"
msgstr ""

#: ../../source/docker/enable-tls.rst:246
#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:152
msgid ""
"The path of the ``root-certificates`` should be relative to the location "
"of the ``pyproject.toml`` file."
msgstr ""

#: ../../source/docker/enable-tls.rst:251
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:65
msgid ""
"You can customize the string that follows ``tool.flwr.federations.`` to "
"fit your needs. However, please note that the string cannot contain a dot"
" (``.``)."
msgstr ""

#: ../../source/docker/enable-tls.rst:254
msgid ""
"In this example, ``local-deployment-tls`` has been used. Just remember to"
" replace ``local-deployment-tls`` with your chosen name in both the "
"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` "
"command."
msgstr ""

#: ../../source/docker/index.rst:2
msgid "Run Flower using Docker"
msgstr ""

#: ../../source/docker/index.rst:4
msgid ""
"Start your Flower journey with our pre-made Docker images on Docker Hub, "
"supporting ``amd64`` and ``arm64v8`` architectures."
msgstr ""

#: ../../source/docker/index.rst:7
msgid ""
"Our Quickstart guide walks you through containerizing a Flower project "
"and running it end to end using Docker."
msgstr ""

#: ../../source/docker/index.rst:11
#, fuzzy
msgid "Getting Started"
msgstr "Pour commencer"

#: ../../source/docker/index.rst:19
msgid "Running in Production"
msgstr ""

#: ../../source/docker/index.rst:28
#, fuzzy
msgid "Advanced Options"
msgstr "Options d'installation avancées"

#: ../../source/docker/index.rst:40
#, fuzzy
msgid "Run Flower using Docker Compose"
msgstr "Serveur de Flower"

#: ../../source/docker/persist-superlink-state.rst:2
msgid "Persist the State of the SuperLink"
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:4
msgid ""
"By default, the Flower SuperLink keeps its state in-memory. When using "
"the Docker flag ``--rm``, the state is not persisted between container "
"starts."
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:7
msgid ""
"If you want to persist the state of the SuperLink on your host system, "
"all you need to do is specify a directory where you want to save the file"
" on your host system and a name for the database file."
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:11
msgid ""
"By default, the SuperLink container runs with a non-root user called "
"``app`` with the user ID ``49999``. It is recommended to create a new "
"directory and change the user ID of the directory to ``49999`` to ensure "
"the mounted directory has the proper permissions."
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:15
msgid ""
"If you later want to delete the directory, you can change the user ID "
"back to the current user ID by running ``sudo chown -R $USER:$(id -gn) "
"state``."
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:21
msgid ""
"In the example below, we create a new directory called ``state``, change "
"the user ID and tell Docker via the flag ``--volume`` to mount the local "
"``state`` directory into the ``/app/state`` directory of the container. "
"Lastly, we use the flag ``--database`` to specify the name of the "
"database file."
msgstr ""

#: ../../source/docker/persist-superlink-state.rst:36
msgid ""
"As soon as the SuperLink starts, the file ``state.db`` is created in the "
"``state`` directory on your host system. If the file already exists, the "
"SuperLink tries to restore the state from the file. To start the "
"SuperLink with an empty database, ensure that there is no database called"
" ``state.db`` in the ``state`` directory (``rm state.db``) before you "
"execute the ``docker run`` command above."
msgstr ""

#: ../../source/docker/pin-version.rst:2
msgid "Pin a Docker Image to a Specific Version"
msgstr ""

#: ../../source/docker/pin-version.rst:4
msgid ""
"It may happen that we update the images behind the tags. Such updates "
"usually include security updates of system dependencies that should not "
"change the functionality of Flower. However, if you want to ensure that "
"you use a fixed version of the Docker image in your deployments, you can "
"`specify the digest "
"<https://docs.docker.com/reference/cli/docker/image/pull/#pull-an-image-"
"by-digest-immutable-identifier>`_ of the image instead of the tag."
msgstr ""

#: ../../source/docker/pin-version.rst:14
msgid ""
"The following command returns the current image digest referenced by the "
":substitution-code:`superlink:|stable_flwr_version|` tag:"
msgstr ""

#: ../../source/docker/pin-version.rst:23
msgid "This will output"
msgstr ""

#: ../../source/docker/pin-version.rst:30
msgid "Next, we can pin the digest when running a new SuperLink container:"
msgstr ""

#: ../../source/docker/run-as-root-user.rst:2
msgid "Run with Root User Privileges"
msgstr ""

#: ../../source/docker/run-as-root-user.rst:4
msgid ""
"Flower Docker images, by default, run with a non-root user "
"(username/groupname: ``app``, UID/GID: ``49999``). Using root user is "
"**not recommended** unless it is necessary for specific tasks during the "
"build process."
msgstr ""

#: ../../source/docker/run-as-root-user.rst:8
msgid ""
"Always make sure to run the container as a non-root user in production to"
" maintain security best practices."
msgstr ""

#: ../../source/docker/run-as-root-user.rst:12
msgid "Run a Container with Root User Privileges"
msgstr ""

#: ../../source/docker/run-as-root-user.rst:14
msgid ""
"Run the Docker image with the ``-u`` flag and specify ``root`` as the "
"username:"
msgstr ""

#: ../../source/docker/run-as-root-user.rst:21
msgid "This command will run the Docker container with root user privileges."
msgstr ""

#: ../../source/docker/run-as-root-user.rst:24
msgid "Run the Build Process with Root User Privileges"
msgstr ""

#: ../../source/docker/run-as-root-user.rst:26
msgid ""
"If you want to switch to the root user during the build process of the "
"Docker image to install missing system dependencies, you can use the "
"``USER root`` directive within your Dockerfile."
msgstr ""

#: ../../source/docker/run-as-root-user.rst:30
#, fuzzy
msgid "SuperNode Dockerfile"
msgstr "Démarrer le serveur"

#: ../../source/docker/run-as-subprocess.rst:2
#, fuzzy
msgid "Run ServerApp or ClientApp as a Subprocess"
msgstr "Vérifier le format et tester le code"

#: ../../source/docker/run-as-subprocess.rst:4
msgid ""
"The SuperLink and SuperNode components support two distinct isolation "
"modes, allowing for flexible deployment and control:"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:7
msgid ""
"Subprocess Mode: In this configuration (default), the SuperLink and "
"SuperNode take responsibility for launching the ServerApp and ClientApp "
"processes internally. This differs from the ``process`` isolation-mode "
"which uses separate containers, as demonstrated in the :doc:`tutorial-"
"quickstart-docker` guide."
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:12
msgid ""
"Using the ``subprocess`` approach reduces the number of running "
"containers, which can be beneficial for environments with limited "
"resources. However, it also means that the applications are not isolated "
"from their parent containers, which may introduce additional security "
"concerns."
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:17
msgid ""
"Process Mode: In this mode, the ServerApp and ClientApps run in "
"completely separate processes. Unlike the alternative Subprocess mode, "
"the SuperLink or SuperNode does not attempt to create or manage these "
"processes. Instead, they must be started externally."
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:22
msgid ""
"Both modes can be mixed for added flexibility. For instance, you can run "
"the SuperLink in ``subprocess`` mode while keeping the SuperNode in "
"``process`` mode, or vice versa."
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:25
msgid ""
"To run the SuperLink and SuperNode in isolation mode ``process``, refer "
"to the :doc:`tutorial-quickstart-docker` guide. To run them in "
"``subprocess`` mode, follow the instructions below."
msgstr ""

#: ../../source/docker/run-as-subprocess.rst
#: ../../source/ref-api/flwr.server.ServerApp.rst:2
#, fuzzy
msgid "ServerApp"
msgstr "serveur"

#: ../../source/docker/run-as-subprocess.rst:33
#: ../../source/docker/run-as-subprocess.rst:74
#, fuzzy
msgid "**Prerequisites**"
msgstr "Prérequis"

#: ../../source/docker/run-as-subprocess.rst:35
msgid ""
"1. Before running the ServerApp as a subprocess, ensure that the FAB "
"dependencies have been installed in the SuperLink images. This can be "
"done by extending the SuperLink image:"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:38
#, fuzzy
msgid "superlink.Dockerfile"
msgstr "Démarrer le serveur"

#: ../../source/docker/run-as-subprocess.rst:52
msgid ""
"2. Next, build the SuperLink Docker image by running the following "
"command in the directory where Dockerfile is located:"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:59
#, fuzzy
msgid "**Run the ServerApp as a Subprocess**"
msgstr "Vérifier le format et tester le code"

#: ../../source/docker/run-as-subprocess.rst:61
msgid ""
"Start the SuperLink and run the ServerApp as a subprocess (note that the "
"subprocess mode is the default, so you do not have to explicitly set the "
"``--isolation`` flag):"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst
#: ../../source/ref-api/flwr.client.ClientApp.rst:2
#, fuzzy
msgid "ClientApp"
msgstr "client"

#: ../../source/docker/run-as-subprocess.rst:76
msgid ""
"1. Before running the ClientApp as a subprocess, ensure that the FAB "
"dependencies have been installed in the SuperNode images. This can be "
"done by extending the SuperNode image:"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:80
#, fuzzy
msgid "supernode.Dockerfile"
msgstr "Démarrer le serveur"

#: ../../source/docker/run-as-subprocess.rst:94
msgid ""
"2. Next, build the SuperNode Docker image by running the following "
"command in the directory where Dockerfile is located:"
msgstr ""

#: ../../source/docker/run-as-subprocess.rst:101
#, fuzzy
msgid "**Run the ClientApp as a Subprocess**"
msgstr "Vérifier le format et tester le code"

#: ../../source/docker/run-as-subprocess.rst:103
msgid ""
"Start the SuperNode and run the ClientApp as a subprocess (note that the "
"subprocess mode is the default, so you do not have to explicitly set the "
"``--isolation`` flag):"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:2
#, fuzzy
msgid "Run Flower Quickstart Examples with Docker Compose"
msgstr "Démarrage rapide XGBoost"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:4
msgid ""
"Flower provides a set of `quickstart examples "
"<https://github.com/adap/flower/tree/main/examples>`_ to help you get "
"started with the framework. These examples are designed to demonstrate "
"the capabilities of Flower and by default run using the Simulation "
"Engine. This guide demonstrates how to run them using Flower's Deployment"
" Engine via Docker Compose."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:12
msgid ""
"Some quickstart examples may have limitations or requirements that "
"prevent them from running on every environment. For more information, "
"please see Limitations_."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:18
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:15
#: ../../source/docker/tutorial-quickstart-docker.rst:13
msgid "Before you start, make sure that:"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:20
#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:22
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:17
#: ../../source/docker/tutorial-quickstart-docker.rst:15
msgid "The ``flwr`` CLI is :doc:`installed <../how-to-install-flower>` locally."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:21
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:18
#: ../../source/docker/tutorial-quickstart-docker.rst:16
msgid "The Docker daemon is running."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:22
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:19
msgid ""
"Docker Compose V2 is `installed "
"<https://docs.docker.com/compose/install/>`_."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:25
#, fuzzy
msgid "Run the Quickstart Example"
msgstr "Demande pour un nouveau Flower Example"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:27
msgid ""
"Clone the quickstart example you like to run. For example, ``quickstart-"
"pytorch``:"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:35
msgid ""
"Download the `compose.yml "
"<https://github.com/adap/flower/blob/main/src/docker/complete/compose.yml>`_"
" file into the example directory:"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:45
#, fuzzy
msgid ""
"Export the version of Flower that your environment uses. Then, build and "
"start the services using the following command:"
msgstr "Active la virtualenv en exécutant la commande suivante :"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:68
msgid ""
"In this example, ``local-deployment`` has been used. Just remember to "
"replace ``local-deployment`` with your chosen name in both the "
"``tool.flwr.federations.`` string and the corresponding ``flwr run .`` "
"command."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:72
msgid "Run the example and follow the logs of the ``ServerApp`` :"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:78
msgid ""
"That is all it takes! You can monitor the progress of the run through the"
" logs of the ``ServerApp``."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:82
msgid "Run a Different Quickstart Example"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:84
msgid ""
"To run a different quickstart example, such as ``quickstart-tensorflow``,"
" first, shut down the Docker Compose services of the current example:"
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:91
msgid "After that, you can repeat the steps above."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:94
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:100
#, fuzzy
msgid "Limitations"
msgstr "Simulation de moniteur"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:99
#, fuzzy
msgid "Quickstart Example"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:101
#, fuzzy
msgid "quickstart-fastai"
msgstr "Démarrage rapide fastai"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:102
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:104
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:106
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:113
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:115
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:119
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:121
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:125
#: ../../source/ref-changelog.md:236 ../../source/ref-changelog.md:602
#: ../../source/ref-changelog.md:879 ../../source/ref-changelog.md:943
#: ../../source/ref-changelog.md:1001 ../../source/ref-changelog.md:1070
#: ../../source/ref-changelog.md:1132
msgid "None"
msgstr "Aucun"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:103
#, fuzzy
msgid "quickstart-huggingface"
msgstr "Quickstart tutorials"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:105
#, fuzzy
msgid "quickstart-jax"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:107
#, fuzzy
msgid "quickstart-mlcube"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:108
#: ../../source/docker/run-quickstart-examples-docker-compose.rst:123
#, fuzzy
msgid ""
"The example has not yet been updated to work with the latest ``flwr`` "
"version."
msgstr ""
"Les exemples de code couvrant scikit-learn et PyTorch Lightning ont été "
"mis à jour pour fonctionner avec la dernière version de Flower."

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:109
#, fuzzy
msgid "quickstart-mlx"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:110
msgid ""
"`Requires to run on macOS with Apple Silicon <https://ml-"
"explore.github.io/mlx/build/html/install.html#python-installation>`_."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:112
#, fuzzy
msgid "quickstart-monai"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:114
#, fuzzy
msgid "quickstart-pandas"
msgstr "Démarrage rapide des Pandas"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:116
#, fuzzy
msgid "quickstart-pytorch-lightning"
msgstr "Démarrage rapide de PyTorch Lightning"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:117
msgid ""
"Requires an older pip version that is not supported by the Flower Docker "
"images."
msgstr ""

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:118
#, fuzzy
msgid "quickstart-pytorch"
msgstr "Démarrage rapide de PyTorch"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:120
#, fuzzy
msgid "quickstart-sklearn-tabular"
msgstr "Démarrage rapide de scikit-learn"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:122
#, fuzzy
msgid "quickstart-tabnet"
msgstr "Démarrage rapide de JAX"

#: ../../source/docker/run-quickstart-examples-docker-compose.rst:124
#, fuzzy
msgid "quickstart-tensorflow"
msgstr "Démarrage rapide de TensorFlow"

#: ../../source/docker/set-environment-variables.rst:2
#, fuzzy
msgid "Set Environment Variables"
msgstr "Mise en place de l'environnement de codage"

#: ../../source/docker/set-environment-variables.rst:4
msgid ""
"To set a variable inside a Docker container, you can use the ``-e "
"<name>=<value>`` flag. Multiple ``-e`` flags can be used to set multiple "
"environment variables for a container."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:2
#, fuzzy
msgid "Deploy Flower on Multiple Machines with Docker Compose"
msgstr "Démarrage rapide XGBoost"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:4
msgid ""
"This guide will help you set up a Flower project on multiple machines "
"using Docker Compose."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:7
msgid ""
"You will learn how to run the Flower client and server components on two "
"separate machines, with Flower configured to use TLS encryption and "
"persist SuperLink state across restarts. A server consists of a SuperLink"
" and a ``ServerApp``. For more details about the Flower architecture, "
"refer to the :doc:`../explanation-flower-architecture` explainer page."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:13
msgid ""
"This guide assumes you have completed the :doc:`tutorial-quickstart-"
"docker-compose` tutorial. It is highly recommended that you follow and "
"understand the contents of that tutorial before proceeding with this "
"guide."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:20
msgid "Before you begin, make sure you have the following prerequisites:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:23
msgid "The Docker daemon is running on your local machine and the remote machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:24
msgid ""
"Docker Compose V2 is installed on both your local machine and the remote "
"machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:25
msgid "You can connect to the remote machine from your local machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:26
msgid "Ports ``9091`` and ``9093`` are accessible on the remote machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:30
msgid ""
"The guide uses the |quickstart_sklearn_tabular|_ example as an example "
"project."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:32
msgid ""
"If your project has a different name or location, please remember to "
"adjust the commands/paths accordingly."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:36
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:22
#: ../../source/docker/tutorial-quickstart-docker.rst:19
msgid "Step 1: Set Up"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:38
msgid "Clone the Flower repository and change to the ``distributed`` directory:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:46
msgid "Get the IP address from the remote machine and save it for later."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:47
msgid ""
"Use the ``certs.yml`` Compose file to generate your own self-signed "
"certificates. If you have certificates, you can continue with Step 2."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:52
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:212
msgid "These certificates should be used only for development purposes."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:54
msgid ""
"For production environments, you may have to use dedicated services to "
"obtain your certificates."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:57
msgid ""
"First, set the environment variable ``SUPERLINK_IP`` with the IP address "
"from the remote machine. For example, if the IP is ``192.168.2.33``, "
"execute:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:64
msgid "Next, generate the self-signed certificates:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:71
msgid "Step 2: Copy the Server Compose Files"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:73
msgid ""
"Use the method that works best for you to copy the ``server`` directory, "
"the certificates, and the ``pyproject.toml`` file of your Flower project "
"to the remote machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:77
msgid "For example, you can use ``scp`` to copy the directories:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:86
#, fuzzy
msgid "Step 3: Start the Flower Server Components"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:88
msgid ""
"Log into the remote machine using ``ssh`` and run the following command "
"to start the SuperLink and ``ServerApp`` services:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:102
msgid ""
"The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file "
"should be relative to the location of the server ``compose.yml`` file."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:107
msgid ""
"When working with Docker Compose on Linux, you may need to create the "
"``state`` directory first and change its ownership to ensure proper "
"access and permissions. After exporting the ``PROJECT_DIR`` (after line "
"4), run the following commands:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:116
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:165
msgid ""
"For more information, consult the following page: :doc:`persist-"
"superlink-state`."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:118
msgid "Go back to your terminal on your local machine."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:121
#, fuzzy
msgid "Step 4: Start the Flower Client Components"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:123
msgid ""
"On your local machine, run the following command to start the client "
"components:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:133
msgid ""
"The path to the ``PROJECT_DIR`` containing the ``pyproject.toml`` file "
"should be relative to the location of the client ``compose.yml`` file."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:137
#, fuzzy
msgid "Step 5: Run Your Flower Project"
msgstr "Serveur de Flower"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:139
msgid ""
"Specify the remote SuperLink IP addresses and the path to the root "
"certificate in the ``[tool.flwr.federations.remote-deployment]`` table in"
" the ``pyproject.toml`` file. Here, we have named our remote federation "
"``remote-deployment``:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:143
#, fuzzy
msgid "examples/quickstart-sklearn-tabular/pyproject.toml"
msgstr "Démarrage rapide de scikit-learn"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:155
msgid "Run the project and follow the ``ServerApp`` logs:"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:161
msgid ""
"That's it! With these steps, you've set up Flower on two separate "
"machines and are ready to start using it."
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:165
msgid "Step 6: Clean Up"
msgstr ""

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:167
#, fuzzy
msgid "Shut down the Flower client components:"
msgstr "Client de Flower"

#: ../../source/docker/tutorial-deploy-on-multiple-machines.rst:174
msgid "Shut down the Flower server components and delete the SuperLink state:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:2
#, fuzzy
msgid "Quickstart with Docker"
msgstr "Démarrage rapide XGBoost"

#: ../../source/docker/tutorial-quickstart-docker.rst:4
msgid ""
"This quickstart aims to guide you through the process of containerizing a"
" Flower project and running it end to end using Docker on your local "
"machine."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:7
msgid ""
"This tutorial does not use production-ready settings, so you can focus on"
" understanding the basic workflow that uses the minimum configurations."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:33
#: ../../source/docker/tutorial-quickstart-docker.rst:21
msgid "Create a new Flower project (PyTorch):"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:38
msgid "Create a new Docker bridge network called ``flwr-network``:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:44
msgid ""
"User-defined networks, such as ``flwr-network``, enable IP resolution of "
"container names, a feature absent in the default bridge network. This "
"simplifies quickstart example by avoiding the need to determine host IP "
"first."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:49
#, fuzzy
msgid "Step 2: Start the SuperLink"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:64
#: ../../source/docker/tutorial-quickstart-docker.rst:51
#, fuzzy
msgid "Open your terminal and run:"
msgstr "Ouvre un autre terminal et démarre le deuxième client :"

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``-p 9091:9091 -p 9092:9092 -p 9093:9093``: Map port ``9091``, ``9092`` "
"and ``9093`` of the"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"container to the same port of the host machine, allowing other services "
"to access the"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"ServerAppIO API on ``http://localhost:9091``, the Fleet API on "
"``http://localhost:9092`` and"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "the Exec API on ``http://localhost:9093``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:74
#: ../../source/docker/tutorial-quickstart-docker.rst:114
#: ../../source/docker/tutorial-quickstart-docker.rst:223
#: ../../source/docker/tutorial-quickstart-docker.rst:305
msgid ""
"``--network flwr-network``: Make the container join the network named "
"``flwr-network``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:75
msgid "``--name superlink``: Assign the name ``superlink`` to the container."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:76
#: ../../source/docker/tutorial-quickstart-docker.rst:116
#: ../../source/docker/tutorial-quickstart-docker.rst:225
#: ../../source/docker/tutorial-quickstart-docker.rst:306
msgid ""
"``--detach``: Run the container in the background, freeing up the "
"terminal."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"tag of the image. The tag :substitution-code:`|stable_flwr_version|` "
"represents a :doc:`specific version <pin-version>` of the image."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--insecure``: This flag tells the container to operate in an insecure "
"mode, allowing"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "unencrypted communication."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"independent process. The SuperLink does not attempt to create it. You can"
" learn more about"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "the different process modes here: :doc:`run-as-subprocess`."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:86
#, fuzzy
msgid "Step 3: Start the SuperNodes"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker.rst:88
msgid "Start two SuperNode containers."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:90
msgid "Start the first container:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "``-p 9094:9094``: Map port ``9094`` of the container to the same port of"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "the host machine, allowing other services to access the SuperNode API on"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "``http://localhost:9094``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:115
msgid "``--name supernode-1``: Assign the name ``supernode-1`` to the container."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
":substitution-code:`flwr/supernode:|stable_flwr_version|`: This is the "
"name of the"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "image to be run and the specific tag of the image."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--superlink superlink:9092``: Connect to the SuperLink's Fleet API at "
"the address"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "``superlink:9092``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--node-config \"partition-id=0 num-partitions=2\"``: Set the partition "
"ID to ``0`` and the"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "number of partitions to ``2`` for the SuperNode configuration."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--clientappio-api-address 0.0.0.0:9094``: Set the address and port "
"number that the"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "SuperNode is listening on to communicate with the ClientApp. If"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"two SuperNodes are started on the same machine, set two different port "
"numbers for each SuperNode."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"(E.g. In the next step, we set the second SuperNode container to listen "
"on port 9095)"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:132
#, fuzzy
msgid "Start the second container:"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker.rst:150
#, fuzzy
msgid "Step 4: Start a ServerApp"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker.rst:152
msgid ""
"The ServerApp Docker image comes with a pre-installed version of Flower "
"and serves as a base for building your own ServerApp image. In order to "
"install the FAB dependencies, you will need to create a Dockerfile that "
"extends the ServerApp image and installs the required dependencies."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:157
msgid ""
"Create a ServerApp Dockerfile called ``serverapp.Dockerfile`` and paste "
"the following code in:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:160
#, fuzzy
msgid "serverapp.Dockerfile"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "Understand the Dockerfile"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
":substitution-code:`FROM flwr/serverapp:|stable_flwr_version|`: This line"
" specifies that the Docker image"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"to be built from is the ``flwr/serverapp`` image, version :substitution-"
"code:`|stable_flwr_version|`."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "``WORKDIR /app``: Set the working directory for the container to ``/app``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"Any subsequent commands that reference a directory will be relative to "
"this directory."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "``COPY pyproject.toml .``: Copy the ``pyproject.toml`` file"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"from the current working directory into the container's ``/app`` "
"directory."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``RUN sed -i 's/.*flwr\\[simulation\\].*//' pyproject.toml``: Remove the "
"``flwr`` dependency"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "from the ``pyproject.toml``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``python -m pip install -U --no-cache-dir .``: Run the ``pip`` install "
"command to"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "install the dependencies defined in the ``pyproject.toml`` file"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"The ``-U`` flag indicates that any existing packages should be upgraded, "
"and"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--no-cache-dir`` prevents pip from using the cache to speed up the "
"installation."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``ENTRYPOINT [\"flwr-serverapp\"]``: Set the command ``flwr-serverapp`` "
"to be"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "the default command run when the container is started."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:194
msgid ""
"Note that `flwr <https://pypi.org/project/flwr/>`__ is already installed "
"in the ``flwr/clientapp`` base image, so only other package dependencies "
"such as ``flwr-datasets``, ``torch``, etc., need to be installed. As a "
"result, the ``flwr`` dependency is removed from the ``pyproject.toml`` "
"after it has been copied into the Docker image (see line 5)."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:200
msgid ""
"Afterward, in the directory that holds the Dockerfile, execute this "
"Docker command to build the ServerApp image:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:224
msgid "``--name serverapp``: Assign the name ``serverapp`` to the container."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``flwr_serverapp:0.0.1``: This is the name of the image to be run and the"
" specific tag"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "of the image."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--serverappio-api-address superlink:9091``: Connect to the SuperLink's "
"ServerAppIO API"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "at the address ``superlink:9091``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:234
#, fuzzy
msgid "Step 5: Start the ClientApp"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker.rst:236
msgid ""
"The procedure for building and running a ClientApp image is almost "
"identical to the ServerApp image."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:239
msgid ""
"Similar to the ServerApp image, you will need to create a Dockerfile that"
" extends the ClientApp image and installs the required FAB dependencies."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:242
msgid ""
"Create a ClientApp Dockerfile called ``clientapp.Dockerfile`` and paste "
"the following code into it:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:245
#, fuzzy
msgid "clientapp.Dockerfile"
msgstr "client"

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
":substitution-code:`FROM flwr/clientapp:|stable_flwr_version|`: This line"
" specifies that the Docker image"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"to be built from is the ``flwr/clientapp`` image, version :substitution-"
"code:`|stable_flwr_version|`."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``ENTRYPOINT [\"flwr-clientapp\"]``: Set the command ``flwr-clientapp`` "
"to be"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:277
msgid ""
"Next, build the ClientApp Docker image by running the following command "
"in the directory where the Dockerfile is located:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:286
msgid ""
"The image name was set as ``flwr_clientapp`` with the tag ``0.0.1``. "
"Remember that these values are merely examples, and you can customize "
"them according to your requirements."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:290
#, fuzzy
msgid "Start the first ClientApp container:"
msgstr "Utilisation du moteur du client virtuel"

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``flwr_clientapp:0.0.1``: This is the name of the image to be run and the"
" specific tag"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid ""
"``--clientappio-api-address supernode-1:9094``: Connect to the "
"SuperNode's ClientAppIO"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst
msgid "API at the address ``supernode-1:9094``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:314
msgid "Start the second ClientApp container:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:326
msgid "Step 6: Run the Quickstart Project"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:328
#, fuzzy
msgid "Add the following lines to the ``pyproject.toml``:"
msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité."

#: ../../source/docker/tutorial-quickstart-docker.rst:337
msgid ""
"Run the ``quickstart-docker`` project and follow the ServerApp logs to "
"track the execution of the run:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:345
#, fuzzy
msgid "Step 7: Update the Application"
msgstr "Étape 3 : Sérialisation personnalisée"

#: ../../source/docker/tutorial-quickstart-docker.rst:347
msgid ""
"Change the application code. For example, change the ``seed`` in "
"``quickstart_docker/task.py`` to ``43`` and save it:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:350
#, fuzzy
msgid "quickstart_docker/task.py"
msgstr "Démarrage rapide des Pandas"

#: ../../source/docker/tutorial-quickstart-docker.rst:357
#, fuzzy
msgid "Stop the current ServerApp and ClientApp containers:"
msgstr "Utilisation du moteur du client virtuel"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:125
#: ../../source/docker/tutorial-quickstart-docker.rst:361
msgid ""
"If you have modified the dependencies listed in your ``pyproject.toml`` "
"file, it is essential to rebuild images."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:364
msgid "If you haven’t made any changes, you can skip steps 2 through 4."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:370
#, fuzzy
msgid "Rebuild ServerApp and ClientApp images:"
msgstr "Chargement des données"

#: ../../source/docker/tutorial-quickstart-docker.rst:377
msgid ""
"Launch one new ServerApp and two new ClientApp containers based on the "
"newly built image:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:402
msgid "Run the updated project:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:409
msgid "Step 8: Clean Up"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:411
msgid "Remove the containers and the bridge network:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:400
#: ../../source/docker/tutorial-quickstart-docker.rst:423
#, fuzzy
msgid "Where to Go Next"
msgstr "Par où commencer"

#: ../../source/docker/tutorial-quickstart-docker.rst:425
msgid ":doc:`enable-tls`"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:426
msgid ":doc:`persist-superlink-state`"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker.rst:427
msgid ":doc:`tutorial-quickstart-docker-compose`"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:2
#, fuzzy
msgid "Quickstart with Docker Compose"
msgstr "Démarrage rapide XGBoost"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:4
msgid ""
"This quickstart shows you how to set up Flower using Docker Compose in a "
"single command, allowing you to focus on developing your application "
"without worrying about the underlying infrastructure."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:8
msgid ""
"You will also learn how to easily enable TLS encryption and persist "
"application state locally, giving you the freedom to choose the "
"configuration that best suits your project's needs."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:24
msgid "Clone the Docker Compose ``complete`` directory:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:39
msgid ""
"Export the path of the newly created project. The path should be relative"
" to the location of the Docker Compose files:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:46
msgid ""
"Setting the ``PROJECT_DIR`` helps Docker Compose locate the "
"``pyproject.toml`` file, allowing it to install dependencies in the "
"``ServerApp`` and ``ClientApp`` images correctly."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:51
#, fuzzy
msgid "Step 2: Run Flower in Insecure Mode"
msgstr "Serveur de Flower"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:53
msgid ""
"To begin, start Flower with the most basic configuration. In this setup, "
"Flower will run without TLS and without persisting the state."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:58
msgid ""
"Without TLS, the data sent between the services remains **unencrypted**. "
"Use it only for development purposes."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:61
msgid ""
"For production-oriented use cases, :ref:`enable TLS<TLS>` for secure data"
" transmission."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:72
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:175
msgid "``docker compose``: The Docker command to run the Docker Compose tool."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:73
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:181
msgid ""
"``--build``: Rebuild the images for each service if they don't already "
"exist."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:74
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:182
msgid ""
"``-d``: Detach the containers from the terminal and run them in the "
"background."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:77
msgid "Step 3: Run the Quickstart Project"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:79
msgid ""
"Now that the Flower services have been started via Docker Compose, it is "
"time to run the quickstart example."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:82
msgid ""
"To ensure the ``flwr`` CLI connects to the SuperLink, you need to specify"
" the SuperLink addresses in the ``pyproject.toml`` file."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:85
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:223
msgid "Add the following lines to the ``quickstart-compose/pyproject.toml``:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:87
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:225
msgid "quickstart-compose/pyproject.toml"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:94
msgid ""
"Run the quickstart example, monitor the ``ServerApp`` logs and wait for "
"the summary to appear:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:102
#, fuzzy
msgid "Step 4: Update the Application"
msgstr "Étape 3 : Sérialisation personnalisée"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:104
msgid "In the next step, change the application code."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:106
msgid ""
"For example, go to the ``task.py`` file in the ``quickstart-"
"compose/quickstart_compose/`` directory and add a ``print`` call in the "
"``get_weights`` function:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:110
msgid "quickstart-compose/quickstart_compose/task.py"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:121
#, fuzzy
msgid "Rebuild and restart the services."
msgstr "Nous pouvons déjà démarrer le *serveur* :"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:128
msgid "If you haven't made any changes, you can skip this step."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:130
msgid "Run the following command to rebuild and restart the services:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:136
msgid "Run the updated quickstart example:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:142
msgid "In the ``ServerApp`` logs, you should find the ``Get weights`` line:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:155
msgid "Step 5: Persisting the SuperLink State"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:157
msgid ""
"In this step, Flower services are configured to persist the state of the "
"SuperLink service, ensuring that it maintains its state even after a "
"restart."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:162
msgid ""
"When working with Docker Compose on Linux, you may need to create the "
"``state`` directory first and change its ownership to ensure proper "
"access and permissions."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:167
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:217
msgid "Run the command:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:176
msgid ""
"``-f compose.yml``: Specify the YAML file that contains the basic Flower "
"service definitions."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst
msgid ""
"``-f with-state.yml``: Specifies the path to an additional Docker Compose"
" file that"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst
msgid "contains the configuration for persisting the SuperLink state."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst
msgid ""
"Docker merges Compose files according to `merging rules "
"<https://docs.docker.com/compose/multiple-compose-files/merge/#merging-"
"rules>`_."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:184
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:238
#: ../../source/docker/tutorial-quickstart-docker-compose.rst:369
msgid "Rerun the ``quickstart-compose`` project:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:190
msgid "Check the content of the ``state`` directory:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:197
msgid ""
"You should see a ``state.db`` file in the ``state`` directory. If you "
"restart the service, the state file will be used to restore the state "
"from the previously saved data. This ensures that the data persists even "
"if the containers are stopped and started again."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:205
msgid "Step 6: Run Flower with TLS"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:207
msgid ""
"To demonstrate how to enable TLS, generate self-signed certificates using"
" the ``certs.yml`` Compose file."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:214
msgid ""
"For production environments, use a service like `Let's Encrypt "
"<https://letsencrypt.org/>`_ to obtain your certificates."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:232
msgid "Restart the services with TLS enabled:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:245
#, fuzzy
msgid "Step 7: Add another SuperNode and ClientApp"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:247
msgid ""
"You can add more SuperNodes and ClientApps by uncommenting their "
"definitions in the ``compose.yml`` file:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:250
msgid "compose.yml"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:302
msgid ""
"If you also want to enable TLS for the new SuperNode, uncomment the "
"definition in the ``with-tls.yml`` file:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:305
msgid "with-tls.yml"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:326
#, fuzzy
msgid "Restart the services with:"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:335
msgid "Step 8: Persisting the SuperLink State and Enabling TLS"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:337
msgid ""
"To run Flower with persisted SuperLink state and enabled TLS, a slight "
"change in the ``with-state.yml`` file is required:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:340
msgid "Comment out the lines 2-6 and uncomment the lines 7-13:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:342
msgid "with-state.yml"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:363
#, fuzzy
msgid "Restart the services:"
msgstr "Démarrer le serveur"

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:376
msgid "Step 9: Merge Multiple Compose Files"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:378
msgid ""
"You can merge multiple Compose files into a single file. For instance, if"
" you wish to combine the basic configuration with the TLS configuration, "
"execute the following command:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:387
msgid ""
"This will merge the contents of ``compose.yml`` and ``with-tls.yml`` into"
" a new file called ``my_compose.yml``."
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:391
msgid "Step 10: Clean Up"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:393
msgid "Remove all services and volumes:"
msgstr ""

#: ../../source/docker/tutorial-quickstart-docker-compose.rst:402
#, fuzzy
msgid ":doc:`run-quickstart-examples-docker-compose`"
msgstr "Démarrage rapide XGBoost"

#: ../../source/docker/use-a-different-version.rst:2
msgid "Use a Different Flower Version"
msgstr ""

#: ../../source/docker/use-a-different-version.rst:4
msgid ""
"If you want to use a different version of Flower, for example Flower "
"nightly, you can do so by changing the tag. All available versions are on"
" `Docker Hub <https://hub.docker.com/u/flwr>`__."
msgstr ""

#: ../../source/docker/use-a-different-version.rst:10
msgid ""
"When using Flower nightly, the SuperLink nightly image must be paired "
"with the corresponding SuperNode and ServerApp nightly images released on"
" the same day. To ensure the versions are in sync, using the concrete "
"tag, e.g., ``1.10.0.dev20240610`` instead of ``nightly`` is recommended."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:2
#: ../../source/explanation-differential-privacy.rst:14
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:303
#, fuzzy
msgid "Differential Privacy"
msgstr "Confidentialité différentielle"

#: ../../source/explanation-differential-privacy.rst:4
msgid ""
"The information in datasets like healthcare, financial transactions, user"
" preferences, etc., is valuable and has the potential for scientific "
"breakthroughs and provides important business insights. However, such "
"data is also sensitive and there is a risk of compromising individual "
"privacy."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:9
msgid ""
"Traditional methods like anonymization alone would not work because of "
"attacks like Re-identification and Data Linkage. That's where "
"differential privacy comes in. It provides the possibility of analyzing "
"data while ensuring the privacy of individuals."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:16
msgid ""
"Imagine two datasets that are identical except for a single record (for "
"instance, Alice's data). Differential Privacy (DP) guarantees that any "
"analysis (M), like calculating the average income, will produce nearly "
"identical results for both datasets (O and O' would be similar). This "
"preserves group patterns while obscuring individual details, ensuring the"
" individual's information remains hidden in the crowd."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:-1
msgid "DP Intro"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:27
msgid ""
"One of the most commonly used mechanisms to achieve DP is adding enough "
"noise to the output of the analysis to mask the contribution of each "
"individual in the data while preserving the overall accuracy of the "
"analysis."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:32
#, fuzzy
msgid "Formal Definition"
msgstr "Compiler les définitions ProtoBuf"

#: ../../source/explanation-differential-privacy.rst:34
msgid ""
"Differential Privacy (DP) provides statistical guarantees against the "
"information an adversary can infer through the output of a randomized "
"algorithm. It provides an unconditional upper bound on the influence of a"
" single individual on the output of the algorithm by adding noise [1]. A "
"randomized mechanism M provides (:math:`\\epsilon`, "
":math:`\\delta`)-differential privacy if for any two neighboring "
"databases, D :sub:`1` and D :sub:`2`, that differ in only a single "
"record, and for all possible outputs S ⊆ Range(A):"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:42
msgid ""
"\\small\n"
"P[M(D_{1} \\in A)] \\leq e^{\\epsilon} P[M(D_{2} \\in A)] + \\delta"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:47
msgid ""
"The :math:`\\epsilon` parameter, also known as the privacy budget, is a "
"metric of privacy loss. It also controls the privacy-utility trade-off; "
"lower :math:`\\epsilon` values indicate higher levels of privacy but are "
"likely to reduce utility as well. The :math:`\\delta` parameter accounts "
"for a small probability on which the upper bound :math:`\\epsilon` does "
"not hold. The amount of noise needed to achieve differential privacy is "
"proportional to the sensitivity of the output, which measures the maximum"
" change in the output due to the inclusion or removal of a single record."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:56
#, fuzzy
msgid "Differential Privacy in Machine Learning"
msgstr "Confidentialité différentielle"

#: ../../source/explanation-differential-privacy.rst:58
msgid ""
"DP can be utilized in machine learning to preserve the privacy of the "
"training data. Differentially private machine learning algorithms are "
"designed in a way to prevent the algorithm to learn any specific "
"information about any individual data points and subsequently prevent the"
" model from revealing sensitive information. Depending on the stage at "
"which noise is introduced, various methods exist for applying DP to "
"machine learning algorithms. One approach involves adding noise to the "
"training data (either to the features or labels), while another method "
"entails injecting noise into the gradients of the loss function during "
"model training. Additionally, such noise can be incorporated into the "
"model's output."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:69
#, fuzzy
msgid "Differential Privacy in Federated Learning"
msgstr "Mise à l'échelle de l'apprentissage fédéré"

#: ../../source/explanation-differential-privacy.rst:71
msgid ""
"Federated learning is a data minimization approach that allows multiple "
"parties to collaboratively train a model without sharing their raw data. "
"However, federated learning also introduces new privacy challenges. The "
"model updates between parties and the central server can leak information"
" about the local data. These leaks can be exploited by attacks such as "
"membership inference and property inference attacks, or model inversion "
"attacks."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:78
msgid ""
"DP can play a crucial role in federated learning to provide privacy for "
"the clients' data."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:81
msgid ""
"Depending on the granularity of privacy provision or the location of "
"noise addition, different forms of DP exist in federated learning. In "
"this explainer, we focus on two approaches of DP utilization in federated"
" learning based on where the noise is added: at the server (also known as"
" the center) or at the client (also known as the local)."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:86
msgid ""
"**Central Differential Privacy**: DP is applied by the server and the "
"goal is to prevent the aggregated model from leaking information about "
"each client's data."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:88
msgid ""
"**Local Differential Privacy**: DP is applied on the client side before "
"sending any information to the server and the goal is to prevent the "
"updates that are sent to the server from leaking any information about "
"the client's data."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:-1
#: ../../source/explanation-differential-privacy.rst:93
#: ../../source/how-to-use-differential-privacy.rst:15
#, fuzzy
msgid "Central Differential Privacy"
msgstr "Confidentialité différentielle"

#: ../../source/explanation-differential-privacy.rst:95
msgid ""
"In this approach, which is also known as user-level DP, the central "
"server is responsible for adding noise to the globally aggregated "
"parameters. It should be noted that trust in the server is required."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:104
msgid ""
"While there are various ways to implement central DP in federated "
"learning, we concentrate on the algorithms proposed by [2] and [3]. The "
"overall approach is to clip the model updates sent by the clients and add"
" some amount of noise to the aggregated model. In each iteration, a "
"random set of clients is chosen with a specific probability for training."
" Each client performs local training on its own data. The update of each "
"client is then clipped by some value `S` (sensitivity `S`). This would "
"limit the impact of any individual client which is crucial for privacy "
"and often beneficial for robustness. A common approach to achieve this is"
" by restricting the `L2` norm of the clients' model updates, ensuring "
"that larger updates are scaled down to fit within the norm `S`."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:-1
msgid "clipping"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:120
msgid ""
"Afterwards, the Gaussian mechanism is used to add noise in order to "
"distort the sum of all clients' updates. The amount of noise is scaled to"
" the sensitivity value to obtain a privacy guarantee. The Gaussian "
"mechanism is used with a noise sampled from `N (0, σ²)` where `σ = ( "
"noise_scale * S ) / (number of sampled clients)`."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:126
msgid "Clipping"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:128
msgid ""
"There are two forms of clipping commonly used in Central DP: Fixed "
"Clipping and Adaptive Clipping."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:131
msgid ""
"**Fixed Clipping** : A predefined fix threshold is set for the magnitude "
"of clients' updates. Any update exceeding this threshold is clipped back "
"to the threshold value."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:133
msgid ""
"**Adaptive Clipping** : The clipping threshold dynamically adjusts based "
"on the observed update distribution [4]. It means that the clipping value"
" is tuned during the rounds with respect to the quantile of the update "
"norm distribution."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:137
msgid ""
"The choice between fixed and adaptive clipping depends on various factors"
" such as privacy requirements, data distribution, model complexity, and "
"others."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:-1
#: ../../source/explanation-differential-privacy.rst:141
#: ../../source/how-to-use-differential-privacy.rst:114
#, fuzzy
msgid "Local Differential Privacy"
msgstr "Confidentialité différentielle"

#: ../../source/explanation-differential-privacy.rst:143
msgid ""
"In this approach, each client is responsible for performing DP. Local DP "
"avoids the need for a fully trusted aggregator, but it should be noted "
"that local DP leads to a decrease in accuracy but better privacy in "
"comparison to central DP."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:152
msgid "In this explainer, we focus on two forms of achieving Local DP:"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:154
msgid ""
"Each client adds noise to the local updates before sending them to the "
"server. To achieve (:math:`\\epsilon`, :math:`\\delta`)-DP, considering "
"the sensitivity of the local model to be ∆, Gaussian noise is applied "
"with a noise scale of σ where:"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:158
msgid ""
"\\small\n"
"\\frac{∆ \\times \\sqrt{2 \\times "
"\\log\\left(\\frac{1.25}{\\delta}\\right)}}{\\epsilon}"
msgstr ""

#: ../../source/explanation-differential-privacy.rst:163
msgid ""
"Each client adds noise to the gradients of the model during the local "
"training (DP-SGD). More specifically, in this approach, gradients are "
"clipped and an amount of calibrated noise is injected into the gradients."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:167
msgid ""
"Please note that these two approaches are providing privacy at different "
"levels."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:169
#, fuzzy
msgid "**References:**"
msgstr "Référence"

#: ../../source/explanation-differential-privacy.rst:171
msgid "[1] Dwork et al. The Algorithmic Foundations of Differential Privacy."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:173
#, fuzzy
msgid ""
"[2] McMahan et al. Learning Differentially Private Recurrent Language "
"Models."
msgstr ""
"McMahan, H. Brendan, et al. \"Learning differentially private recurrent "
"language models\", arXiv preprint arXiv:1710.06963 (2017)."

#: ../../source/explanation-differential-privacy.rst:175
msgid ""
"[3] Geyer et al. Differentially Private Federated Learning: A Client "
"Level Perspective."
msgstr ""

#: ../../source/explanation-differential-privacy.rst:177
#, fuzzy
msgid "[4] Galen et al. Differentially Private Learning with Adaptive Clipping."
msgstr ""
"Andrew, Galen, et al. \"Differentially private learning with adaptive "
"clipping\" Advances in Neural Information Processing Systems 34 (2021) : "
"17455-17466."

#: ../../source/explanation-federated-evaluation.rst:2
msgid "Federated evaluation"
msgstr "Évaluation fédérée"

#: ../../source/explanation-federated-evaluation.rst:4
msgid ""
"There are two main approaches to evaluating models in federated learning "
"systems: centralized (or server-side) evaluation and federated (or "
"client-side) evaluation."
msgstr ""
"Il existe deux approches principales pour évaluer les modèles dans les "
"systèmes d'apprentissage fédérés : l'évaluation centralisée (ou côté "
"serveur) et l'évaluation fédérée (ou côté client)."

#: ../../source/explanation-federated-evaluation.rst:8
msgid "Centralized Evaluation"
msgstr "Évaluation centralisée"

#: ../../source/explanation-federated-evaluation.rst:11
msgid "Built-In Strategies"
msgstr "Stratégies intégrées"

#: ../../source/explanation-federated-evaluation.rst:13
msgid ""
"All built-in strategies support centralized evaluation by providing an "
"evaluation function during initialization. An evaluation function is any "
"function that can take the current global model parameters as input and "
"return evaluation results:"
msgstr ""
"Toutes les stratégies intégrées prennent en charge l'évaluation "
"centralisée en fournissant une fonction d'évaluation lors de "
"l'initialisation. Une fonction d'évaluation est une fonction qui peut "
"prendre les paramètres du modèle global actuel comme entrée et renvoyer "
"les résultats de l'évaluation :"

#: ../../source/explanation-federated-evaluation.rst:70
msgid "Custom Strategies"
msgstr "Stratégies personnalisées"

#: ../../source/explanation-federated-evaluation.rst:72
#, fuzzy
msgid ""
"The ``Strategy`` abstraction provides a method called ``evaluate`` that "
"can directly be used to evaluate the current global model parameters. The"
" current server implementation calls ``evaluate`` after parameter "
"aggregation and before federated evaluation (see next paragraph)."
msgstr ""
"L'abstraction :code:`Strategy` fournit une méthode appelée "
":code:`evaluate` qui peut être directement utilisée pour évaluer les "
"paramètres du modèle global actuel. L'implémentation actuelle du serveur "
"appelle :code:`evaluate` après l'agrégation des paramètres et avant "
"l'évaluation fédérée (voir le paragraphe suivant)."

#: ../../source/explanation-federated-evaluation.rst:78
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:292
msgid "Federated Evaluation"
msgstr "Évaluation fédérée"

#: ../../source/explanation-federated-evaluation.rst:81
msgid "Implementing Federated Evaluation"
msgstr "Mise en œuvre de l'évaluation fédérée"

#: ../../source/explanation-federated-evaluation.rst:83
#, fuzzy
msgid ""
"Client-side evaluation happens in the ``Client.evaluate`` method and can "
"be configured from the server side."
msgstr ""
"L'évaluation côté client se fait dans la méthode :code:`Client.evaluate` "
"et peut être configurée côté serveur."

#: ../../source/explanation-federated-evaluation.rst:116
msgid "Configuring Federated Evaluation"
msgstr "Configuration de l'évaluation fédérée"

#: ../../source/explanation-federated-evaluation.rst:118
msgid ""
"Federated evaluation can be configured from the server side. Built-in "
"strategies support the following arguments:"
msgstr ""
"L'évaluation fédérée peut être configurée du côté du serveur. Les "
"stratégies intégrées prennent en charge les arguments suivants :"

#: ../../source/explanation-federated-evaluation.rst:121
#, fuzzy
msgid ""
"``fraction_evaluate``: a ``float`` defining the fraction of clients that "
"will be selected for evaluation. If ``fraction_evaluate`` is set to "
"``0.1`` and ``100`` clients are connected to the server, then ``10`` will"
" be randomly selected for evaluation. If ``fraction_evaluate`` is set to "
"``0.0``, federated evaluation will be disabled."
msgstr ""
":code:`fraction_evaluate` : un :code:`float` définissant la fraction de "
"clients qui sera sélectionnée pour l'évaluation. Si "
":code:`fraction_evaluate` est défini à :code:`0.1` et que :code:`100` "
"clients sont connectés au serveur, alors :code:`10` sera sélectionné "
"aléatoirement pour l'évaluation. Si :code:`fraction_evaluate` est défini "
"à :code:`0.0`, l'évaluation fédérée sera désactivée."

#: ../../source/explanation-federated-evaluation.rst:126
#, fuzzy
msgid ""
"``min_evaluate_clients``: an ``int``: the minimum number of clients to be"
" selected for evaluation. If ``fraction_evaluate`` is set to ``0.1``, "
"``min_evaluate_clients`` is set to 20, and ``100`` clients are connected "
"to the server, then ``20`` clients will be selected for evaluation."
msgstr ""
"si :code:`fraction_evaluate` est réglé sur :code:`0.1`, "
":code:`min_evaluate_clients` est réglé sur 20, et que :code:`100` clients"
" sont connectés au serveur, alors :code:`20` clients seront sélectionnés "
"pour l'évaluation."

#: ../../source/explanation-federated-evaluation.rst:130
#, fuzzy
msgid ""
"``min_available_clients``: an ``int`` that defines the minimum number of "
"clients which need to be connected to the server before a round of "
"federated evaluation can start. If fewer than ``min_available_clients`` "
"are connected to the server, the server will wait until more clients are "
"connected before it continues to sample clients for evaluation."
msgstr ""
":code:`min_available_clients` : un :code:`int` qui définit le nombre "
"minimum de clients qui doivent être connectés au serveur avant qu'un "
"cycle d'évaluation fédérée puisse commencer. Si moins de "
":code:`min_available_clients` sont connectés au serveur, le serveur "
"attendra que d'autres clients soient connectés avant de continuer à "
"échantillonner des clients pour l'évaluation."

#: ../../source/explanation-federated-evaluation.rst:135
#, fuzzy
msgid ""
"``on_evaluate_config_fn``: a function that returns a configuration "
"dictionary which will be sent to the selected clients. The function will "
"be called during each round and provides a convenient way to customize "
"client-side evaluation from the server side, for example, to configure "
"the number of validation steps performed."
msgstr ""
":code:`on_evaluate_config_fn` : une fonction qui renvoie un dictionnaire "
"de configuration qui sera envoyé aux clients sélectionnés. Cette fonction"
" sera appelée à chaque tour et offre un moyen pratique de personnaliser "
"l'évaluation côté client depuis le côté serveur, par exemple pour "
"configurer le nombre d'étapes de validation effectuées."

#: ../../source/explanation-federated-evaluation.rst:177
msgid "Evaluating Local Model Updates During Training"
msgstr "Évaluer les mises à jour du modèle local pendant la formation"

#: ../../source/explanation-federated-evaluation.rst:179
#, fuzzy
msgid ""
"Model parameters can also be evaluated during training. ``Client.fit`` "
"can return arbitrary evaluation results as a dictionary:"
msgstr ""
"Les paramètres du modèle peuvent également être évalués pendant la "
"formation. :code:`Client.fit` peut renvoyer des résultats d'évaluation "
"arbitraires sous forme de dictionnaire :"

#: ../../source/explanation-federated-evaluation.rst:220
msgid "Full Code Example"
msgstr "Exemple de code complet"

#: ../../source/explanation-federated-evaluation.rst:222
#, fuzzy
msgid ""
"For a full code example that uses both centralized and federated "
"evaluation, see the `Advanced TensorFlow Example "
"<https://github.com/adap/flower/tree/main/examples/advanced-tensorflow>`_"
" (the same approach can be applied to workloads implemented in any other "
"framework)."
msgstr ""
"Pour un exemple de code complet qui utilise à la fois l'évaluation "
"centralisée et fédérée, voir l'*Exemple TensorFlow avancé* (la même "
"approche peut être appliquée aux charges de travail mises en œuvre dans "
"n'importe quel autre framework) : "
"https://github.com/adap/flower/tree/main/examples/advanced-tensorflow"

#: ../../source/explanation-flower-architecture.rst:-1
msgid ""
"Explore the federated learning architecture of the Flower framework, "
"featuring multi-run, concurrent execution, and scalable, secure machine "
"learning while preserving data privacy."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:2
msgid "Flower Architecture"
msgstr "Architecture florale"

#: ../../source/explanation-flower-architecture.rst:4
msgid ""
"This page explains the architecture of deployed Flower federated learning"
" system."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:6
msgid ""
"In federated learning (FL), there is typically one server and a number of"
" clients that are connected to the server. This is often called a "
"federation."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:9
msgid ""
"The role of the server is to coordinate the training process. The role of"
" each client is to receive tasks from the server, execute those tasks and"
" return the results back to the server."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:13
msgid "This is sometimes called a hub-and-spoke topology:"
msgstr ""

#: ../../source/explanation-flower-architecture.rst:21
#, fuzzy
msgid "Hub-and-spoke topology in federated learning"
msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#: ../../source/explanation-flower-architecture.rst:21
msgid ""
"Hub-and-spoke topology in federated learning (one server, multiple "
"clients)."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:23
msgid ""
"In a real-world deployment, we typically want to run different projects "
"on such a federation. Each project could use different hyperparameters, "
"different model architectures, different aggregation strategies, or even "
"different machine learning frameworks like PyTorch and TensorFlow."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:28
msgid ""
"This is why, in Flower, both the server side and the client side are "
"split into two parts. One part is long-lived and responsible for "
"communicating across the network, the other part is short-lived and "
"executes task-specific code."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:32
msgid "A Flower `server` consists of **SuperLink** and ``ServerApp``:"
msgstr ""

#: ../../source/explanation-flower-architecture.rst:34
msgid ""
"**SuperLink**: a long-running process that forwards task instructions to "
"clients (SuperNodes) and receives task results back."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:36
msgid ""
"``ServerApp``: a short-lived process with project-spcific code that "
"customizes all server-side aspects of federated learning systems (client "
"selection, client configuration, result aggregation). This is what AI "
"researchers and AI engineers write when they build Flower apps."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:41
msgid "A Flower `client` consists of **SuperNode** and ``ClientApp``:"
msgstr ""

#: ../../source/explanation-flower-architecture.rst:43
msgid ""
"**SuperNode**: a long-running process that connects to the SuperLink, "
"asks for tasks, executes tasks (for example, \"train this model on your "
"local data\") and returns task results back to the SuperLink."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:46
msgid ""
"``ClientApp``: a short-lived process with project-specific code that "
"customizes all client-side aspects of federated learning systems (local "
"model training and evaluation, pre- and post-processing). This is what AI"
" researchers and AI engineers write when they build Flower apps."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:51
msgid ""
"Why SuperNode and SuperLink? Well, in federated learning, the clients are"
" the actual stars of the show. They hold the training data and they run "
"the actual training. This is why Flower decided to name them "
"**SuperNode**. The **SuperLink** is then responsible for acting as the "
"`missing link` between all those SuperNodes."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:62
#, fuzzy
msgid "Basic Flower architecture"
msgstr "Architecture florale"

#: ../../source/explanation-flower-architecture.rst:62
#, fuzzy
msgid "The basic Flower architecture for federated learning."
msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#: ../../source/explanation-flower-architecture.rst:64
msgid ""
"In a Flower app project, users will typically develop the ``ServerApp`` "
"and the ``ClientApp``. All the network communication between `server` and"
" `clients` is taken care of by the SuperLink and SuperNodes."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:70
msgid ""
"For more details, please refer to the |serverapp_link|_ and "
"|clientapp_link|_ documentation."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:73
msgid ""
"With *multi-run*, multiple ``ServerApp``\\s and ``ClientApp``\\s are now "
"capable of running on the same federation consisting of a single long-"
"running SuperLink and multiple long-running SuperNodes. This is sometimes"
" referred to as `multi-tenancy` or `multi-job`."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:78
msgid ""
"As shown in the figure below, two projects, each consisting of a "
"``ServerApp`` and a ``ClientApp``, could share the same SuperLink and "
"SuperNodes."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:87
#, fuzzy
msgid "Multi-tenancy federated learning architecture"
msgstr "Stratégie de moyenne fédérée."

#: ../../source/explanation-flower-architecture.rst:87
#, fuzzy
msgid "Multi-tenancy federated learning architecture with Flower"
msgstr "Étape 2 : Apprentissage fédéré avec Flower"

#: ../../source/explanation-flower-architecture.rst:89
msgid ""
"To illustrate how multi-run works, consider one federated learning "
"training run where a ``ServerApp`` and a ``ClientApp`` are participating "
"in ``[run 1]``. Note that a SuperNode will only run a ``ClientApp`` if it"
" is selected to participate in the training run."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:94
msgid ""
"In ``[run 1]`` below, all the SuperNodes are selected and therefore run "
"their corresponding ``ClientApp``\\s:"
msgstr ""

#: ../../source/explanation-flower-architecture.rst:103
#, fuzzy
msgid "Multi-tenancy federated learning architecture - Run 1"
msgstr "Stratégie de moyenne fédérée."

#: ../../source/explanation-flower-architecture.rst:103
msgid ""
"Run 1 in a multi-run federated learning architecture with Flower. All "
"SuperNodes participate in the training round."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:106
msgid ""
"However, in ``[run 2]``, only the first and third SuperNodes are selected"
" to participate in the training:"
msgstr ""

#: ../../source/explanation-flower-architecture.rst:115
#, fuzzy
msgid "Multi-tenancy federated learning architecture - Run 2"
msgstr "Stratégie de moyenne fédérée."

#: ../../source/explanation-flower-architecture.rst:115
msgid ""
"Run 2 in a multi-run federated learning architecture with Flower. Only "
"the first and third SuperNodes are selected to participate in the "
"training round."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:118
msgid ""
"Therefore, with Flower multi-run, different projects (each consisting of "
"a ``ServerApp`` and ``ClientApp``) can run on different sets of clients."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:123
msgid ""
"This explanation covers the Flower Deployment Engine. An explanation "
"covering the Flower Simulation Engine will follow."
msgstr ""

#: ../../source/explanation-flower-architecture.rst:128
msgid ""
"As we continue to enhance Flower at a rapid pace, we'll periodically "
"update this explainer document. Feel free to share any feedback with us."
msgstr ""

#: ../../source/how-to-aggregate-evaluation-results.rst:2
#, fuzzy
msgid "Aggregate evaluation results"
msgstr "Résultats globaux de l'évaluation."

#: ../../source/how-to-aggregate-evaluation-results.rst:4
msgid ""
"The Flower server does not prescribe a way to aggregate evaluation "
"results, but it enables the user to fully customize result aggregation."
msgstr ""

#: ../../source/how-to-aggregate-evaluation-results.rst:8
msgid "Aggregate Custom Evaluation Results"
msgstr "Agréger les résultats de l'évaluation personnalisée"

#: ../../source/how-to-aggregate-evaluation-results.rst:10
#, fuzzy
msgid ""
"The same ``Strategy``-customization approach can be used to aggregate "
"custom evaluation results coming from individual clients. Clients can "
"return custom metrics to the server by returning a dictionary:"
msgstr ""
"La même approche de personnalisation :code:`Stratégie` peut être utilisée"
" pour agréger les résultats d'évaluation personnalisés provenant de "
"clients individuels. Les clients peuvent renvoyer des mesures "
"personnalisées au serveur en renvoyant un dictionnaire :"

#: ../../source/how-to-aggregate-evaluation-results.rst:38
msgid ""
"The server can then use a customized strategy to aggregate the metrics "
"provided in these dictionaries:"
msgstr ""
"Le serveur peut alors utiliser une stratégie personnalisée pour agréger "
"les mesures fournies dans ces dictionnaires :"

#: ../../source/how-to-authenticate-supernodes.rst:2
msgid "Authenticate SuperNodes"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:4
msgid ""
"Flower has built-in support for authenticated SuperNodes that you can use"
" to verify the identities of each SuperNode connecting to a SuperLink. "
"Flower node authentication works similar to how GitHub SSH authentication"
" works:"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:8
msgid "SuperLink (server) stores a list of known (client) node public keys"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:9
msgid ""
"Using ECDH, both SuperNode and SuperLink independently derive a shared "
"secret"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:10
msgid ""
"Shared secret is used to compute the HMAC value of the message sent from "
"SuperNode to SuperLink as a token"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:12
msgid "SuperLink verifies the token"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:14
#, fuzzy
msgid ""
"We recommend you to check out the complete `code example "
"<https://github.com/adap/flower/tree/main/examples/flower-"
"authentication>`_ demonstrating federated learning with Flower in an "
"authenticated setting."
msgstr ""
"Réfère-toi à l'exemple de code complet "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pandas>`_ "
"pour en savoir plus."

#: ../../source/how-to-authenticate-supernodes.rst:20
msgid ""
"This guide covers a preview feature that might change in future versions "
"of Flower."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:24
msgid ""
"For increased security, node authentication can only be used when "
"encrypted connections (SSL/TLS) are enabled."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:28
msgid "Enable node authentication in ``SuperLink``"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:30
msgid ""
"To enable node authentication, first you need to configure SSL/TLS "
"connections to secure the SuperLink<>SuperNode communication. You can "
"find the complete guide `here <https://flower.ai/docs/framework/how-to-"
"enable-ssl-connections.html>`_. After configuring secure connections, you"
" can enable client authentication in a long-running Flower ``SuperLink``."
" Use the following terminal command to start a Flower ``SuperNode`` that "
"has both secure connections and node authentication enabled:"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:47
msgid "Let's break down the authentication flags:"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:49
msgid ""
"The first flag ``--auth-list-public-keys`` expects a path to a CSV file "
"storing all known node public keys. You need to store all known node "
"public keys that are allowed to participate in a federation in one CSV "
"file (``.csv``)."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:53
msgid ""
"A valid CSV file storing known node public keys should list the keys in "
"OpenSSH format, separated by commas and without any comments. For an "
"example, refer to our code sample, which contains a CSV file with two "
"known node public keys."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:57
msgid ""
"The second and third flags ``--auth-superlink-private-key`` and ``--auth-"
"superlink-public-key`` expect paths to the server's private and public "
"keys. For development purposes, you can generate a private and public key"
" pair using ``ssh-keygen -t ecdsa -b 384``."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:64
msgid ""
"In Flower 1.9, there is no support for dynamically removing, editing, or "
"adding known node public keys to the SuperLink. To change the set of "
"known nodes, you need to shut the server down, edit the CSV file, and "
"start the server again. Support for dynamically changing the set of known"
" nodes is on the roadmap to be released in Flower 1.10 (ETA: June)."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:71
msgid "Enable node authentication in ``SuperNode``"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:73
msgid ""
"Similar to the long-running Flower server (``SuperLink``), you can easily"
" enable node authentication in the long-running Flower client "
"(``SuperNode``). Use the following terminal command to start an "
"authenticated ``SuperNode``:"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:85
msgid ""
"The ``--auth-supernode-private-key`` flag expects a path to the node's "
"private key file and the ``--auth-supernode-public-key`` flag expects a "
"path to the node's public key file. For development purposes, you can "
"generate a private and public key pair using ``ssh-keygen -t ecdsa -b "
"384``."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:91
msgid "Security notice"
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:93
msgid ""
"The system's security relies on the credentials of the SuperLink and each"
" SuperNode. Therefore, it is imperative to safeguard and safely store the"
" credentials to avoid security risks such as Public Key Infrastructure "
"(PKI) impersonation attacks. The node authentication mechanism also "
"involves human interaction, so please ensure that all of the "
"communication is done in a secure manner, using trusted communication "
"methods."
msgstr ""

#: ../../source/how-to-authenticate-supernodes.rst:100
#: ../../source/how-to-enable-tls-connections.rst:108
#: ../../source/how-to-use-built-in-mods.rst:95
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:287
msgid "Conclusion"
msgstr "Conclusion"

#: ../../source/how-to-authenticate-supernodes.rst:102
msgid ""
"You should now have learned how to start a long-running Flower server "
"(``SuperLink``) and client (``SuperNode``) with node authentication "
"enabled. You should also know the significance of the private key and "
"store it safely to minimize security risks."
msgstr ""

#: ../../source/how-to-configure-clients.rst:2
#, fuzzy
msgid "Configure Clients"
msgstr "Configurer les clients"

#: ../../source/how-to-configure-clients.rst:4
msgid ""
"Flower provides the ability to send configuration values to clients, "
"allowing server-side control over client behavior. This feature enables "
"flexible and dynamic adjustment of client-side hyperparameters, improving"
" collaboration and experimentation."
msgstr ""

#: ../../source/how-to-configure-clients.rst:9
msgid "Configuration values"
msgstr "Valeurs de configuration"

#: ../../source/how-to-configure-clients.rst:11
msgid ""
"``FitConfig`` and ``EvaluateConfig`` are dictionaries containing "
"configuration values that the server sends to clients during federated "
"learning rounds. These values must be of type ``Scalar``, which includes "
"``bool``, ``bytes``, ``float``, ``int``, or ``str`` (or equivalent types "
"in different languages). Scalar is the value type directly supported by "
"Flower for these configurations."
msgstr ""

#: ../../source/how-to-configure-clients.rst:17
msgid "For example, a ``FitConfig`` dictionary might look like this:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:28
#, fuzzy
msgid ""
"Flower serializes these configuration dictionaries (or *config dicts* for"
" short) to their ProtoBuf representation, transports them to the client "
"using gRPC, and then deserializes them back to Python dictionaries."
msgstr ""
"Flower sérialise ces dictionnaires de configuration (ou *config dict* en "
"abrégé) dans leur représentation ProtoBuf, les transporte vers le client "
"à l'aide de gRPC, puis les désérialise à nouveau en dictionnaires Python."

#: ../../source/how-to-configure-clients.rst:34
#, fuzzy
msgid ""
"Currently, there is no support for directly sending collection types "
"(e.g., ``Set``, ``List``, ``Map``) as values in configuration "
"dictionaries. To send collections, convert them to a supported type "
"(e.g., JSON string) and decode on the client side."
msgstr ""
"Actuellement, il n'est pas possible d'envoyer directement des types de "
"collections (par exemple, ``Set``, ``List``, ``Map``) en tant que valeurs"
" dans les dictionnaires de configuration. Il existe plusieurs solutions "
"pour envoyer des collections en tant que valeurs en les convertissant en "
"l'un des types de valeurs pris en charge (et en les reconvertissant du "
"côté client)."

#: ../../source/how-to-configure-clients.rst:38
#, fuzzy
msgid "Example:"
msgstr "Exemples de PyTorch"

#: ../../source/how-to-configure-clients.rst:51
#, fuzzy
msgid "Configuration through Built-in Strategies"
msgstr "Configuration par le biais de stratégies intégrées"

#: ../../source/how-to-configure-clients.rst:53
msgid ""
"Flower provides configuration options to control client behavior "
"dynamically through ``FitConfig`` and ``EvaluateConfig``. These "
"configurations allow server-side control over client-side parameters such"
" as batch size, number of local epochs, learning rate, and evaluation "
"settings, improving collaboration and experimentation."
msgstr ""

#: ../../source/how-to-configure-clients.rst:59
#, fuzzy
msgid "``FitConfig`` and ``EvaluateConfig``"
msgstr "``eval_fn`` --> ``evaluate_fn``"

#: ../../source/how-to-configure-clients.rst:61
msgid ""
"``FitConfig`` and ``EvaluateConfig`` are dictionaries containing "
"configuration values that the server sends to clients during federated "
"learning rounds. These dictionaries enable the server to adjust client-"
"side hyperparameters and monitor progress effectively."
msgstr ""

#: ../../source/how-to-configure-clients.rst:67
#, fuzzy
msgid "``FitConfig``"
msgstr "Configurer les clients"

#: ../../source/how-to-configure-clients.rst:69
msgid ""
"``FitConfig`` specifies the hyperparameters for training rounds, such as "
"the batch size, number of local epochs, and other parameters that "
"influence training."
msgstr ""

#: ../../source/how-to-configure-clients.rst:72
msgid "For example, a ``fit_config`` callback might look like this:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:90
msgid ""
"You can then pass this ``fit_config`` callback to a built-in strategy "
"such as ``FedAvg``:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:101
msgid ""
"On the client side, the configuration is received in the ``fit`` method, "
"where it can be read and used:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:124
#, fuzzy
msgid "``EvaluateConfig``"
msgstr ":code:`évaluer`"

#: ../../source/how-to-configure-clients.rst:126
msgid ""
"``EvaluateConfig`` specifies hyperparameters for the evaluation process, "
"such as the batch size, evaluation frequency, or metrics to compute "
"during evaluation."
msgstr ""

#: ../../source/how-to-configure-clients.rst:129
msgid "For example, an ``evaluate_config`` callback might look like this:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:143
msgid ""
"You can pass this ``evaluate_config`` callback to a built-in strategy "
"like ``FedAvg``:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:151
msgid ""
"On the client side, the configuration is received in the ``evaluate`` "
"method, where it can be used during the evaluation process:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:175
msgid "Example: Sending Training Configurations"
msgstr ""

#: ../../source/how-to-configure-clients.rst:177
#, fuzzy
msgid ""
"Imagine we want to send (a) the batch size, (b) the current global round,"
" and (c) the number of local epochs. Our configuration function could "
"look like this:"
msgstr ""
"Commençons par un exemple simple. Imaginons que nous voulions envoyer (a)"
" la taille du lot que le client doit utiliser, (b) le cycle global actuel"
" de l'apprentissage fédéré et (c) le nombre d'époques à former du côté "
"client. Notre fonction de configuration pourrait ressembler à ceci :"

#: ../../source/how-to-configure-clients.rst:190
msgid ""
"To use this function with a built-in strategy like ``FedAvg``, pass it to"
" the ``FedAvg`` constructor (typically in your ``server_fn``):"
msgstr ""

#: ../../source/how-to-configure-clients.rst:211
#, fuzzy
msgid "Client-Side Configuration"
msgstr "Logique côté client"

#: ../../source/how-to-configure-clients.rst:213
msgid ""
"On the client side, configurations are received as input to the ``fit`` "
"and ``evaluate`` methods. For example:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:230
msgid "Dynamic Configurations per Round"
msgstr ""

#: ../../source/how-to-configure-clients.rst:232
msgid ""
"Configuration functions are called at the beginning of every round. This "
"allows for dynamic adjustments based on progress. For example, you can "
"increase the number of local epochs in later rounds:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:247
msgid "Customizing Client Configurations"
msgstr ""

#: ../../source/how-to-configure-clients.rst:249
msgid ""
"In some cases, it may be necessary to send different configurations to "
"individual clients. To achieve this, you can create a custom strategy by "
"extending a built-in one, such as ``FedAvg``:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:254
msgid "Example: Client-Specific Configuration"
msgstr ""

#: ../../source/how-to-configure-clients.rst:273
msgid "Next, use this custom strategy as usual:"
msgstr ""

#: ../../source/how-to-configure-clients.rst:287
msgid "Summary of Enhancements"
msgstr ""

#: ../../source/how-to-configure-clients.rst:289
msgid "**Dynamic Configurations**: Enables per-round adjustments via functions."
msgstr ""

#: ../../source/how-to-configure-clients.rst:290
msgid "**Advanced Customization**: Supports client-specific strategies."
msgstr ""

#: ../../source/how-to-configure-clients.rst:291
msgid ""
"**Client-Side Integration**: Configurations accessible in ``fit`` and "
"``evaluate``."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:2
#, fuzzy
msgid "Design stateful ClientApps"
msgstr "client"

#: ../../source/how-to-design-stateful-clients.rst:20
msgid ""
"By design, ClientApp_ objects are stateless. This means that the "
"``ClientApp`` object is recreated each time a new ``Message`` is to be "
"processed. This behaviour is identical with Flower's Simulation Engine "
"and Deployment Engine. For the former, it allows us to simulate the "
"running of a large number of nodes on a single machine or across multiple"
" machines. For the latter, it enables each ``SuperNode`` to be part of "
"multiple runs, each running a different ``ClientApp``."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:27
msgid ""
"When a ``ClientApp`` is executed it receives a Context_. This context is "
"unique for each ``ClientApp``, meaning that subsequent executions of the "
"same ``ClientApp`` from the same node will receive the same ``Context`` "
"object. In the ``Context``, the ``.state`` attribute can be used to store"
" information that you would like the ``ClientApp`` to have access to for "
"the duration of the run. This could be anything from intermediate results"
" such as the history of training losses (e.g. as a list of `float` values"
" with a new entry appended each time the ``ClientApp`` is executed), "
"certain parts of the model that should persist at the client side, or "
"some other arbitrary Python objects. These items would need to be "
"serialized before saving them into the context."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:38
msgid "Saving metrics to the context"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:40
msgid ""
"This section will demonstrate how to save metrics such as accuracy/loss "
"values to the Context_ so they can be used in subsequent executions of "
"the ``ClientApp``. If your ``ClientApp`` makes use of NumPyClient_ then "
"entire object is also re-created for each call to methods like ``fit()`` "
"or ``evaluate()``."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:45
msgid ""
"Let's begin with a simple setting in which ``ClientApp`` is defined as "
"follows. The ``evaluate()`` method only generates a random number and "
"prints it."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:50
msgid ""
"You can create a PyTorch project with ready-to-use ``ClientApp`` and "
"other components by running ``flwr new``."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:81
msgid ""
"Let's say we want to save that randomly generated integer and append it "
"to a list that persists in the context. To do that, you'll need to do two"
" key things:"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:84
msgid "Make the ``context.state`` reachable withing your client class"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:85
msgid ""
"Initialise the appropiate record type (in this example we use "
"ConfigsRecord_) and save/read your entry when required."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:123
msgid ""
"If you run the app, you'll see an output similar to the one below. See "
"how after each round the `n_val` entry in the context gets one additional"
" integer ? Note that the order in which the `ClientApp` logs these "
"messages might differ slightly between rounds."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:146
msgid "Saving model parameters to the context"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:148
msgid ""
"Using ConfigsRecord_ or MetricsRecord_ to save \"simple\" components is "
"fine (e.g., float, integer, boolean, string, bytes, and lists of these "
"types. Note that MetricsRecord_ only supports float, integer, and lists "
"of these types) Flower has a specific type of record, a "
"ParametersRecord_, for storing model parameters or more generally data "
"arrays."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:153
msgid ""
"Let's see a couple of examples of how to save NumPy arrays first and then"
" how to save parameters of PyTorch and TensorFlow models."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:158
msgid ""
"The examples below omit the definition of a ``ClientApp`` to keep the "
"code blocks concise. To make use of ``ParametersRecord`` objects in your "
"``ClientApp`` you can follow the same principles as outlined earlier."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:163
#, fuzzy
msgid "Saving NumPy arrays to the context"
msgstr "Sérialise le tableau numérique NumPy en octets."

#: ../../source/how-to-design-stateful-clients.rst:165
msgid ""
"Elements stored in a `ParametersRecord` are of type Array_, which is a "
"data structure that holds ``bytes`` and metadata that can be used for "
"deserialization. Let's see how to create an ``Array`` from a NumPy array "
"and insert it into a ``ParametersRecord``. Here we will make use of the "
"built-in serialization and deserialization mechanisms in Flower, namely "
"the ``flwr.common.array_from_numpy`` function and the `numpy()` method of"
" an Array_ object."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:174
msgid ""
"Array_ objects carry bytes as their main payload and additional metadata "
"to use for deserialization. You can implement your own "
"serialization/deserialization if the provided ``array_from_numpy`` "
"doesn't fit your usecase."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:178
msgid ""
"Let's see how to use those functions to store a NumPy array into the "
"context."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:206
msgid ""
"To extract the data in a ``ParametersRecord``, you just need to "
"deserialize the array if interest. For example, following the example "
"above:"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:223
msgid "Saving PyTorch parameters to the context"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:225
msgid ""
"Following the NumPy example above, to save parameters of a PyTorch model "
"a straightforward way of doing so is to transform the parameters into "
"their NumPy representation and then proceed as shown earlier. Below is a "
"simple self-contained example for how to do this."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:263
msgid ""
"Let say now you want to apply the parameters stored in your context to a "
"new instance of the model (as it happens each time a ``ClientApp`` is "
"executed). You will need to:"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:266
msgid "Deserialize each element in your specific ``ParametersRecord``"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:267
msgid "Construct a ``state_dict`` and load it"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:287
msgid ""
"And that's it! Recall that even though this example shows how to store "
"the entire ``state_dict`` in a ``ParametersRecord``, you can just save "
"part of it. The process would be identical, but you might need to adjust "
"how it is loaded into an existing model using PyTorch APIs."
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:293
msgid "Saving Tensorflow/Keras parameters to the context"
msgstr ""

#: ../../source/how-to-design-stateful-clients.rst:295
msgid ""
"Follow the same steps as done above but replace the ``state_dict`` logic "
"with simply `get_weights() "
"<https://www.tensorflow.org/api_docs/python/tf/keras/Layer#get_weights>`_"
" to convert the model parameters to a list of NumPy arrays that can then "
"be serialized into an ``Array``. Then, after deserialization, use "
"`set_weights() "
"<https://www.tensorflow.org/api_docs/python/tf/keras/Layer#set_weights>`_"
" to apply the new parameters to a model."
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:2
#, fuzzy
msgid "Enable TLS connections"
msgstr "Collecte centralisée des données"

#: ../../source/how-to-enable-tls-connections.rst:4
#, fuzzy
msgid ""
"This guide describes how to a TLS-enabled secure Flower server "
"(``SuperLink``) can be started and how a Flower client (``SuperNode``) "
"can establish a secure connections to it."
msgstr ""
"Ce guide décrit comment démarrer un serveur Flower sécurisé par SSL et "
"comment un client Flower peut établir une connexion sécurisée avec lui."

#: ../../source/how-to-enable-tls-connections.rst:8
#, fuzzy
msgid ""
"A complete code example demonstrating a secure connection can be found "
"`here <https://github.com/adap/flower/tree/main/examples/advanced-"
"tensorflow>`_."
msgstr ""
"Un exemple de code complet démontrant une connexion sécurisée peut être "
"trouvé ici <https://github.com/adap/flower/tree/main/examples/advanced-"
"tensorflow>`_."

#: ../../source/how-to-enable-tls-connections.rst:11
#, fuzzy
msgid ""
"The code example comes with a ``README.md`` file which explains how to "
"start it. Although it is already TLS-enabled, it might be less "
"descriptive on how it does so. Stick to this guide for a deeper "
"introduction to the topic."
msgstr ""
"L'exemple de code est accompagné d'un fichier README.md qui t'expliquera "
"comment le démarrer. Bien qu'il soit déjà activé par SSL, il peut être "
"moins descriptif sur la façon de procéder. Tiens-toi en à ce guide pour "
"une introduction plus approfondie sur le sujet."

#: ../../source/how-to-enable-tls-connections.rst:16
msgid "Certificates"
msgstr "Certificats"

#: ../../source/how-to-enable-tls-connections.rst:18
#, fuzzy
msgid ""
"Using TLS-enabled connections requires certificates to be passed to the "
"server and client. For the purpose of this guide we are going to generate"
" self-signed certificates. As this can become quite complex we are going "
"to ask you to run the script in ``examples/advanced-"
"tensorflow/certificates/generate.sh`` with the following command "
"sequence:"
msgstr ""
"L'utilisation de connexions compatibles avec le protocole SSL nécessite "
"que des certificats soient transmis au serveur et au client. Pour les "
"besoins de ce guide, nous allons générer des certificats auto-signés. "
"Comme cela peut devenir assez complexe, nous allons te demander "
"d'exécuter le script dans :code:`examples/advanced-"
"tensorflow/certificates/generate.sh`"

#: ../../source/how-to-enable-tls-connections.rst:29
#, fuzzy
msgid ""
"This will generate the certificates in ``examples/advanced-"
"tensorflow/.cache/certificates``."
msgstr ""
"Cela générera les certificats dans :code:`examples/advanced-"
"tensorflow/.cache/certificates`."

#: ../../source/how-to-enable-tls-connections.rst:32
#, fuzzy
msgid ""
"The approach for generating TLS certificates in the context of this "
"example can serve as an inspiration and starting point, but it should not"
" be used as a reference for production environments. Please refer to "
"other sources regarding the issue of correctly generating certificates "
"for production environments. For non-critical prototyping or research "
"projects, it might be sufficient to use the self-signed certificates "
"generated using the scripts mentioned in this guide."
msgstr ""
"L'approche de la génération des certificats SSL dans cet exemple peut "
"servir d'inspiration et de point de départ, mais ne doit pas être "
"considérée comme complète pour les environnements de production."

#: ../../source/how-to-enable-tls-connections.rst:40
#, fuzzy
msgid "Server (SuperLink)"
msgstr "flower-superlink"

#: ../../source/how-to-enable-tls-connections.rst:42
#, fuzzy
msgid ""
"Navigate to the ``examples/advanced-tensorflow`` folder (`here "
"<https://github.com/adap/flower/tree/main/examples/advanced-"
"tensorflow>`_) and use the following terminal command to start a server "
"(SuperLink) that uses the previously generated certificates:"
msgstr ""
"Nous allons maintenant montrer comment écrire un client qui utilise les "
"scripts générés précédemment :"

#: ../../source/how-to-enable-tls-connections.rst:54
msgid ""
"When providing certificates, the server expects a tuple of three "
"certificates paths: CA certificate, server certificate and server private"
" key."
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:58
#, fuzzy
msgid "Clients (SuperNode)"
msgstr "Codes d'état du client."

#: ../../source/how-to-enable-tls-connections.rst:60
#, fuzzy
msgid ""
"Use the following terminal command to start a client (SuperNode) that "
"uses the previously generated certificates:"
msgstr ""
"Nous allons maintenant montrer comment écrire un client qui utilise les "
"scripts générés précédemment :"

#: ../../source/how-to-enable-tls-connections.rst:71
#, fuzzy
msgid ""
"When setting ``root_certificates``, the client expects a file path to "
"PEM-encoded root certificates."
msgstr ""
"En définissant :code:`root_certificates`, le client s'attend à recevoir "
"les certificats racine codés en PEM sous forme de chaîne d'octets. Nous "
"utilisons à nouveau :code:`Path` pour simplifier la lecture de ces "
"certificats sous forme de chaînes d'octets."

#: ../../source/how-to-enable-tls-connections.rst:74
#, fuzzy
msgid ""
"In another terminal, start a second SuperNode that uses the same "
"certificates:"
msgstr ""
"Nous allons maintenant montrer comment écrire un client qui utilise les "
"scripts générés précédemment :"

#: ../../source/how-to-enable-tls-connections.rst:84
msgid ""
"Note that in the second SuperNode, if you run both on the same machine, "
"you must specify a different port for the ``ClientAppIO`` API address to "
"avoid clashing with the first SuperNode."
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:89
msgid "Executing ``flwr run`` with TLS"
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:91
msgid ""
"The root certificates used for executing ``flwr run`` is specified in the"
" ``pyproject.toml`` of your app."
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:100
msgid ""
"Note that the path to the ``root-certificates`` is relative to the root "
"of the project. Now, you can run the example by executing the following:"
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:110
#, fuzzy
msgid ""
"You should now have learned how to generate self-signed certificates "
"using the given script, start an TLS-enabled server and have two clients "
"establish secure connections to it. You should also have learned how to "
"run your Flower project using ``flwr run`` with TLS enabled."
msgstr ""
"Tu devrais maintenant avoir appris à générer des certificats auto-signés "
"à l'aide du script donné, à démarrer un serveur compatible SSL et à "
"demander à un client d'établir une connexion sécurisée avec lui."

#: ../../source/how-to-enable-tls-connections.rst:117
msgid ""
"For running a Docker setup with TLS enabled, please refer to :doc:`docker"
"/enable-tls`."
msgstr ""

#: ../../source/how-to-enable-tls-connections.rst:121
#, fuzzy
msgid "Additional resources"
msgstr "Ressources supplémentaires"

#: ../../source/how-to-enable-tls-connections.rst:123
msgid ""
"These additional sources might be relevant if you would like to dive "
"deeper into the topic of certificates:"
msgstr ""
"Ces sources supplémentaires peuvent être pertinentes si tu souhaites "
"approfondir le sujet des certificats :"

#: ../../source/how-to-enable-tls-connections.rst:126
msgid "`Let's Encrypt <https://letsencrypt.org/docs/>`_"
msgstr "`Let's Encrypt <https://letsencrypt.org/docs/>`_"

#: ../../source/how-to-enable-tls-connections.rst:127
msgid "`certbot <https://certbot.eff.org/>`_"
msgstr "`certbot <https://certbot.eff.org/>`_"

#: ../../source/how-to-implement-fedbn.rst:2
#, fuzzy
msgid "Implement FedBN"
msgstr "Mettre en place des stratégies"

#: ../../source/how-to-implement-fedbn.rst:4
#, fuzzy
msgid ""
"This tutorial will show you how to use Flower to build a federated "
"version of an existing machine learning workload with `FedBN "
"<https://github.com/med-air/FedBN>`_, a federated training method "
"designed for non-IID data. We are using PyTorch to train a Convolutional "
"Neural Network (with Batch Normalization layers) on the CIFAR-10 dataset."
" When applying FedBN, only minor changes are needed compared to "
":doc:`Quickstart PyTorch <tutorial-quickstart-pytorch>`."
msgstr ""
"Ce tutoriel te montrera comment utiliser Flower pour construire une "
"version fédérée d'une charge de travail d'apprentissage automatique "
"existante avec `FedBN <https://github.com/med-air/FedBN>`_, une stratégie"
" de formation fédérée conçue pour les données non-identifiées. Nous "
"utilisons PyTorch pour former un réseau neuronal convolutif (avec des "
"couches de normalisation par lots) sur l'ensemble de données CIFAR-10. "
"Lors de l'application de FedBN, seules quelques modifications sont "
"nécessaires par rapport à `Exemple : PyTorch - De la centralisation à la "
"fédération <https://flower.ai/docs/example-pytorch-from-centralized-to-"
"federated.html>`_."

#: ../../source/how-to-implement-fedbn.rst:12
#, fuzzy
msgid "Model"
msgstr "Entraîne le modèle"

#: ../../source/how-to-implement-fedbn.rst:14
msgid ""
"A full introduction to federated learning with PyTorch and Flower can be "
"found in :doc:`Quickstart PyTorch <tutorial-quickstart-pytorch>`. This "
"how-to guide varies only a few details in ``task.py``. FedBN requires a "
"model architecture (defined in class ``Net()``) that uses Batch "
"Normalization layers:"
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:45
msgid ""
"Try editing the model architecture, then run the project to ensure "
"everything still works:"
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:52
msgid ""
"So far this should all look fairly familiar if you've used Flower with "
"PyTorch before."
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:55
#, fuzzy
msgid "FedBN"
msgstr "DP-FedAvg"

#: ../../source/how-to-implement-fedbn.rst:57
msgid ""
"To adopt FedBN, only the ``get_parameters`` and ``set_parameters`` "
"functions in ``task.py`` need to be revised. FedBN only changes the "
"client-side by excluding batch normalization parameters from being "
"exchanged with the server."
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:61
#, fuzzy
msgid ""
"We revise the *client* logic by changing ``get_parameters`` and "
"``set_parameters`` in ``task.py``. The batch normalization parameters are"
" excluded from model parameter list when sending to or receiving from the"
" server:"
msgstr ""
"Enfin, nous allons réviser notre logique *client* en modifiant "
":code:`get_parameters` et :code:`set_parameters` dans :code:`client.py`, "
"nous allons exclure les paramètres de normalisation des lots de la liste "
"des paramètres du modèle lors de l'envoi ou de la réception depuis le "
"serveur."

#: ../../source/how-to-implement-fedbn.rst:90
msgid "To test the new appraoch, run the project again:"
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:96
msgid ""
"Your PyTorch project now runs federated learning with FedBN. "
"Congratulations!"
msgstr ""

#: ../../source/how-to-implement-fedbn.rst:99
msgid "Next Steps"
msgstr "Prochaines étapes"

#: ../../source/how-to-implement-fedbn.rst:101
#, fuzzy
msgid ""
"The example is of course over-simplified since all clients load the exact"
" same dataset. This isn't realistic. You now have the tools to explore "
"this topic further. How about using different subsets of CIFAR-10 on each"
" client? How about adding more clients?"
msgstr ""
"Le code source complet de cet exemple se trouve ici "
"<https://github.com/adap/flower/blob/main/examples/pytorch-from-"
"centralized-to-federated>`_. Notre exemple est bien sûr un peu trop "
"simplifié parce que les deux clients chargent exactement le même ensemble"
" de données, ce qui n'est pas réaliste. Tu es maintenant prêt à "
"approfondir ce sujet. Pourquoi ne pas utiliser différents sous-ensembles "
"de CIFAR-10 sur chaque client ? Pourquoi ne pas ajouter d'autres clients "
"?"

#: ../../source/how-to-implement-strategies.rst:2
#, fuzzy
msgid "Implement strategies"
msgstr "Mettre en place des stratégies"

#: ../../source/how-to-implement-strategies.rst:4
msgid ""
"The strategy abstraction enables implementation of fully custom "
"strategies. A strategy is basically the federated learning algorithm that"
" runs on the server. Strategies decide how to sample clients, how to "
"configure clients for training, how to aggregate updates, and how to "
"evaluate models. Flower provides a few built-in strategies which are "
"based on the same API described below."
msgstr ""
"L'abstraction de la stratégie permet de mettre en œuvre des stratégies "
"entièrement personnalisées. Une stratégie est essentiellement "
"l'algorithme d'apprentissage fédéré qui s'exécute sur le serveur. Les "
"stratégies décident comment échantillonner les clients, comment "
"configurer les clients pour la formation, comment agréger les mises à "
"jour et comment évaluer les modèles. Flower fournit quelques stratégies "
"intégrées qui sont basées sur la même API que celle décrite ci-dessous."

#: ../../source/how-to-implement-strategies.rst:11
#, fuzzy
msgid "The ``Strategy`` abstraction"
msgstr "L'abstraction :code:`Stratégie`"

#: ../../source/how-to-implement-strategies.rst:13
#, fuzzy
msgid ""
"All strategy implementation are derived from the abstract base class "
"``flwr.server.strategy.Strategy``, both built-in implementations and "
"third party implementations. This means that custom strategy "
"implementations have the exact same capabilities at their disposal as "
"built-in ones."
msgstr ""
"Toutes les implémentations de stratégies sont dérivées de la classe de "
"base abstraite :code:`flwr.server.strategy.Strategy`, qu'il s'agisse "
"d'implémentations intégrées ou d'implémentations tierces. Cela signifie "
"que les implémentations de stratégies personnalisées ont exactement les "
"mêmes capacités à leur disposition que les implémentations intégrées."

#: ../../source/how-to-implement-strategies.rst:18
msgid ""
"The strategy abstraction defines a few abstract methods that need to be "
"implemented:"
msgstr ""
"L'abstraction de la stratégie définit quelques méthodes abstraites qui "
"doivent être mises en œuvre :"

#: ../../source/how-to-implement-strategies.rst:67
#, fuzzy
msgid ""
"Creating a new strategy means implementing a new ``class`` (derived from "
"the abstract base class ``Strategy``) that implements for the previously "
"shown abstract methods:"
msgstr ""
"La création d'une nouvelle stratégie implique la mise en œuvre d'une "
"nouvelle :code:`classe` (dérivée de la classe de base abstraite "
":code:`Stratégie`) qui met en œuvre les méthodes abstraites présentées "
"précédemment :"

#: ../../source/how-to-implement-strategies.rst:97
msgid "The Flower server calls these methods in the following order:"
msgstr "Le serveur Flower appelle ces méthodes dans l'ordre suivant :"

#: ../../source/how-to-implement-strategies.rst:174
msgid "The following sections describe each of those methods in more detail."
msgstr "Les sections suivantes décrivent chacune de ces méthodes plus en détail."

#: ../../source/how-to-implement-strategies.rst:177
#, fuzzy
msgid "The ``initialize_parameters`` method"
msgstr "La méthode :code:`initialize_parameters` (initialisation des paramètres)"

#: ../../source/how-to-implement-strategies.rst:179
#, fuzzy
msgid ""
"``initialize_parameters`` is called only once, at the very beginning of "
"an execution. It is responsible for providing the initial global model "
"parameters in a serialized form (i.e., as a ``Parameters`` object)."
msgstr ""
":code:`initialize_parameters` n'est appelé qu'une seule fois, au tout "
"début d'une exécution. Il est chargé de fournir les paramètres initiaux "
"du modèle global sous une forme sérialisée (c'est-à-dire sous la forme "
"d'un objet :code:`Parameters`)."

#: ../../source/how-to-implement-strategies.rst:183
#, fuzzy
msgid ""
"Built-in strategies return user-provided initial parameters. The "
"following example shows how initial parameters can be passed to "
"``FedAvg``:"
msgstr ""
"Les stratégies intégrées renvoient les paramètres initiaux fournis par "
"l'utilisateur. L'exemple suivant montre comment les paramètres initiaux "
"peuvent être transmis à :code:`FedAvg` :"

#: ../../source/how-to-implement-strategies.rst:209
#, fuzzy
msgid ""
"The Flower server will call ``initialize_parameters``, which either "
"returns the parameters that were passed to ``initial_parameters``, or "
"``None``. If no parameters are returned from ``initialize_parameters`` "
"(i.e., ``None``), the server will randomly select one client and ask it "
"to provide its parameters. This is a convenience feature and not "
"recommended in practice, but it can be useful for prototyping. In "
"practice, it is recommended to always use server-side parameter "
"initialization."
msgstr ""
"Le serveur Flower appelle :code:`initialize_parameters`, qui renvoie les "
"paramètres passés à :code:`initial_parameters`, ou :code:`None`. Si aucun"
" paramètre n'est renvoyé par :code:`initialize_parameters` (c'est-à-dire "
":code:`None`), le serveur sélectionne au hasard un client et lui demande "
"de fournir ses paramètres. Il s'agit d'une fonction de commodité qui "
"n'est pas recommandée dans la pratique, mais qui peut être utile pour le "
"prototypage. Dans la pratique, il est recommandé de toujours utiliser "
"l'initialisation des paramètres du côté du serveur."

#: ../../source/how-to-implement-strategies.rst:218
msgid ""
"Server-side parameter initialization is a powerful mechanism. It can be "
"used, for example, to resume training from a previously saved checkpoint."
" It is also the fundamental capability needed to implement hybrid "
"approaches, for example, to fine-tune a pre-trained model using federated"
" learning."
msgstr ""
"L'initialisation des paramètres côté serveur est un mécanisme puissant. "
"Elle peut être utilisée, par exemple, pour reprendre l'entraînement à "
"partir d'un point de contrôle précédemment sauvegardé. C'est également la"
" capacité fondamentale nécessaire pour mettre en œuvre des approches "
"hybrides, par exemple, pour affiner un modèle pré-entraîné à l'aide de "
"l'apprentissage fédéré."

#: ../../source/how-to-implement-strategies.rst:224
#, fuzzy
msgid "The ``configure_fit`` method"
msgstr "La méthode :code:`configure_fit`"

#: ../../source/how-to-implement-strategies.rst:226
#, fuzzy
msgid ""
"``configure_fit`` is responsible for configuring the upcoming round of "
"training. What does *configure* mean in this context? Configuring a round"
" means selecting clients and deciding what instructions to send to these "
"clients. The signature of ``configure_fit`` makes this clear:"
msgstr ""
":code:`configure_fit` est chargé de configurer le prochain tour de "
"formation. Que signifie *configurer* dans ce contexte ? Configurer un "
"tour signifie sélectionner des clients et décider des instructions à leur"
" envoyer. La signature de :code:`configure_fit` l'indique clairement :"

#: ../../source/how-to-implement-strategies.rst:239
#, fuzzy
msgid ""
"The return value is a list of tuples, each representing the instructions "
"that will be sent to a particular client. Strategy implementations "
"usually perform the following steps in ``configure_fit``:"
msgstr ""
"La valeur de retour est une liste de tuples, chacun représentant les "
"instructions qui seront envoyées à un client particulier. Les "
"implémentations de stratégies effectuent généralement les étapes "
"suivantes dans :code:`configure_fit` :"

#: ../../source/how-to-implement-strategies.rst:243
#: ../../source/how-to-implement-strategies.rst:307
#, fuzzy
msgid ""
"Use the ``client_manager`` to randomly sample all (or a subset of) "
"available clients (each represented as a ``ClientProxy`` object)"
msgstr ""
"Utilise le :code:`client_manager` pour échantillonner au hasard tous les "
"clients disponibles (ou un sous-ensemble d'entre eux) (chacun représenté "
"par un objet :code:`ClientProxy`)"

#: ../../source/how-to-implement-strategies.rst:245
#, fuzzy
msgid ""
"Pair each ``ClientProxy`` with the same ``FitIns`` holding the current "
"global model ``parameters`` and ``config`` dict"
msgstr ""
"Associe chaque :code:`ClientProxy` au même :code:`FitIns` contenant le "
"modèle global actuel :code:`parameters` et :code:`config` dict"

#: ../../source/how-to-implement-strategies.rst:248
#, fuzzy
msgid ""
"More sophisticated implementations can use ``configure_fit`` to implement"
" custom client selection logic. A client will only participate in a round"
" if the corresponding ``ClientProxy`` is included in the list returned "
"from ``configure_fit``."
msgstr ""
"Les implémentations plus sophistiquées peuvent utiliser "
":code:`configure_fit` pour mettre en œuvre une logique de sélection des "
"clients personnalisée. Un client ne participera à un tour que si le "
":code:`ClientProxy` correspondant est inclus dans la liste renvoyée par "
":code:`configure_fit`."

#: ../../source/how-to-implement-strategies.rst:254
#, fuzzy
msgid ""
"The structure of this return value provides a lot of flexibility to the "
"user. Since instructions are defined on a per-client basis, different "
"instructions can be sent to each client. This enables custom strategies "
"to train, for example, different models on different clients, or use "
"different hyperparameters on different clients (via the ``config`` dict)."
msgstr ""
"La structure de cette valeur de retour offre beaucoup de souplesse à "
"l'utilisateur. Comme les instructions sont définies par client, des "
"instructions différentes peuvent être envoyées à chaque client, ce qui "
"permet d'élaborer des stratégies personnalisées pour former, par exemple,"
" différents modèles sur différents clients, ou utiliser différents "
"hyperparamètres sur différents clients (via le dict :code:`config`)."

#: ../../source/how-to-implement-strategies.rst:261
#, fuzzy
msgid "The ``aggregate_fit`` method"
msgstr "La méthode :code:`aggregate_fit` (agrégation)"

#: ../../source/how-to-implement-strategies.rst:263
#, fuzzy
msgid ""
"``aggregate_fit`` is responsible for aggregating the results returned by "
"the clients that were selected and asked to train in ``configure_fit``."
msgstr ""
":code:`aggregate_fit` est chargé d'agréger les résultats renvoyés par les"
" clients qui ont été sélectionnés et à qui on a demandé de s'entraîner "
"dans :code:`configure_fit`."

#: ../../source/how-to-implement-strategies.rst:277
#, fuzzy
msgid ""
"Of course, failures can happen, so there is no guarantee that the server "
"will get results from all the clients it sent instructions to (via "
"``configure_fit``). ``aggregate_fit`` therefore receives a list of "
"``results``, but also a list of ``failures``."
msgstr ""
"Bien sûr, des échecs peuvent se produire, il n'y a donc aucune garantie "
"que le serveur obtienne des résultats de tous les clients auxquels il a "
"envoyé des instructions (via :code:`configure_fit`). "
":code:`aggregate_fit` reçoit donc une liste de :code:`résultats`, mais "
"aussi une liste de :code:`échecs`."

#: ../../source/how-to-implement-strategies.rst:282
#, fuzzy
msgid ""
"``aggregate_fit`` returns an optional ``Parameters`` object and a "
"dictionary of aggregated metrics. The ``Parameters`` return value is "
"optional because ``aggregate_fit`` might decide that the results provided"
" are not sufficient for aggregation (e.g., too many failures)."
msgstr ""
":code:`aggregate_fit` renvoie un objet :code:`Parameters` facultatif et "
"un dictionnaire de métriques agrégées. La valeur de retour "
":code:`Parameters` est facultative car :code:`aggregate_fit` peut décider"
" que les résultats fournis ne sont pas suffisants pour l'agrégation (par "
"exemple, trop d'échecs)."

#: ../../source/how-to-implement-strategies.rst:288
#, fuzzy
msgid "The ``configure_evaluate`` method"
msgstr "La méthode :code:`configure_evaluate` (en anglais)"

#: ../../source/how-to-implement-strategies.rst:290
#, fuzzy
msgid ""
"``configure_evaluate`` is responsible for configuring the upcoming round "
"of evaluation. What does *configure* mean in this context? Configuring a "
"round means selecting clients and deciding what instructions to send to "
"these clients. The signature of ``configure_evaluate`` makes this clear:"
msgstr ""
":code:`configure_evaluate` est chargé de configurer le prochain tour "
"d'évaluation. Que signifie *configurer* dans ce contexte ? Configurer un "
"tour signifie sélectionner des clients et décider des instructions à leur"
" envoyer. La signature de :code:`configure_evaluate` l'indique clairement"
" :"

#: ../../source/how-to-implement-strategies.rst:303
#, fuzzy
msgid ""
"The return value is a list of tuples, each representing the instructions "
"that will be sent to a particular client. Strategy implementations "
"usually perform the following steps in ``configure_evaluate``:"
msgstr ""
"La valeur de retour est une liste de tuples, chacun représentant les "
"instructions qui seront envoyées à un client particulier. Les "
"implémentations de stratégies effectuent généralement les étapes "
"suivantes dans :code:`configure_evaluate` :"

#: ../../source/how-to-implement-strategies.rst:309
#, fuzzy
msgid ""
"Pair each ``ClientProxy`` with the same ``EvaluateIns`` holding the "
"current global model ``parameters`` and ``config`` dict"
msgstr ""
"Associe chaque :code:`ClientProxy` au même :code:`EvaluateIns` contenant "
"le modèle global actuel :code:`parameters` et :code:`config` dict"

#: ../../source/how-to-implement-strategies.rst:312
#, fuzzy
msgid ""
"More sophisticated implementations can use ``configure_evaluate`` to "
"implement custom client selection logic. A client will only participate "
"in a round if the corresponding ``ClientProxy`` is included in the list "
"returned from ``configure_evaluate``."
msgstr ""
"Les implémentations plus sophistiquées peuvent utiliser "
":code:`configure_evaluate` pour mettre en œuvre une logique de sélection "
"des clients personnalisée. Un client ne participera à un tour que si le "
":code:`ClientProxy` correspondant est inclus dans la liste renvoyée par "
":code:`configure_evaluate`."

#: ../../source/how-to-implement-strategies.rst:318
#, fuzzy
msgid ""
"The structure of this return value provides a lot of flexibility to the "
"user. Since instructions are defined on a per-client basis, different "
"instructions can be sent to each client. This enables custom strategies "
"to evaluate, for example, different models on different clients, or use "
"different hyperparameters on different clients (via the ``config`` dict)."
msgstr ""
"La structure de cette valeur de retour offre beaucoup de souplesse à "
"l'utilisateur. Comme les instructions sont définies par client, des "
"instructions différentes peuvent être envoyées à chaque client. Cela "
"permet aux stratégies personnalisées d'évaluer, par exemple, différents "
"modèles sur différents clients, ou d'utiliser différents hyperparamètres "
"sur différents clients (via le dict :code:`config`)."

#: ../../source/how-to-implement-strategies.rst:325
#, fuzzy
msgid "The ``aggregate_evaluate`` method"
msgstr "La méthode :code:`aggregate_evaluate` (agréger_évaluer)"

#: ../../source/how-to-implement-strategies.rst:327
#, fuzzy
msgid ""
"``aggregate_evaluate`` is responsible for aggregating the results "
"returned by the clients that were selected and asked to evaluate in "
"``configure_evaluate``."
msgstr ""
":code:`aggregate_evaluate` est chargé d'agréger les résultats renvoyés "
"par les clients qui ont été sélectionnés et à qui l'on a demandé "
"d'évaluer dans :code:`configure_evaluate`."

#: ../../source/how-to-implement-strategies.rst:341
#, fuzzy
msgid ""
"Of course, failures can happen, so there is no guarantee that the server "
"will get results from all the clients it sent instructions to (via "
"``configure_evaluate``). ``aggregate_evaluate`` therefore receives a list"
" of ``results``, but also a list of ``failures``."
msgstr ""
"Bien sûr, des échecs peuvent se produire, il n'y a donc aucune garantie "
"que le serveur obtienne des résultats de tous les clients auxquels il a "
"envoyé des instructions (via :code:`configure_evaluate`). "
":code:`aggregate_evaluate` reçoit donc une liste de :code:`résultats`, "
"mais aussi une liste d' :code:`échecs`."

#: ../../source/how-to-implement-strategies.rst:346
#, fuzzy
msgid ""
"``aggregate_evaluate`` returns an optional ``float`` (loss) and a "
"dictionary of aggregated metrics. The ``float`` return value is optional "
"because ``aggregate_evaluate`` might decide that the results provided are"
" not sufficient for aggregation (e.g., too many failures)."
msgstr ""
":code:`aggregate_evaluate` renvoie un :code:`float` facultatif (perte) et"
" un dictionnaire de mesures agrégées. La valeur de retour :code:`float` "
"est facultative car :code:`aggregate_evaluate` peut décider que les "
"résultats fournis ne sont pas suffisants pour l'agrégation (par exemple, "
"trop d'échecs)."

#: ../../source/how-to-implement-strategies.rst:352
#, fuzzy
msgid "The ``evaluate`` method"
msgstr "La méthode :code:`évaluer`"

#: ../../source/how-to-implement-strategies.rst:354
#, fuzzy
msgid ""
"``evaluate`` is responsible for evaluating model parameters on the "
"server-side. Having ``evaluate`` in addition to "
"``configure_evaluate``/``aggregate_evaluate`` enables strategies to "
"perform both servers-side and client-side (federated) evaluation."
msgstr ""
"le fait d'avoir :code:`evaluate` en plus de "
":code:`configure_evaluate`/:code:`aggregate_evaluate` permet aux "
"stratégies d'effectuer des évaluations à la fois côté serveur et côté "
"client (fédéré)."

#: ../../source/how-to-implement-strategies.rst:364
#, fuzzy
msgid ""
"The return value is again optional because the strategy might not need to"
" implement server-side evaluation or because the user-defined "
"``evaluate`` method might not complete successfully (e.g., it might fail "
"to load the server-side evaluation data)."
msgstr ""
"La valeur de retour est à nouveau facultative parce que la stratégie peut"
" ne pas avoir besoin de mettre en œuvre l'évaluation côté serveur ou "
"parce que la méthode :code:`evaluate` définie par l'utilisateur peut ne "
"pas se terminer avec succès (par exemple, elle peut échouer à charger les"
" données de l'évaluation côté serveur)."

#: ../../source/how-to-install-flower.rst:2
#, fuzzy
msgid "Install Flower"
msgstr "Installer Flower"

#: ../../source/how-to-install-flower.rst:5
#, fuzzy
msgid "Python version"
msgstr "Version Python"

#: ../../source/how-to-install-flower.rst:11
msgid "Install stable release"
msgstr "Installe la version stable"

#: ../../source/how-to-install-flower.rst:14
msgid "Using pip"
msgstr ""

#: ../../source/how-to-install-flower.rst:16
#, fuzzy
msgid "Stable releases are available on `PyPI <https://pypi.org/project/flwr/>`_:"
msgstr ""
"Les versions stables sont disponibles sur `PyPI "
"<https://pypi.org/project/flwr/>`_: :"

#: ../../source/how-to-install-flower.rst:22
#, fuzzy
msgid ""
"For simulations that use the Virtual Client Engine, ``flwr`` should be "
"installed with the ``simulation`` extra:"
msgstr ""
"Pour les simulations qui utilisent le moteur de client virtuel, ``flwr`` "
"doit être installé avec l'option ``simulation``: :"

#: ../../source/how-to-install-flower.rst:30
msgid "Using conda (or mamba)"
msgstr ""

#: ../../source/how-to-install-flower.rst:32
msgid "Flower can also be installed from the ``conda-forge`` channel."
msgstr ""

#: ../../source/how-to-install-flower.rst:34
msgid ""
"If you have not added ``conda-forge`` to your channels, you will first "
"need to run the following:"
msgstr ""

#: ../../source/how-to-install-flower.rst:42
msgid ""
"Once the ``conda-forge`` channel has been enabled, ``flwr`` can be "
"installed with ``conda``:"
msgstr ""

#: ../../source/how-to-install-flower.rst:49
msgid "or with ``mamba``:"
msgstr ""

#: ../../source/how-to-install-flower.rst:56
msgid "Verify installation"
msgstr "Vérifie l'installation"

#: ../../source/how-to-install-flower.rst:58
#, fuzzy
msgid ""
"The following command can be used to verify if Flower was successfully "
"installed. If everything worked, it should print the version of Flower to"
" the command line:"
msgstr ""
"La commande suivante peut être utilisée pour vérifier si Flower a été "
"installé avec succès. Si tout a fonctionné, la version de Flower devrait "
"être imprimée sur la ligne de commande: :"

#: ../../source/how-to-install-flower.rst:68
msgid "Advanced installation options"
msgstr "Options d'installation avancées"

#: ../../source/how-to-install-flower.rst:71
#, fuzzy
msgid "Install via Docker"
msgstr "Installer Flower"

#: ../../source/how-to-install-flower.rst:73
msgid ":doc:`Run Flower using Docker <docker/index>`"
msgstr ""

#: ../../source/how-to-install-flower.rst:76
msgid "Install pre-release"
msgstr "Installer la version pre-release"

#: ../../source/how-to-install-flower.rst:78
#, fuzzy
msgid ""
"New (possibly unstable) versions of Flower are sometimes available as "
"pre-release versions (alpha, beta, release candidate) before the stable "
"release happens:"
msgstr ""
"Les nouvelles versions (éventuellement instables) de Flower sont parfois "
"disponibles en tant que versions préliminaires (alpha, bêta, release "
"candidate) avant que la version stable n'arrive : :"

#: ../../source/how-to-install-flower.rst:85
#, fuzzy
msgid ""
"For simulations that use the Virtual Client Engine, ``flwr`` pre-releases"
" should be installed with the ``simulation`` extra:"
msgstr ""
"Pour les simulations qui utilisent le moteur de client virtuel, les "
"versions de ``flwr`` doivent être installées avec l'option "
"``simulation``: :"

#: ../../source/how-to-install-flower.rst:93
msgid "Install nightly release"
msgstr "Installer la version nightly"

#: ../../source/how-to-install-flower.rst:95
#, fuzzy
msgid ""
"The latest (potentially unstable) changes in Flower are available as "
"nightly releases:"
msgstr ""
"Les dernières modifications (potentiellement instables) de Flower sont "
"disponibles sous forme de versions nocturnes: :"

#: ../../source/how-to-install-flower.rst:101
#, fuzzy
msgid ""
"For simulations that use the Virtual Client Engine, ``flwr-nightly`` "
"should be installed with the ``simulation`` extra:"
msgstr ""
"Pour les simulations qui utilisent le moteur de client virtuel, ``flwr-"
"nightly`` doit être installé avec l'option ``simulation``: :"

#: ../../source/how-to-run-simulations.rst:22
#, fuzzy
msgid "Run simulations"
msgstr "Simulation de moniteur"

#: ../../source/how-to-run-simulations.rst:24
msgid ""
"Simulating Federated Learning workloads is useful for a multitude of use "
"cases: you might want to run your workload on a large cohort of clients "
"without having to source, configure, and manage a large number of "
"physical devices; you might want to run your FL workloads as fast as "
"possible on the compute systems you have access to without going through "
"a complex setup process; you might want to validate your algorithm in "
"different scenarios at varying levels of data and system heterogeneity, "
"client availability, privacy budgets, etc. These are among some of the "
"use cases where simulating FL workloads makes sense."
msgstr ""

#: ../../source/how-to-run-simulations.rst:33
msgid ""
"Flower's ``Simulation Engine`` schedules, launches, and manages "
"|clientapp_link|_ instances. It does so through a ``Backend``, which "
"contains several workers (i.e., Python processes) that can execute a "
"``ClientApp`` by passing it a |context_link|_ and a |message_link|_. "
"These ``ClientApp`` objects are identical to those used by Flower's "
"`Deployment Engine <contributor-explanation-architecture.html>`_, making "
"alternating between *simulation* and *deployment* an effortless process. "
"The execution of ``ClientApp`` objects through Flower's ``Simulation "
"Engine`` is:"
msgstr ""

#: ../../source/how-to-run-simulations.rst:41
msgid ""
"**Resource-aware**: Each backend worker executing ``ClientApp``\\s gets "
"assigned a portion of the compute and memory on your system. You can "
"define these at the beginning of the simulation, allowing you to control "
"the degree of parallelism of your simulation. For a fixed total pool of "
"resources, the fewer the resources per backend worker, the more "
"``ClientApps`` can run concurrently on the same hardware."
msgstr ""

#: ../../source/how-to-run-simulations.rst:46
msgid ""
"**Batchable**: When there are more ``ClientApps`` to execute than backend"
" workers, ``ClientApps`` are queued and executed as soon as resources are"
" freed. This means that ``ClientApps`` are typically executed in batches "
"of N, where N is the number of backend workers."
msgstr ""

#: ../../source/how-to-run-simulations.rst:50
msgid ""
"**Self-managed**: This means that you, as a user, do not need to launch "
"``ClientApps`` manually; instead, the ``Simulation Engine``'s internals "
"orchestrates the execution of all ``ClientApp``\\s."
msgstr ""

#: ../../source/how-to-run-simulations.rst:53
msgid ""
"**Ephemeral**: This means that a ``ClientApp`` is only materialized when "
"it is required by the application (e.g., to do `fit() <ref-api-"
"flwr.html#flwr.client.Client.fit>`_). The object is destroyed afterward, "
"releasing the resources it was assigned and allowing other clients to "
"participate."
msgstr ""

#: ../../source/how-to-run-simulations.rst:60
msgid ""
"You can preserve the state (e.g., internal variables, parts of an ML "
"model, intermediate results) of a ``ClientApp`` by saving it to its "
"``Context``. Check the `Designing Stateful Clients <how-to-design-"
"stateful-clients.rst>`_ guide for a complete walkthrough."
msgstr ""

#: ../../source/how-to-run-simulations.rst:65
msgid ""
"The ``Simulation Engine`` delegates to a ``Backend`` the role of spawning"
" and managing ``ClientApps``. The default backend is the ``RayBackend``, "
"which uses `Ray <https://www.ray.io/>`_, an open-source framework for "
"scalable Python workloads. In particular, each worker is an `Actor "
"<https://docs.ray.io/en/latest/ray-core/actors.html>`_ capable of "
"spawning a ``ClientApp`` given its ``Context`` and a ``Message`` to "
"process."
msgstr ""

#: ../../source/how-to-run-simulations.rst:73
msgid "Launch your Flower simulation"
msgstr ""

#: ../../source/how-to-run-simulations.rst:75
msgid ""
"Running a simulation is straightforward; in fact, it is the default mode "
"of operation for |flwr_run_link|_. Therefore, running Flower simulations "
"primarily requires you to first define a ``ClientApp`` and a "
"``ServerApp``. A convenient way to generate a minimal but fully "
"functional Flower app is by means of the |flwr_new_link|_ command. There "
"are multiple templates to choose from. The example below uses the "
"``PyTorch`` template."
msgstr ""

#: ../../source/how-to-run-simulations.rst:83
msgid ""
"If you haven't already, install Flower via ``pip install -U flwr`` in a "
"Python environment."
msgstr ""

#: ../../source/how-to-run-simulations.rst:91
msgid ""
"Then, follow the instructions shown after completing the |flwr_new_link|_"
" command. When you execute |flwr_run_link|_, you'll be using the "
"``Simulation Engine``."
msgstr ""

#: ../../source/how-to-run-simulations.rst:94
msgid ""
"If we take a look at the ``pyproject.toml`` that was generated from the "
"|flwr_new_link|_ command (and loaded upon |flwr_run_link|_ execution), we"
" see that a *default* federation is defined. It sets the number of "
"supernodes to 10."
msgstr ""

#: ../../source/how-to-run-simulations.rst:106
msgid ""
"You can modify the size of your simulations by adjusting ``options.num-"
"supernodes``."
msgstr ""

#: ../../source/how-to-run-simulations.rst:109
#, fuzzy
msgid "Simulation examples"
msgstr "Exemples de PyTorch"

#: ../../source/how-to-run-simulations.rst:111
msgid ""
"In addition to the quickstart tutorials in the documentation (e.g., "
"`quickstart PyTorch Tutorial <tutorial-quickstart-pytorch.html>`_, "
"`quickstart JAX Tutorial <tutorial-quickstart-jax.html>`_), most examples"
" in the Flower repository are simulation-ready."
msgstr ""

#: ../../source/how-to-run-simulations.rst:116
#, fuzzy
msgid ""
"`Quickstart TensorFlow/Keras "
"<https://github.com/adap/flower/tree/main/examples/quickstart-"
"tensorflow>`_."
msgstr ""
"`Quickstart TensorFlow (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-"
"tensorflow>`_"

#: ../../source/how-to-run-simulations.rst:118
#, fuzzy
msgid ""
"`Quickstart PyTorch <https://github.com/adap/flower/tree/main/examples"
"/quickstart-pytorch>`_"
msgstr ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"

#: ../../source/how-to-run-simulations.rst:120
#, fuzzy
msgid ""
"`Advanced PyTorch <https://github.com/adap/flower/tree/main/examples"
"/advanced-pytorch>`_"
msgstr ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"

#: ../../source/how-to-run-simulations.rst:122
#, fuzzy
msgid ""
"`Quickstart MLX <https://github.com/adap/flower/tree/main/examples"
"/quickstart-mlx>`_"
msgstr ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"

#: ../../source/how-to-run-simulations.rst:123
#, fuzzy
msgid ""
"`ViT fine-tuning <https://github.com/adap/flower/tree/main/examples"
"/flowertune-vit>`_"
msgstr ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"

#: ../../source/how-to-run-simulations.rst:125
#, fuzzy
msgid ""
"The complete list of examples can be found in `the Flower GitHub "
"<https://github.com/adap/flower/tree/main/examples>`_."
msgstr ""
"Un exemple de code complet démontrant une connexion sécurisée peut être "
"trouvé ici <https://github.com/adap/flower/tree/main/examples/advanced-"
"tensorflow>`_."

#: ../../source/how-to-run-simulations.rst:131
msgid "Defining ``ClientApp`` resources"
msgstr ""

#: ../../source/how-to-run-simulations.rst:133
msgid ""
"By default, the ``Simulation Engine`` assigns two CPU cores to each "
"backend worker. This means that if your system has 10 CPU cores, five "
"backend workers can be running in parallel, each executing a different "
"``ClientApp`` instance."
msgstr ""

#: ../../source/how-to-run-simulations.rst:137
msgid ""
"More often than not, you would probably like to adjust the resources your"
" ``ClientApp`` gets assigned based on the complexity (i.e., compute and "
"memory footprint) of your workload. You can do so by adjusting the "
"backend resources for your federation."
msgstr ""

#: ../../source/how-to-run-simulations.rst:143
#, python-format
msgid ""
"Note that the resources the backend assigns to each worker (and hence to "
"each ``ClientApp`` being executed) are assigned in a *soft* manner. This "
"means that the resources are primarily taken into account in order to "
"control the degree of parallelism at which ``ClientApp`` instances should"
" be executed. Resource assignment is **not strict**, meaning that if you "
"specified your ``ClientApp`` is assumed to make use of 25% of the "
"available VRAM but it ends up using 50%, it might cause other "
"``ClientApp`` instances to crash throwing an out-of-memory (OOM) error."
msgstr ""

#: ../../source/how-to-run-simulations.rst:151
msgid ""
"Customizing resources can be done directly in the ``pyproject.toml`` of "
"your app."
msgstr ""

#: ../../source/how-to-run-simulations.rst:160
msgid ""
"With the above backend settings, your simulation will run as many "
"``ClientApps`` in parallel as CPUs you have in your system. GPU resources"
" for your ``ClientApp`` can be assigned by specifying the **ratio** of "
"VRAM each should make use of."
msgstr ""

#: ../../source/how-to-run-simulations.rst:173
msgid ""
"If you are using TensorFlow, you need to `enable memory growth "
"<https://www.tensorflow.org/guide/gpu#limiting_gpu_memory_growth>`_ so "
"multiple ``ClientApp`` instances can share a GPU. This needs to be done "
"before launching the simulation. To do so, set the environment variable "
"``TF_FORCE_GPU_ALLOW_GROWTH=\"1\"``."
msgstr ""

#: ../../source/how-to-run-simulations.rst:179
msgid ""
"Let's see how the above configuration results in a different number of "
"``ClientApps`` running in parallel depending on the resources available "
"in your system. If your system has:"
msgstr ""

#: ../../source/how-to-run-simulations.rst:183
#, python-format
msgid ""
"10x CPUs and 1x GPU: at most 4 ``ClientApps`` will run in parallel since "
"each requires 25% of the available VRAM."
msgstr ""

#: ../../source/how-to-run-simulations.rst:185
msgid ""
"10x CPUs and 2x GPUs: at most 8 ``ClientApps`` will run in parallel "
"(VRAM-limited)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:186
msgid ""
"6x CPUs and 4x GPUs: at most 6 ``ClientApps`` will run in parallel (CPU-"
"limited)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:187
msgid ""
"10x CPUs but 0x GPUs: you won't be able to run the simulation since not "
"even the resources for a single ``ClientApp`` can be met."
msgstr ""

#: ../../source/how-to-run-simulations.rst:190
msgid ""
"A generalization of this is given by the following equation. It gives the"
" maximum number of ``ClientApps`` that can be executed in parallel on "
"available CPU cores (SYS_CPUS) and VRAM (SYS_GPUS)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:194
msgid ""
"N = \\min\\left(\\left\\lfloor \\frac{\\text{SYS_CPUS}}{\\text{num_cpus}}"
" \\right\\rfloor, \\left\\lfloor "
"\\frac{\\text{SYS_GPUS}}{\\text{num_gpus}} \\right\\rfloor\\right)"
msgstr ""

#: ../../source/how-to-run-simulations.rst:198
msgid ""
"Both ``num_cpus`` (an integer higher than 1) and ``num_gpus`` (a non-"
"negative real number) should be set on a per ``ClientApp`` basis. If, for"
" example, you want only a single ``ClientApp`` to run on each GPU, then "
"set ``num_gpus=1.0``. If, for example, a ``ClientApp`` requires access to"
" two whole GPUs, you'd set ``num_gpus=2``."
msgstr ""

#: ../../source/how-to-run-simulations.rst:203
msgid ""
"While the ``options.backend.client-resources`` can be used to control the"
" degree of concurrency in your simulations, this does not stop you from "
"running hundreds or even thousands of clients in the same round and "
"having orders of magnitude more *dormant* (i.e., not participating in a "
"round) clients. Let's say you want to have 100 clients per round but your"
" system can only accommodate 8 clients concurrently. The ``Simulation "
"Engine`` will schedule 100 ``ClientApps`` to run and then will execute "
"them in a resource-aware manner in batches of 8."
msgstr ""

#: ../../source/how-to-run-simulations.rst:212
#, fuzzy
msgid "Simulation Engine resources"
msgstr "Moteur de client virtuel"

#: ../../source/how-to-run-simulations.rst:214
msgid ""
"By default, the ``Simulation Engine`` has **access to all system "
"resources** (i.e., all CPUs, all GPUs). However, in some settings, you "
"might want to limit how many of your system resources are used for "
"simulation. You can do this in the ``pyproject.toml`` of your app by "
"setting the ``options.backend.init_args`` variable."
msgstr ""

#: ../../source/how-to-run-simulations.rst:228
msgid ""
"With the above setup, the Backend will be initialized with a single CPU "
"and GPU. Therefore, even if more CPUs and GPUs are available in your "
"system, they will not be used for the simulation. The example above "
"results in a single ``ClientApp`` running at any given point."
msgstr ""

#: ../../source/how-to-run-simulations.rst:233
msgid ""
"For a complete list of settings you can configure, check the `ray.init "
"<https://docs.ray.io/en/latest/ray-core/api/doc/ray.init.html#ray-init>`_"
" documentation."
msgstr ""

#: ../../source/how-to-run-simulations.rst:236
msgid "For the highest performance, do not set ``options.backend.init_args``."
msgstr ""

#: ../../source/how-to-run-simulations.rst:239
#, fuzzy
msgid "Simulation in Colab/Jupyter"
msgstr "Simulation de moniteur"

#: ../../source/how-to-run-simulations.rst:241
msgid ""
"The preferred way of running simulations should always be "
"|flwr_run_link|_. However, the core functionality of the ``Simulation "
"Engine`` can be used from within a Google Colab or Jupyter environment by"
" means of `run_simulation <ref-api-"
"flwr.html#flwr.simulation.run_simulation>`_."
msgstr ""

#: ../../source/how-to-run-simulations.rst:262
msgid ""
"With ``run_simulation``, you can also control the amount of resources for"
" your ``ClientApp`` instances. Do so by setting ``backend_config``. If "
"unset, the default resources are assigned (i.e., 2xCPUs per ``ClientApp``"
" and no GPU)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:273
msgid ""
"Refer to the `30 minutes Federated AI Tutorial "
"<https://colab.research.google.com/github/adap/flower/blob/main/examples"
"/flower-in-30-minutes/tutorial.ipynb>`_ for a complete example on how to "
"run Flower Simulations in Colab."
msgstr ""

#: ../../source/how-to-run-simulations.rst:280
#, fuzzy
msgid "Multi-node Flower simulations"
msgstr "Simulation de moniteur"

#: ../../source/how-to-run-simulations.rst:282
msgid ""
"Flower's ``Simulation Engine`` allows you to run FL simulations across "
"multiple compute nodes so that you're not restricted to running "
"simulations on a _single_ machine. Before starting your multi-node "
"simulation, ensure that you:"
msgstr ""

#: ../../source/how-to-run-simulations.rst:286
msgid "Have the same Python environment on all nodes."
msgstr ""

#: ../../source/how-to-run-simulations.rst:287
msgid "Have a copy of your code on all nodes."
msgstr ""

#: ../../source/how-to-run-simulations.rst:288
msgid ""
"Have a copy of your dataset on all nodes. If you are using partitions "
"from `Flower Datasets <https://flower.ai/docs/datasets>`_, ensure the "
"partitioning strategy its parameterization are the same. The expectation "
"is that the i-th dataset partition is identical in all nodes."
msgstr ""

#: ../../source/how-to-run-simulations.rst:292
msgid ""
"Start Ray on your head node: on the terminal, type ``ray start --head``. "
"This command will print a few lines, one of which indicates how to attach"
" other nodes to the head node."
msgstr ""

#: ../../source/how-to-run-simulations.rst:295
msgid ""
"Attach other nodes to the head node: copy the command shown after "
"starting the head and execute it on the terminal of a new node (before "
"executing |flwr_run_link|_). For example: ``ray start "
"--address='192.168.1.132:6379'``. Note that to be able to attach nodes to"
" the head node they should be discoverable by each other."
msgstr ""

#: ../../source/how-to-run-simulations.rst:300
msgid ""
"With all the above done, you can run your code from the head node as you "
"would if the simulation were running on a single node. In other words:"
msgstr ""

#: ../../source/how-to-run-simulations.rst:308
msgid ""
"Once your simulation is finished, if you'd like to dismantle your "
"cluster, you simply need to run the command ``ray stop`` in each node's "
"terminal (including the head node)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:313
msgid ""
"When attaching a new node to the head, all its resources (i.e., all CPUs,"
" all GPUs) will be visible by the head node. This means that the "
"``Simulation Engine`` can schedule as many ``ClientApp`` instances as "
"that node can possibly run. In some settings, you might want to exclude "
"certain resources from the simulation. You can do this by appending "
"``--num-cpus=<NUM_CPUS_FROM_NODE>`` and/or ``--num-"
"gpus=<NUM_GPUS_FROM_NODE>`` in any ``ray start`` command (including when "
"starting the head)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:322
#, fuzzy
msgid "FAQ for Simulations"
msgstr "Simulation de moniteur"

#: ../../source/how-to-run-simulations.rst
msgid "Can I make my ``ClientApp`` instances stateful?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:326
msgid ""
"Yes. Use the ``state`` attribute of the |context_link|_ object that is "
"passed to the ``ClientApp`` to save variables, parameters, or results to "
"it. Read the `Designing Stateful Clients <how-to-design-stateful-"
"clients.rst>`_ guide for a complete walkthrough."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid "Can I run multiple simulations on the same machine?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:330
msgid ""
"Yes, but bear in mind that each simulation isn't aware of the resource "
"usage of the other. If your simulations make use of GPUs, consider "
"setting the ``CUDA_VISIBLE_DEVICES`` environment variable to make each "
"simulation use a different set of the available GPUs. Export such an "
"environment variable before starting |flwr_run_link|_."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid ""
"Do the CPU/GPU resources set for each ``ClientApp`` restrict how much "
"compute/memory these make use of?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:334
msgid ""
"No. These resources are exclusively used by the simulation backend to "
"control how many workers can be created on startup. Let's say N backend "
"workers are launched, then at most N ``ClientApp`` instances will be "
"running in parallel. It is your responsibility to ensure ``ClientApp`` "
"instances have enough resources to execute their workload (e.g., fine-"
"tune a transformer model)."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid "My ``ClientApp`` is triggering OOM on my GPU. What should I do?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:338
msgid ""
"It is likely that your `num_gpus` setting, which controls the number of "
"``ClientApp`` instances that can share a GPU, is too low (meaning too "
"many ``ClientApps`` share the same GPU). Try the following:"
msgstr ""

#: ../../source/how-to-run-simulations.rst:340
msgid ""
"Set your ``num_gpus=1``. This will make a single ``ClientApp`` run on a "
"GPU."
msgstr ""

#: ../../source/how-to-run-simulations.rst:341
msgid "Inspect how much VRAM is being used (use ``nvidia-smi`` for this)."
msgstr ""

#: ../../source/how-to-run-simulations.rst:342
msgid ""
"Based on the VRAM you see your single ``ClientApp`` using, calculate how "
"many more would fit within the remaining VRAM. One divided by the total "
"number of ``ClientApps`` is the ``num_gpus`` value you should set."
msgstr ""

#: ../../source/how-to-run-simulations.rst:344
msgid "Refer to :ref:`clientappresources` for more details."
msgstr ""

#: ../../source/how-to-run-simulations.rst:346
msgid ""
"If your ``ClientApp`` is using TensorFlow, make sure you are exporting "
"``TF_FORCE_GPU_ALLOW_GROWTH=\"1\"`` before starting your simulation. For "
"more details, check."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid ""
"How do I know what's the right ``num_cpus`` and ``num_gpus`` for my "
"``ClientApp``?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:350
msgid ""
"A good practice is to start by running the simulation for a few rounds "
"with higher ``num_cpus`` and ``num_gpus`` than what is really needed "
"(e.g., ``num_cpus=8`` and, if you have a GPU, ``num_gpus=1``). Then "
"monitor your CPU and GPU utilization. For this, you can make use of tools"
" such as ``htop`` and ``nvidia-smi``. If you see overall resource "
"utilization remains low, try lowering ``num_cpus`` and ``num_gpus`` "
"(recall this will make more ``ClientApp`` instances run in parallel) "
"until you see a satisfactory system resource utilization."
msgstr ""

#: ../../source/how-to-run-simulations.rst:352
msgid ""
"Note that if the workload on your ``ClientApp`` instances is not "
"homogeneous (i.e., some come with a larger compute or memory footprint), "
"you'd probably want to focus on those when coming up with a good value "
"for ``num_gpus`` and ``num_cpus``."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid "Can I assign different resources to each ``ClientApp`` instance?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:356
msgid ""
"No. All ``ClientApp`` objects are assumed to make use of the same "
"``num_cpus`` and ``num_gpus``. When setting these values (refer to "
":ref:`clientappresources` for more details), ensure the ``ClientApp`` "
"with the largest memory footprint (either RAM or VRAM) can run in your "
"system with others like it in parallel."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid ""
"Can I run single simulation accross multiple compute nodes (e.g. GPU "
"servers)?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:360
msgid ""
"Yes. If you are using the ``RayBackend`` (the *default* backend) you can "
"first interconnect your nodes through Ray's cli and then launch the "
"simulation. Refer to :ref:`multinodesimulations` for a step-by-step "
"guide."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid ""
"My ``ServerApp`` also needs to make use of the GPU (e.g., to do "
"evaluation of the *global model* after aggregation). Is this GPU usage "
"taken into account by the ``Simulation Engine``?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:364
msgid ""
"No. The ``Simulation Engine`` only manages ``ClientApps`` and therefore "
"is only aware of the system resources they require. If your ``ServerApp``"
" makes use of substantial compute or memory resources, factor that into "
"account when setting ``num_cpus`` and ``num_gpus``."
msgstr ""

#: ../../source/how-to-run-simulations.rst
msgid ""
"Can I indicate on what resource a specific instance of a ``ClientApp`` "
"should run? Can I do resource placement?"
msgstr ""

#: ../../source/how-to-run-simulations.rst:368
msgid ""
"Currently, the placement of ``ClientApp`` instances is managed by the "
"``RayBackend`` (the only backend available as of ``flwr==1.13.0``) and "
"cannot be customized. Implementing a *custom* backend would be a way of "
"achieving resource placement."
msgstr ""

#: ../../source/how-to-save-and-load-model-checkpoints.rst:2
#, fuzzy
msgid "Save and Load Model Checkpoints"
msgstr "Sauvegarde et chargement des points de contrôle PyTorch"

#: ../../source/how-to-save-and-load-model-checkpoints.rst:4
msgid ""
"Flower does not automatically save model updates on the server-side. This"
" how-to guide describes the steps to save (and load) model checkpoints in"
" Flower."
msgstr ""

#: ../../source/how-to-save-and-load-model-checkpoints.rst:8
#, fuzzy
msgid "Model Checkpointing"
msgstr "Point de contrôle du modèle"

#: ../../source/how-to-save-and-load-model-checkpoints.rst:10
#, fuzzy
msgid ""
"Model updates can be persisted on the server-side by customizing "
"``Strategy`` methods. Implementing custom strategies is always an option,"
" but for many cases it may be more convenient to simply customize an "
"existing strategy. The following code example defines a new "
"``SaveModelStrategy`` which customized the existing built-in ``FedAvg`` "
"strategy. In particular, it customizes ``aggregate_fit`` by calling "
"``aggregate_fit`` in the base class (``FedAvg``). It then continues to "
"save returned (aggregated) weights before it returns those aggregated "
"weights to the caller (i.e., the server):"
msgstr ""
"Les mises à jour du modèle peuvent être conservées côté serveur en "
"personnalisant les méthodes :code:`Strategy`. L'implémentation de "
"stratégies personnalisées est toujours possible, mais dans de nombreux "
"cas, il peut être plus pratique de simplement personnaliser une stratégie"
" existante. L'exemple de code suivant définit une nouvelle "
":code:`SaveModelStrategy` qui personnalise la stratégie intégrée "
":code:`FedAvg` existante. En particulier, il personnalise "
":code:`aggregate_fit` en appelant :code:`aggregate_fit` dans la classe de"
" base (:code:`FedAvg`). Il continue ensuite à sauvegarder les poids "
"retournés (agrégés) avant de renvoyer ces poids agrégés à l'appelant "
"(c'est-à-dire le serveur) :"

#: ../../source/how-to-save-and-load-model-checkpoints.rst:58
#, fuzzy
msgid "Save and Load PyTorch Checkpoints"
msgstr "Sauvegarde et chargement des points de contrôle PyTorch"

#: ../../source/how-to-save-and-load-model-checkpoints.rst:60
#, fuzzy
msgid ""
"Similar to the previous example but with a few extra steps, we'll show "
"how to store a PyTorch checkpoint we'll use the ``torch.save`` function. "
"Firstly, ``aggregate_fit`` returns a ``Parameters`` object that has to be"
" transformed into a list of NumPy ``ndarray``'s, then those are "
"transformed into the PyTorch ``state_dict`` following the ``OrderedDict``"
" class structure."
msgstr ""
"Comme dans l'exemple précédent, mais avec quelques étapes "
"supplémentaires, nous allons montrer comment stocker un point de contrôle"
" PyTorch en utilisant la fonction ``torch.save``. Tout d'abord, "
"``aggregate_fit`` renvoie un objet ``Parameters`` qui doit être "
"transformé en une liste de `ndarray`` NumPy, puis ceux-ci sont "
"transformés en ``state_dict`` PyTorch en suivant la structure de la "
"classe ``OrderedDict``."

#: ../../source/how-to-save-and-load-model-checkpoints.rst:103
msgid ""
"To load your progress, you simply append the following lines to your "
"code. Note that this will iterate over all saved checkpoints and load the"
" latest one:"
msgstr ""
"Pour charger ta progression, il te suffit d'ajouter les lignes suivantes "
"à ton code. Note que cela va itérer sur tous les points de contrôle "
"sauvegardés et charger le plus récent :"

#: ../../source/how-to-save-and-load-model-checkpoints.rst:116
msgid ""
"Return/use this object of type ``Parameters`` wherever necessary, such as"
" in the ``initial_parameters`` when defining a ``Strategy``."
msgstr ""

#: ../../source/how-to-save-and-load-model-checkpoints.rst:119
msgid ""
"Alternatively, we can save and load the model updates during evaluation "
"phase by overriding ``evaluate()`` or ``aggregate_evaluate()`` method of "
"the strategy (``FedAvg``). Checkout the details in `Advanced PyTorch "
"Example <https://github.com/adap/flower/tree/main/examples/advanced-"
"pytorch>`_ and `Advanced TensorFlow Example "
"<https://github.com/adap/flower/tree/main/examples/advanced-"
"tensorflow>`_."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.0.rst:2
msgid "Upgrade to Flower 1.0"
msgstr "Passe à Flower 1.0"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:6
msgid ""
"This guide is for users who have already worked with Flower 0.x and want "
"to upgrade to Flower 1.0. Newer versions of Flower (1.13 and later) are "
"based on a new architecture and not covered in this guide. After "
"upgrading Flower 0.x projects to Flower 1.0, please refer to "
":doc:`Upgrade to Flower 1.13 <how-to-upgrade-to-flower-1.13>` to make "
"your project compatible with the lastest version of Flower."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.0.rst:13
msgid ""
"Flower 1.0 is here. Along with new features, Flower 1.0 provides a stable"
" foundation for future growth. Compared to Flower 0.19 (and other 0.x "
"series releases), there are a few breaking changes that make it necessary"
" to change the code of existing 0.x-series projects."
msgstr ""
"Flower 1.0 est arrivé. En plus de nouvelles fonctionnalités, Flower 1.0 "
"fournit une base stable pour la croissance future. Par rapport à Flower "
"0.19 (et aux autres versions de la série 0.x), il y a quelques "
"changements qui nécessitent de modifier le code des projets de la série "
"0.x existants."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:19
#: ../../source/how-to-upgrade-to-flower-1.13.rst:49
msgid "Install update"
msgstr "Installer la mise à jour"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:21
msgid ""
"Here's how to update an existing installation to Flower 1.0 using either "
"pip or Poetry:"
msgstr ""
"Voici comment mettre à jour une installation existante vers Flower 1.0 en"
" utilisant soit pip soit Poetry :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:23
msgid "pip: add ``-U`` when installing."
msgstr "pip : ajoute ``-U`` lors de l'installation."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:25
msgid ""
"``python -m pip install -U flwr`` (when using ``start_server`` and "
"``start_client``)"
msgstr ""
"``python -m pip install -U flwr`` (lors de l'utilisation de "
"``start_server`` et ``start_client``)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:26
msgid ""
"``python -m pip install -U 'flwr[simulation]'`` (when using "
"``start_simulation``)"
msgstr ""
"``python -m pip install -U 'flwr[simulation]'`` (lors de l'utilisation de"
" ``start_simulation``)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:28
msgid ""
"Poetry: update the ``flwr`` dependency in ``pyproject.toml`` and then "
"reinstall (don't forget to delete ``poetry.lock`` via ``rm poetry.lock`` "
"before running ``poetry install``)."
msgstr ""
"Poetry : mettez à jour la dépendance ``flwr`` dans ``pyproject.toml`` "
"puis réinstallez (n'oubliez pas de supprimer ``poetry.lock`` via ``rm "
"poetry.lock`` avant d'exécuter ``poetry install``)."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:32
msgid "``flwr = \"^1.0.0\"`` (when using ``start_server`` and ``start_client``)"
msgstr ""
"``flwr = \"^1.0.0\"`` (lors de l'utilisation de ``start_server`` et "
"``start_client``)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:33
msgid ""
"``flwr = { version = \"^1.0.0\", extras = [\"simulation\"] }`` (when "
"using ``start_simulation``)"
msgstr ""
"``flwr = { version = \"^1.0.0\", extras = [\"simulation\"] }`` (lors de "
"l'utilisation de ``start_simulation``)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:37
#: ../../source/how-to-upgrade-to-flower-1.13.rst:88
msgid "Required changes"
msgstr "Changements nécessaires"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:39
msgid "The following breaking changes require manual updates."
msgstr ""
"Les changements de rupture suivants nécessitent des mises à jour "
"manuelles."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:42
msgid "General"
msgstr "Généralités"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:44
msgid ""
"Pass all arguments as keyword arguments (not as positional arguments). "
"Here's an example:"
msgstr ""
"Passe tous les arguments comme des arguments de mots-clés (et non comme "
"des arguments de position). Voici un exemple :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:47
msgid ""
"Flower 0.19 (positional arguments): ``start_client(\"127.0.0.1:8080\", "
"FlowerClient())``"
msgstr ""
"Flower 0.19 (arguments positionnels) : ``start_client(\"127.0.0.1:8080\","
" FlowerClient())``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:48
msgid ""
"Flower 1.0 (keyword arguments): "
"``start_client(server_address=\"127.0.0.1:8080\", "
"client=FlowerClient())``"
msgstr ""
"Fleur 1.0 (arguments de mots-clés) : "
"``start_client(server_address=\"127.0.0.1:8080\", "
"client=FlowerClient())``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:52
#: ../../source/ref-api/flwr.client.Client.rst:2
msgid "Client"
msgstr "Client"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:54
msgid ""
"Subclasses of ``NumPyClient``: change ``def get_parameters(self):``` to "
"``def get_parameters(self, config):``"
msgstr ""
"Sous-classes de ``NumPyClient`` : changez ``def get_parameters(self):`` "
"en ``def get_parameters(self, config):``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:56
msgid ""
"Subclasses of ``Client``: change ``def get_parameters(self):``` to ``def "
"get_parameters(self, ins: GetParametersIns):``"
msgstr ""
"Sous-classes de ``Client`` : changez ``def get_parameters(self):`` en "
"``def get_parameters(self, ins : GetParametersIns):``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:60
msgid "Strategies / ``start_server`` / ``start_simulation``"
msgstr "Stratégies / ``démarrer_serveur`` / ``démarrer_simulation``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:62
msgid ""
"Pass ``ServerConfig`` (instead of a dictionary) to ``start_server`` and "
"``start_simulation``. Here's an example:"
msgstr ""
"Passez ``ServerConfig`` (au lieu d'un dictionnaire) à ``start_server`` et"
" ``start_simulation``. Voici un exemple :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:65
msgid ""
"Flower 0.19: ``start_server(..., config={\"num_rounds\": 3, "
"\"round_timeout\": 600.0}, ...)``"
msgstr ""
"Flower 0.19 : ``start_server(..., config={\"num_rounds\" : 3, "
"\"round_timeout\" : 600.0}, ...)``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:67
msgid ""
"Flower 1.0: ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:70
msgid ""
"Replace ``num_rounds=1`` in ``start_simulation`` with the new "
"``config=ServerConfig(...)`` (see previous item)"
msgstr ""
"Remplacer ``num_rounds=1`` dans ``start_simulation`` par le nouveau "
"``config=ServerConfig(...)`` (voir point précédent)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:72
msgid ""
"Remove ``force_final_distributed_eval`` parameter from calls to "
"``start_server``. Distributed evaluation on all clients can be enabled by"
" configuring the strategy to sample all clients for evaluation after the "
"last round of training."
msgstr ""
"Supprime le paramètre ``force_final_distributed_eval`` des appels à "
"``start_server``. L'évaluation distribuée sur tous les clients peut être "
"activée en configurant la stratégie pour échantillonner tous les clients "
"pour l'évaluation après le dernier tour de formation."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:75
msgid "Rename parameter/ndarray conversion functions:"
msgstr "Renomme les fonctions de conversion des paramètres et des tableaux :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:77
msgid "``parameters_to_weights`` --> ``parameters_to_ndarrays``"
msgstr "``parameters_to_weights`` --> ``parameters_to_ndarrays``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:78
msgid "``weights_to_parameters`` --> ``ndarrays_to_parameters``"
msgstr "``Poids_à_paramètres`` --> ``Réseaux_à_paramètres``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:80
msgid ""
"Strategy initialization: if the strategy relies on the default values for"
" ``fraction_fit`` and ``fraction_evaluate``, set ``fraction_fit`` and "
"``fraction_evaluate`` manually to ``0.1``. Projects that do not manually "
"create a strategy (by calling ``start_server`` or ``start_simulation`` "
"without passing a strategy instance) should now manually initialize "
"FedAvg with ``fraction_fit`` and ``fraction_evaluate`` set to ``0.1``."
msgstr ""
"Initialisation de la stratégie : si la stratégie repose sur les valeurs "
"par défaut de ``fraction_fit`` et ``fraction_evaluate``, fixer "
"manuellement ``fraction_fit`` et ``fraction_evaluate`` à `0.1``. Les "
"projets qui ne créent pas manuellement une stratégie (en appelant "
"``start_server` ou ``start_simulation`` sans passer une instance de "
"stratégie) doivent maintenant initialiser manuellement FedAvg avec "
"``fraction_fit`` et ``fraction_evaluate`` fixés à ``0.1``."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:86
msgid "Rename built-in strategy parameters (e.g., ``FedAvg``):"
msgstr "Renommer les paramètres de stratégie intégrés (par exemple, ``FedAvg``) :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:88
msgid "``fraction_eval`` --> ``fraction_evaluate``"
msgstr "``fraction_eval`` --> ``fraction_evaluate``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:89
msgid "``min_eval_clients`` --> ``min_evaluate_clients``"
msgstr "``min_eval_clients` --> ``min_evaluate_clients``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:90
msgid "``eval_fn`` --> ``evaluate_fn``"
msgstr "``eval_fn`` --> ``evaluate_fn``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:92
msgid ""
"Rename ``rnd`` to ``server_round``. This impacts multiple methods and "
"functions, for example, ``configure_fit``, ``aggregate_fit``, "
"``configure_evaluate``, ``aggregate_evaluate``, and ``evaluate_fn``."
msgstr ""
"Renommez ``rnd`` en ``server_round``. Cela a un impact sur plusieurs "
"méthodes et fonctions, par exemple, ``configure_fit``, ``aggregate_fit``,"
" ``configure_evaluate``, ``aggregate_evaluate``, et ``evaluate_fn``."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:95
msgid "Add ``server_round`` and ``config`` to ``evaluate_fn``:"
msgstr "Ajoute ``server_round`` et ``config`` à `evaluate_fn`` :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:97
msgid ""
"Flower 0.19: ``def evaluate(parameters: NDArrays) -> "
"Optional[Tuple[float, Dict[str, Scalar]]]:``"
msgstr ""
"Flower 0.19 : ``def evaluate(parameters : NDArrays) -> "
"Optional[Tuple[float, Dict[str, Scalar]]]]:``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:99
msgid ""
"Flower 1.0: ``def evaluate(server_round: int, parameters: NDArrays, "
"config: Dict[str, Scalar]) -> Optional[Tuple[float, Dict[str, "
"Scalar]]]:``"
msgstr ""
"Flower 1.0 : ``def evaluate(server_round : int, parameters : NDArrays, "
"config : Dict[str, Scalar]) -> Optional[Tuple[float, Dict[str, "
"Scalar]]]:``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:103
msgid "Custom strategies"
msgstr "Stratégies personnalisées"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:105
msgid ""
"The type of parameter ``failures`` has changed from "
"``List[BaseException]`` to ``List[Union[Tuple[ClientProxy, FitRes], "
"BaseException]]`` (in ``aggregate_fit``) and "
"``List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]]`` (in "
"``aggregate_evaluate``)"
msgstr ""
"Le type du paramètre ``failures`` a changé de ``List[BaseException]`` à "
"``List[Union[Tuple[ClientProxy, FitRes], BaseException]]`` (dans "
"``aggregate_fit``) et ``List[Union[Tuple[ClientProxy, EvaluateRes], "
"BaseException]]`` (dans ``aggregate_evaluate``)"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:109
msgid ""
"The ``Strategy`` method ``evaluate`` now receives the current round of "
"federated learning/evaluation as the first parameter:"
msgstr ""
"La méthode ``Stratégie`` `évaluer`` reçoit maintenant le cycle actuel "
"d'apprentissage/évaluation fédéré comme premier paramètre :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:112
msgid ""
"Flower 0.19: ``def evaluate(self, parameters: Parameters) -> "
"Optional[Tuple[float, Dict[str, Scalar]]]:``"
msgstr ""
"Flower 0.19 : ``def evaluate(self, parameters : Parameters) -> "
"Optional[Tuple[float, Dict[str, Scalar]]]]:``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:114
msgid ""
"Flower 1.0: ``def evaluate(self, server_round: int, parameters: "
"Parameters) -> Optional[Tuple[float, Dict[str, Scalar]]]:``"
msgstr ""
"Flower 1.0 : ``def evaluate(self, server_round : int, parameters : "
"Parameters) -> Optional[Tuple[float, Dict[str, Scalar]]]]:``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:118
msgid "Optional improvements"
msgstr "Améliorations facultatives"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:120
msgid ""
"Along with the necessary changes above, there are a number of potential "
"improvements that just became possible:"
msgstr ""
"En plus des changements nécessaires mentionnés ci-dessus, il existe un "
"certain nombre d'améliorations potentielles qui viennent d'être rendues "
"possibles :"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:123
msgid ""
"Remove \"placeholder\" methods from subclasses of ``Client`` or "
"``NumPyClient``. If you, for example, use server-side evaluation, then "
"empty placeholder implementations of ``evaluate`` are no longer "
"necessary."
msgstr ""
"Supprime les méthodes \"placeholder\" des sous-classes de ``Client`` ou "
"de ``NumPyClient``. Si tu utilises, par exemple, l'évaluation côté "
"serveur, alors les implémentations \"placeholder\" de ``evaluate`` ne "
"sont plus nécessaires."

#: ../../source/how-to-upgrade-to-flower-1.0.rst:126
msgid ""
"Configure the round timeout via ``start_simulation``: "
"``start_simulation(..., config=flwr.server.ServerConfig(num_rounds=3, "
"round_timeout=600.0), ...)``"
msgstr ""
"Configurez le délai d'attente de la ronde via ``start_simulation`` : "
"``start_simulation(..., config=flwr.server.ServerConfig(num_rounds=3, "
"round_timeout=600.0), ...)``"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:130
#: ../../source/how-to-upgrade-to-flower-1.13.rst:451
msgid "Further help"
msgstr "Aide supplémentaire"

#: ../../source/how-to-upgrade-to-flower-1.0.rst:132
msgid ""
"Most official `Flower code examples "
"<https://github.com/adap/flower/tree/main/examples>`_ are already updated"
" to Flower 1.0, they can serve as a reference for using the Flower 1.0 "
"API. If there are further questions, `join the Flower Slack "
"<https://flower.ai/join-slack/>`_ and use the channel ``#questions``."
msgstr ""
"La plupart des `exemples de code Flower officiels "
"<https://github.com/adap/flower/tree/main/examples>`_ sont déjà mis à "
"jour vers Flower 1.0, ils peuvent servir de référence pour l'utilisation "
"de l'API Flower 1.0. Si vous avez d'autres questions, `joins le Slack "
"Flower <https://flower.ai/join-slack/>`_ et utilise le canal "
"``#questions``."

#: ../../source/how-to-upgrade-to-flower-1.13.rst:2
#, fuzzy
msgid "Upgrade to Flower 1.13"
msgstr "Passe à Flower 1.0"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:4
msgid ""
"Welcome to the migration guide for updating Flower to Flower 1.13! "
"Whether you're a seasoned user or just getting started, this guide will "
"help you smoothly transition your existing setup to take advantage of the"
" latest features and improvements in Flower 1.13."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:10
msgid ""
"This guide shows how to make pre-``1.13`` Flower code compatible with "
"Flower 1.13 (and later) with only minimal code changes."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:13
msgid "Let's dive in!"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:51
#, fuzzy
msgid ""
"Here's how to update an existing installation of Flower to Flower 1.13 "
"with ``pip``:"
msgstr ""
"Voici comment mettre à jour une installation existante vers Flower 1.0 en"
" utilisant soit pip soit Poetry :"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:57
msgid "or if you need Flower 1.13 with simulation:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:63
msgid ""
"Ensure you set the following version constraint in your "
"``requirements.txt``"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:73
msgid "or ``pyproject.toml``:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:90
msgid ""
"Starting with Flower 1.8, the *infrastructure* and *application layers* "
"have been decoupled. Flower 1.13 enforces this separation further. Among "
"other things, this allows you to run the exact same code in a simulation "
"as in a real deployment."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:94
msgid ""
"Instead of starting a client in code via ``start_client()``, you create a"
" |clientapp_link|_. Instead of starting a server in code via "
"``start_server()``, you create a |serverapp_link|_. Both ``ClientApp`` "
"and ``ServerApp`` are started by the long-running components of the "
"server and client: the `SuperLink` and `SuperNode`, respectively."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:102
msgid ""
"For more details on SuperLink and SuperNode, please see the "
"|flower_architecture_link|_ ."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:105
msgid ""
"The following non-breaking changes require manual updates and allow you "
"to run your project both in the traditional (now deprecated) way and in "
"the new (recommended) Flower 1.13 way:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:110
#, fuzzy
msgid "|clientapp_link|_"
msgstr "client"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:112
msgid ""
"Wrap your existing client with |clientapp_link|_ instead of launching it "
"via ``start_client()``. Here's an example:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:146
#, fuzzy
msgid "|serverapp_link|_"
msgstr "serveur"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:148
msgid ""
"Wrap your existing strategy with |serverapp_link|_ instead of starting "
"the server via ``start_server()``. Here's an example:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:185
msgid "Deployment"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:187
msgid ""
"In a terminal window, start the SuperLink using |flower_superlink_link|_."
" Then, in two additional terminal windows, start two SuperNodes using "
"|flower_supernode_link|_ (2x). There is no need to directly run "
"``client.py`` and ``server.py`` as Python scripts."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:190
msgid ""
"Here's an example to start the server without HTTPS (insecure mode, only "
"for prototyping):"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:195
msgid ""
"For a comprehensive walk-through on how to deploy Flower using Docker, "
"please refer to the :doc:`docker/index` guide."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:218
msgid ""
"Here's another example to start both SuperLink and SuperNodes with HTTPS."
" Use the ``--ssl-ca-certfile``, ``--ssl-certfile``, and ``--ssl-keyfile``"
" command line options to pass paths to (CA certificate, server "
"certificate, and server private key)."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:246
#, fuzzy
msgid "Simulation (CLI)"
msgstr "Simulation de moniteur"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:248
msgid ""
"Wrap your existing client and strategy with |clientapp_link|_ and "
"|serverapp_link|_, respectively. There is no need to use "
"``start_simulation()`` anymore. Here's an example:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:253
#: ../../source/how-to-upgrade-to-flower-1.13.rst:389
msgid ""
"For a comprehensive guide on how to setup and run Flower simulations "
"please read the |flower_how_to_run_simulations_link|_ guide."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:310
msgid "Depending on your Flower version, you can run your simulation as follows:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:312
msgid ""
"For Flower 1.11 and later, run ``flwr run`` in the terminal. This is the "
"recommended way to start simulations, other ways are deprecated and no "
"longer recommended."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:314
msgid ""
"DEPRECATED For Flower versions between 1.8 and 1.10, run ``flower-"
"simulation`` in the terminal and point to the ``server_app`` / "
"``client_app`` object in the code instead of executing the Python script."
" In the code snippet below, there is an example (assuming the "
"``server_app`` and ``client_app`` objects are in a ``sim.py`` module)."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:318
msgid "DEPRECATED For Flower versions before 1.8, run the Python script directly."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:337
msgid ""
"Depending on your Flower version, you can also define the default "
"resources as follows:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:339
msgid ""
"For Flower 1.11 and later, you can edit your ``pyproject.toml`` file and "
"then run ``flwr run`` in the terminal as shown in the example below."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:341
msgid ""
"DEPRECATED For Flower versions between 1.8 and 1.10, you can adjust the "
"resources for each |clientapp_link|_ using the ``--backend-config`` "
"command line argument instead of setting the ``client_resources`` "
"argument in ``start_simulation()``."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:344
#: ../../source/how-to-upgrade-to-flower-1.13.rst:384
msgid ""
"DEPRECATED For Flower versions before 1.8, you need to run "
"``start_simulation()`` and pass a dictionary of the required resources to"
" the ``client_resources`` argument."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:375
#, fuzzy
msgid "Simulation (Notebook)"
msgstr "Simulation de moniteur"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:377
msgid ""
"To run your simulation from within a notebook, please consider the "
"following examples depending on your Flower version:"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:380
msgid ""
"For Flower 1.11 and later, you need to run |runsim_link|_ in your "
"notebook instead of ``start_simulation()``."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:382
msgid ""
"DEPRECATED For Flower versions between 1.8 and 1.10, you need to run "
"|runsim_link|_ in your notebook instead of ``start_simulation()`` and "
"configure the resources."
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:453
#, fuzzy
msgid ""
"Most official `Flower code examples <https://flower.ai/docs/examples/>`_ "
"are already updated to Flower 1.13 so they can serve as a reference for "
"using the Flower 1.13 API. If there are further questions, `join the "
"Flower Slack <https://flower.ai/join-slack/>`_ (and use the channel "
"``#questions``) or post them on `Flower Discuss "
"<https://discuss.flower.ai/>`_ where you can find the community posting "
"and answering questions."
msgstr ""
"La plupart des `exemples de code Flower officiels "
"<https://github.com/adap/flower/tree/main/examples>`_ sont déjà mis à "
"jour vers Flower 1.0, ils peuvent servir de référence pour l'utilisation "
"de l'API Flower 1.0. Si vous avez d'autres questions, `joins le Slack "
"Flower <https://flower.ai/join-slack/>`_ et utilise le canal "
"``#questions``."

#: ../../source/how-to-upgrade-to-flower-1.13.rst:460
#, fuzzy
msgid "Important"
msgstr "Changements importants :"

#: ../../source/how-to-upgrade-to-flower-1.13.rst:462
msgid ""
"As we continuously enhance Flower at a rapid pace, we'll be periodically "
"updating this guide. Please feel free to share any feedback with us!"
msgstr ""

#: ../../source/how-to-upgrade-to-flower-1.13.rst:465
msgid "Happy migrating! 🚀"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:2
msgid "Use Built-in Mods"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:4
msgid ""
"**Note: This tutorial covers experimental features. The functionality and"
" interfaces may change in future versions.**"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:7
msgid ""
"In this tutorial, we will learn how to utilize built-in mods to augment "
"the behavior of a ``ClientApp``. Mods (sometimes also called Modifiers) "
"allow us to perform operations before and after a task is processed in "
"the ``ClientApp``."
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:12
msgid "What are Mods?"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:14
msgid ""
"A Mod is a callable that wraps around a ``ClientApp``. It can manipulate "
"or inspect the incoming ``Message`` and the resulting outgoing "
"``Message``. The signature for a ``Mod`` is as follows:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:23
msgid "A typical mod function might look something like this:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:36
msgid "Using Mods"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:38
msgid "To use mods in your ``ClientApp``, you can follow these steps:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:41
msgid "1. Import the required mods"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:43
msgid "First, import the built-in mod you intend to use:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:51
msgid "2. Define your client function"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:53
msgid ""
"Define your client function (``client_fn``) that will be wrapped by the "
"mod(s):"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:62
msgid "3. Create the ``ClientApp`` with mods"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:64
msgid ""
"Create your ``ClientApp`` and pass the mods as a list to the ``mods`` "
"argument. The order in which you provide the mods matters:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:78
#, fuzzy
msgid "Order of execution"
msgstr "Dépréciations"

#: ../../source/how-to-use-built-in-mods.rst:80
msgid ""
"When the ``ClientApp`` runs, the mods are executed in the order they are "
"provided in the list:"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:83
msgid "``example_mod_1`` (outermost mod)"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:84
msgid "``example_mod_2`` (next mod)"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:85
msgid ""
"Message handler (core function that handles the incoming ``Message`` and "
"returns the outgoing ``Message``)"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:87
msgid "``example_mod_2`` (on the way back)"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:88
msgid "``example_mod_1`` (outermost mod on the way back)"
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:90
msgid ""
"Each mod has a chance to inspect and modify the incoming ``Message`` "
"before passing it to the next mod, and likewise with the outgoing "
"``Message`` before returning it up the stack."
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:97
msgid ""
"By following this guide, you have learned how to effectively use mods to "
"enhance your ``ClientApp``'s functionality. Remember that the order of "
"mods is crucial and affects how the input and output are processed."
msgstr ""

#: ../../source/how-to-use-built-in-mods.rst:101
msgid "Enjoy building a more robust and flexible ``ClientApp`` with mods!"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:2
#, fuzzy
msgid "Use Differential Privacy"
msgstr "Confidentialité différentielle"

#: ../../source/how-to-use-differential-privacy.rst:4
msgid ""
"This guide explains how you can utilize differential privacy in the "
"Flower framework. If you are not yet familiar with differential privacy, "
"you can refer to :doc:`explanation-differential-privacy`."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:10
msgid ""
"Differential Privacy in Flower is in a preview phase. If you plan to use "
"these features in a production environment with sensitive data, feel free"
" contact us to discuss your requirements and to receive guidance on how "
"to best use these features."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:17
msgid ""
"This approach consists of two separate phases: clipping of the updates "
"and adding noise to the aggregated model. For the clipping phase, Flower "
"framework has made it possible to decide whether to perform clipping on "
"the server side or the client side."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:21
msgid ""
"**Server-side Clipping**: This approach has the advantage of the server "
"enforcing uniform clipping across all clients' updates and reducing the "
"communication overhead for clipping values. However, it also has the "
"disadvantage of increasing the computational load on the server due to "
"the need to perform the clipping operation for all clients."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:26
msgid ""
"**Client-side Clipping**: This approach has the advantage of reducing the"
" computational overhead on the server. However, it also has the "
"disadvantage of lacking centralized control, as the server has less "
"control over the clipping process."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:31
#, fuzzy
msgid "Server-side Clipping"
msgstr "Logique côté serveur"

#: ../../source/how-to-use-differential-privacy.rst:33
msgid ""
"For central DP with server-side clipping, there are two ``Strategy`` "
"classes that act as wrappers around the actual ``Strategy`` instance (for"
" example, ``FedAvg``). The two wrapper classes are "
"``DifferentialPrivacyServerSideFixedClipping`` and "
"``DifferentialPrivacyServerSideAdaptiveClipping`` for fixed and adaptive "
"clipping."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:-1
#, fuzzy
msgid "server side clipping"
msgstr "Logique côté serveur"

#: ../../source/how-to-use-differential-privacy.rst:43
msgid ""
"The code sample below enables the ``FedAvg`` strategy to use server-side "
"fixed clipping using the ``DifferentialPrivacyServerSideFixedClipping`` "
"wrapper class. The same approach can be used with "
"``DifferentialPrivacyServerSideAdaptiveClipping`` by adjusting the "
"corresponding input parameters."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:64
#, fuzzy
msgid "Client-side Clipping"
msgstr "Logique côté client"

#: ../../source/how-to-use-differential-privacy.rst:66
msgid ""
"For central DP with client-side clipping, the server sends the clipping "
"value to selected clients on each round. Clients can use existing Flower "
"``Mods`` to perform the clipping. Two mods are available for fixed and "
"adaptive client-side clipping: ``fixedclipping_mod`` and "
"``adaptiveclipping_mod`` with corresponding server-side wrappers "
"``DifferentialPrivacyClientSideFixedClipping`` and "
"``DifferentialPrivacyClientSideAdaptiveClipping``."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:-1
#, fuzzy
msgid "client side clipping"
msgstr "Logique côté client"

#: ../../source/how-to-use-differential-privacy.rst:78
msgid ""
"The code sample below enables the ``FedAvg`` strategy to use differential"
" privacy with client-side fixed clipping using both the "
"``DifferentialPrivacyClientSideFixedClipping`` wrapper class and, on the "
"client, ``fixedclipping_mod``:"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:97
msgid ""
"In addition to the server-side strategy wrapper, the ``ClientApp`` needs "
"to configure the matching ``fixedclipping_mod`` to perform the client-"
"side clipping:"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:116
msgid ""
"To utilize local differential privacy (DP) and add noise to the client "
"model parameters before transmitting them to the server in Flower, you "
"can use the `LocalDpMod`. The following hyperparameters need to be set: "
"clipping norm value, sensitivity, epsilon, and delta."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:-1
msgid "local DP mod"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:126
msgid "Below is a code example that shows how to use ``LocalDpMod``:"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:144
msgid ""
"Please note that the order of mods, especially those that modify "
"parameters, is important when using multiple modifiers. Typically, "
"differential privacy (DP) modifiers should be the last to operate on "
"parameters."
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:149
msgid "Local Training using Privacy Engines"
msgstr ""

#: ../../source/how-to-use-differential-privacy.rst:151
msgid ""
"For ensuring data instance-level privacy during local model training on "
"the client side, consider leveraging privacy engines such as Opacus and "
"TensorFlow Privacy. For examples of using Flower with these engines, "
"please refer to the Flower examples directory (`Opacus "
"<https://github.com/adap/flower/tree/main/examples/opacus>`_, `Tensorflow"
" Privacy <https://github.com/adap/flower/tree/main/examples/tensorflow-"
"privacy>`_)."
msgstr ""

#: ../../source/how-to-use-strategies.rst:2
#, fuzzy
msgid "Use strategies"
msgstr "Stratégies personnalisées"

#: ../../source/how-to-use-strategies.rst:4
#, fuzzy
msgid ""
"Flower allows full customization of the learning process through the "
"``Strategy`` abstraction. A number of built-in strategies are provided in"
" the core framework."
msgstr ""
"Flower permet une personnalisation complète du processus d'apprentissage "
"grâce à l'abstraction :code:`Stratégie`. Un certain nombre de stratégies "
"intégrées sont fournies dans le cadre principal."

#: ../../source/how-to-use-strategies.rst:7
msgid ""
"There are three ways to customize the way Flower orchestrates the "
"learning process on the server side:"
msgstr ""
"Il y a trois façons de personnaliser la manière dont Flower orchestre le "
"processus d'apprentissage du côté du serveur :"

#: ../../source/how-to-use-strategies.rst:10
#, fuzzy
msgid "Use an existing strategy, for example, ``FedAvg``"
msgstr "Utilise une stratégie existante, par exemple :code:`FedAvg`"

#: ../../source/how-to-use-strategies.rst:11
#: ../../source/how-to-use-strategies.rst:66
msgid "Customize an existing strategy with callback functions"
msgstr "Personnalise une stratégie existante avec des fonctions de rappel"

#: ../../source/how-to-use-strategies.rst:12
#: ../../source/how-to-use-strategies.rst:139
msgid "Implement a novel strategy"
msgstr "Mets en place une nouvelle stratégie"

#: ../../source/how-to-use-strategies.rst:15
msgid "Use an existing strategy"
msgstr "Utilise une stratégie existante"

#: ../../source/how-to-use-strategies.rst:17
#, fuzzy
msgid ""
"Flower comes with a number of popular federated learning Strategies which"
" can be instantiated as follows:"
msgstr ""
"Flower intègre un certain nombre de stratégies d'apprentissage fédéré "
"populaires. Une stratégie intégrée peut être instanciée comme suit :"

#: ../../source/how-to-use-strategies.rst:45
msgid ""
"To make the ``ServerApp`` use this strategy, pass a ``server_fn`` "
"function to the ``ServerApp`` constructor. The ``server_fn`` function "
"should return a ``ServerAppComponents`` object that contains the strategy"
" instance and a ``ServerConfig`` instance."
msgstr ""

#: ../../source/how-to-use-strategies.rst:50
msgid ""
"Both ``Strategy`` and ``ServerConfig`` classes can be configured with "
"parameters. The ``Context`` object passed to ``server_fn`` contains the "
"values specified in the ``[tool.flwr.app.config]`` table in your "
"``pyproject.toml`` (a snippet is shown below). To access these values, "
"use ``context.run_config``."
msgstr ""

#: ../../source/how-to-use-strategies.rst:68
#, fuzzy
msgid ""
"Existing strategies provide several ways to customize their behavior. "
"Callback functions allow strategies to call user-provided code during "
"execution. This approach enables you to modify the strategy's partial "
"behavior without rewriting the whole class from zero."
msgstr ""
"Les stratégies existantes offrent plusieurs façons de personnaliser leur "
"comportement. Les fonctions de rappel permettent aux stratégies d'appeler"
" le code fourni par l'utilisateur pendant l'exécution."

#: ../../source/how-to-use-strategies.rst:73
msgid "Configuring client fit and client evaluate"
msgstr "Configurer l'adaptation et l'évaluation du client"

#: ../../source/how-to-use-strategies.rst:75
#, fuzzy
msgid ""
"The server can pass new configuration values to the client each round by "
"providing a function to ``on_fit_config_fn``. The provided function will "
"be called by the strategy and must return a dictionary of configuration "
"key value pairs that will be sent to the client. It must return a "
"dictionary of arbitrary configuration values ``client.fit`` and "
"``client.evaluate`` functions during each round of federated learning."
msgstr ""
"Le serveur peut transmettre de nouvelles valeurs de configuration au "
"client à chaque tour en fournissant une fonction à "
":code:`on_fit_config_fn`. La fonction fournie sera appelée par la "
"stratégie et doit renvoyer un dictionnaire de paires de valeurs de clés "
"de configuration qui seront envoyées au client. Elle doit renvoyer un "
"dictionnaire de valeurs de configuration arbitraires :code:`client.fit` "
"et :code:`client.evaluate` au cours de chaque tour d'apprentissage "
"fédéré."

#: ../../source/how-to-use-strategies.rst:121
#, fuzzy
msgid ""
"The ``on_fit_config_fn`` can be used to pass arbitrary configuration "
"values from server to client and potentially change these values each "
"round, for example, to adjust the learning rate. The client will receive "
"the dictionary returned by the ``on_fit_config_fn`` in its own "
"``client.fit()`` function. And while the values can be also passed "
"directly via the context this function can be a place to implement finer "
"control over the `fit` behaviour that may not be achieved by the context,"
" which sets fixed values."
msgstr ""
"Le :code:`on_fit_config_fn` peut être utilisé pour passer des valeurs de "
"configuration arbitraires du serveur au client, et changer poétiquement "
"ces valeurs à chaque tour, par exemple pour ajuster le taux "
"d'apprentissage. Le client recevra le dictionnaire renvoyé par le "
":code:`on_fit_config_fn` dans sa propre fonction :code:`client.fit()`."

#: ../../source/how-to-use-strategies.rst:129
#, fuzzy
msgid ""
"Similar to ``on_fit_config_fn``, there is also ``on_evaluate_config_fn`` "
"to customize the configuration sent to ``client.evaluate()``"
msgstr ""
"Comme pour :code:`on_fit_config_fn`, il existe aussi "
":code:`on_evaluate_config_fn` pour personnaliser la configuration envoyée"
" à :code:`client.evaluate()`"

#: ../../source/how-to-use-strategies.rst:133
msgid "Configuring server-side evaluation"
msgstr "Configuration de l'évaluation côté serveur"

#: ../../source/how-to-use-strategies.rst:135
#, fuzzy
msgid ""
"Server-side evaluation can be enabled by passing an evaluation function "
"to ``evaluate_fn``."
msgstr ""
"L'évaluation côté serveur peut être activée en passant une fonction "
"d'évaluation à :code:`evaluate_fn`."

#: ../../source/how-to-use-strategies.rst:141
#, fuzzy
msgid ""
"Writing a fully custom strategy is a bit more involved, but it provides "
"the most flexibility. Read the `Implementing Strategies <how-to-"
"implement-strategies.html>`_ guide to learn more."
msgstr ""
"L'écriture d'une stratégie entièrement personnalisée est un peu plus "
"complexe, mais c'est celle qui offre le plus de souplesse. Lis le guide "
"`Implémentation des stratégies <how-to-implement-strategies.html>`_ pour "
"en savoir plus."

#: ../../source/index.rst:34
msgid "Tutorial"
msgstr "Tutoriel"

#: ../../source/index.rst:44
msgid "Quickstart tutorials"
msgstr "Quickstart tutorials"

#: ../../source/index.rst:81 ../../source/index.rst:85
msgid "How-to guides"
msgstr "Guides"

#: ../../source/index.rst:107 ../../source/index.rst:112
msgid "Explanations"
msgstr "Explications"

#: None:-1
msgid "API reference"
msgstr "Référence pour l'API"

#: ../../source/index.rst:138
msgid "Reference docs"
msgstr "Référence pour la documentation"

#: ../../source/index.rst:153
#, fuzzy
msgid "Contributor tutorials"
msgstr "Configuration du contributeur"

#: ../../source/index.rst:160
#, fuzzy
msgid "Contributor how-to guides"
msgstr "Guide pour les contributeurs"

#: ../../source/index.rst:172
#, fuzzy
msgid "Contributor explanations"
msgstr "Explications"

#: ../../source/index.rst:178
#, fuzzy
msgid "Contributor references"
msgstr "Configuration du contributeur"

#: ../../source/index.rst:-1
msgid ""
"Check out the documentation of the main Flower Framework enabling easy "
"Python development for Federated Learning."
msgstr ""

#: ../../source/index.rst:2
#, fuzzy
msgid "Flower Framework Documentation"
msgstr "Rédiger de la documentation"

#: ../../source/index.rst:7
#, fuzzy
msgid ""
"Welcome to Flower's documentation. `Flower <https://flower.ai>`_ is a "
"friendly federated learning framework."
msgstr ""
"Bienvenue sur la documentation de Flower. `Flower <https://flower.ai>`_ "
"est un framework de federated AI convivial et facile à utiliser."

#: ../../source/index.rst:11
msgid "Join the Flower Community"
msgstr "Rejoignez la communauté de Flower"

#: ../../source/index.rst:13
msgid ""
"The Flower Community is growing quickly - we're a friendly group of "
"researchers, engineers, students, professionals, academics, and other "
"enthusiasts."
msgstr ""
"Le communauté de Flower s'agrandit rapidement - on est un super groupe de"
" chercheurs, ingénieurs, étudiants, professionnels, académiques, et "
"autres hobbyistes."

#: ../../source/index.rst:16
msgid "Join us on Slack"
msgstr "Join us on Slack"

#: ../../source/index.rst:23
msgid "Flower Framework"
msgstr "Flower Framework"

#: ../../source/index.rst:25
msgid ""
"The user guide is targeted at researchers and developers who want to use "
"Flower to bring existing machine learning workloads into a federated "
"setting. One of Flower's design goals was to make this simple. Read on to"
" learn more."
msgstr ""
"Ce guide utilisateur s'adresse à des chercheurs et des développeurs qui "
"veulent utiliser Flower pour transposer des workloads de Machine Learning"
" existantes dans un scenario fédéré. Un des buts de Flower est de rendre "
"cela le plus evident possible. Lisez la suite pour en apprendre plus."

#: ../../source/index.rst:30
msgid "Tutorials"
msgstr "Tutoriels"

#: ../../source/index.rst:32
msgid ""
"A learning-oriented series of federated learning tutorials, the best "
"place to start."
msgstr ""
"Une serie de tutoriels de Federated Learning, l'endroit parfait pour "
"débuter."

#: ../../source/index.rst:62
#, fuzzy
msgid ""
"QUICKSTART TUTORIALS: :doc:`PyTorch <tutorial-quickstart-pytorch>` | "
":doc:`TensorFlow <tutorial-quickstart-tensorflow>` | :doc:`MLX <tutorial-"
"quickstart-mlx>` | :doc:`🤗 Transformers <tutorial-quickstart-"
"huggingface>` | :doc:`JAX <tutorial-quickstart-jax>` | :doc:`Pandas "
"<tutorial-quickstart-pandas>` | :doc:`fastai <tutorial-quickstart-"
"fastai>` | :doc:`PyTorch Lightning <tutorial-quickstart-pytorch-"
"lightning>` | :doc:`scikit-learn <tutorial-quickstart-scikitlearn>` | "
":doc:`XGBoost <tutorial-quickstart-xgboost>` | :doc:`Android <tutorial-"
"quickstart-android>` | :doc:`iOS <tutorial-quickstart-ios>`"
msgstr ""
"QUICKSTART TUTORIALS: :ref:`PyTorch <quickstart-pytorch>` | "
":ref:`TensorFlow <quickstart-tensorflow>` | :ref:`🤗 Transformers "
"<quickstart-huggingface>` | :ref:`JAX <quickstart-jax>` | :ref:`Pandas "
"<quickstart-pandas>` | :ref:`fastai <quickstart-fastai>` | :ref:`PyTorch "
"Lightning <quickstart-pytorch-lightning>` | :ref:`MXNet <quickstart-"
"mxnet>` | :ref:`scikit-learn <quickstart-scikitlearn>` | :ref:`XGBoost "
"<quickstart-xgboost>` | :ref:`Android <quickstart-android>` | :ref:`iOS "
"<quickstart-ios>`"

#: ../../source/index.rst:70
msgid "We also made video tutorials for PyTorch:"
msgstr ""

#: ../../source/index.rst:75
#, fuzzy
msgid "And TensorFlow:"
msgstr "Exemples de TensorFlow"

#: ../../source/index.rst:83
msgid ""
"Problem-oriented how-to guides show step-by-step how to achieve a "
"specific goal."
msgstr ""
"Guides orientés sur la résolutions étapes par étapes de problèmes ou "
"objectifs specifiques."

#: ../../source/index.rst:109
msgid ""
"Understanding-oriented concept guides explain and discuss key topics and "
"underlying ideas behind Flower and collaborative AI."
msgstr ""
"Guides orientés sur la compréhension et l'explication des sujets et idées"
" de fonds sur lesquels sont construits Flower et l'IA collaborative."

#: ../../source/index.rst:121
#, fuzzy
msgid "References"
msgstr "Référence"

#: ../../source/index.rst:123
msgid "Information-oriented API reference and other reference material."
msgstr "Référence de l'API orientée sur l'information pure."

#: ../../source/index.rst:132:<autosummary>:1
msgid ":py:obj:`flwr <flwr>`\\"
msgstr ""

#: ../../source/index.rst:132:<autosummary>:1 flwr:1 of
msgid "Flower main package."
msgstr ""

#: ../../source/index.rst:148
#, fuzzy
msgid "Contributor docs"
msgstr "Configuration du contributeur"

#: ../../source/index.rst:150
#, fuzzy
msgid ""
"The Flower community welcomes contributions. The following docs are "
"intended to help along the way."
msgstr ""
"Les auteurs de Flower sont heureux d'accueillir des contributions "
"externes. Les guides suivant sont là pour vous accompagner dans cette "
"direction."

#: ../../source/ref-api-cli.rst:2
#, fuzzy
msgid "Flower CLI reference"
msgstr "Client de Flower"

#: ../../source/ref-api-cli.rst:5
#, fuzzy
msgid "Basic Commands"
msgstr "Exemples de PyTorch"

#: ../../source/ref-api-cli.rst:10
#, fuzzy
msgid "``flwr`` CLI"
msgstr "Client de Flower"

#: ../../flwr:1
#, fuzzy
msgid "flwr is the Flower command line interface."
msgstr "Client de Flower"

#: ../../source/ref-api-cli.rst
#, fuzzy
msgid "Options"
msgstr "Solution"

#: ../../flwr:1
msgid "Install completion for the current shell."
msgstr ""

#: ../../flwr:1
msgid ""
"Show completion for the current shell, to copy it or customize the "
"installation."
msgstr ""

#: ../../flwr build:1
msgid "Build a Flower App into a Flower App Bundle (FAB)."
msgstr ""

#: ../../flwr build:1
msgid ""
"You can run ``flwr build`` without any arguments to bundle the app "
"located in the current directory. Alternatively, you can you can specify "
"a path using the ``--app`` option to bundle an app located at the "
"provided path. For example:"
msgstr ""

#: ../../flwr build:1
msgid "``flwr build --app ./apps/flower-hello-world``."
msgstr ""

#: ../../flwr build:1
msgid "Path of the Flower App to bundle into a FAB"
msgstr ""

#: ../../flwr install:1
#, fuzzy
msgid "Install a Flower App Bundle."
msgstr "Installer Flower"

#: ../../flwr install:1
msgid "It can be ran with a single FAB file argument:"
msgstr ""

#: ../../flwr install:1
msgid "``flwr install ./target_project.fab``"
msgstr ""

#: ../../flwr install:1
msgid "The target install directory can be specified with ``--flwr-dir``:"
msgstr ""

#: ../../flwr install:1
msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``"
msgstr ""

#: ../../flwr install:1
msgid ""
"This will install ``target_project`` to ``./docs/flwr/``. By default, "
"``flwr-dir`` is equal to:"
msgstr ""

#: ../../flwr install:1
msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined"
msgstr ""

#: ../../flwr install:1
msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined"
msgstr ""

#: ../../flwr install:1
msgid "``$HOME/.flwr/`` in all other cases"
msgstr ""

#: ../../flwr install:1
msgid "The desired install path."
msgstr ""

#: ../../source/ref-api-cli.rst
#, fuzzy
msgid "Arguments"
msgstr "Amélioration de la documentation"

#: ../../flwr install:1 log:1 ls:1 new:1 run:1
#, fuzzy
msgid "Optional argument"
msgstr "Améliorations facultatives"

#: ../../flwr install:1
msgid "The source FAB file to install."
msgstr ""

#: ../../flwr log:1
msgid "Get logs from a Flower project run."
msgstr ""

#: ../../flwr log:1
msgid "Flag to stream or print logs from the Flower run"
msgstr ""

#: ../../flwr log ls run
#, fuzzy
msgid "default"
msgstr "Flux de travail"

#: ../../flwr log:1
msgid "``True``"
msgstr ""

#: ../../flwr log:1
#, fuzzy
msgid "Required argument"
msgstr "Amélioration de la documentation"

#: ../../flwr log:1
#, fuzzy
msgid "The Flower run ID to query"
msgstr "Rejoignez la communauté de Flower"

#: ../../flwr log:1
msgid "Path of the Flower project to run"
msgstr ""

#: ../../flwr log:1
msgid "Name of the federation to run the app on"
msgstr ""

#: ../../flwr ls:1
msgid "List runs."
msgstr ""

#: ../../flwr ls:1
msgid "List all runs"
msgstr ""

#: ../../flwr ls:1 run:1
msgid "``False``"
msgstr ""

#: ../../flwr ls:1
msgid "Specific run ID to display"
msgstr ""

#: ../../flwr ls:1
#, fuzzy
msgid "Path of the Flower project"
msgstr "Chargement des données"

#: ../../flwr ls:1
msgid "Name of the federation"
msgstr ""

#: ../../flwr new:1
#, fuzzy
msgid "Create new Flower App."
msgstr "Créer une nouvelle page"

#: ../../flwr new:1
msgid "The ML framework to use"
msgstr ""

#: ../../flwr new
#, fuzzy
msgid "options"
msgstr "Solution"

#: ../../flwr new:1
msgid ""
"PyTorch | TensorFlow | sklearn | HuggingFace | JAX | MLX | NumPy | "
"FlowerTune | Flower Baseline"
msgstr ""

#: ../../flwr new:1
msgid "The Flower username of the author"
msgstr ""

#: ../../flwr new:1
#, fuzzy
msgid "The name of the Flower App"
msgstr "Chargement des données"

#: ../../flwr run:1
#, fuzzy
msgid "Run Flower App."
msgstr "Serveur de Flower"

#: ../../flwr run:1
msgid "Override configuration key-value pairs, should be of the format:"
msgstr ""

#: ../../flwr run:1
msgid ""
"`--run-config 'key1=\"value1\" key2=\"value2\"' --run-config "
"'key3=\"value3\"'`"
msgstr ""

#: ../../flwr run:1
msgid ""
"Note that `key1`, `key2`, and `key3` in this example need to exist inside"
" the `pyproject.toml` in order to be properly overriden."
msgstr ""

#: ../../flwr run:1
msgid ""
"Use `--stream` with `flwr run` to display logs; logs are not streamed by "
"default."
msgstr ""

#: ../../flwr run:1
#, fuzzy
msgid "Path of the Flower App to run."
msgstr "Chargement des données"

#: ../../flwr run:1
msgid "Name of the federation to run the app on."
msgstr ""

#: ../../source/ref-api-cli.rst:19
#, fuzzy
msgid "``flower-superlink``"
msgstr "flower-superlink"

#: ../../source/ref-api-cli.rst:29
#, fuzzy
msgid "``flower-supernode``"
msgstr "Serveur de Flower"

#: ../../source/ref-api-cli.rst:37
#, fuzzy
msgid "Advanced Commands"
msgstr "Options d'installation avancées"

#: ../../source/ref-api-cli.rst:42
#, fuzzy
msgid "``flwr-serverapp``"
msgstr "flower-driver-api"

#: ../../source/ref-api-cli.rst:52
#, fuzzy
msgid "``flwr-clientapp``"
msgstr "Flower ClientApp."

#: ../../source/ref-api-cli.rst:60
#, fuzzy
msgid "Technical Commands"
msgstr "Exemples de PyTorch"

#: ../../source/ref-api-cli.rst:65
#, fuzzy
msgid "``flower-simulation``"
msgstr "Simulation de moniteur"

#: ../../source/ref-api-cli.rst:73
#, fuzzy
msgid "Deprecated Commands"
msgstr "Dépréciations"

#: ../../source/ref-api-cli.rst:78
#, fuzzy
msgid "``flower-server-app``"
msgstr "flower-driver-api"

#: ../../source/ref-api-cli.rst:82
msgid ""
"Note that from version ``1.13.0``, ``flower-server-app`` is deprecated. "
"Instead, you only need to execute |flwr_run_link|_ to start the run."
msgstr ""

#: ../../source/ref-api-cli.rst:88
#, fuzzy
msgid "``flower-superexec``"
msgstr "flower-superlink"

#: ../../source/ref-api-cli.rst:92
msgid ""
"Note that from version ``1.13.0``, ``flower-superexec`` is deprecated. "
"Instead, you only need to execute |flower_superlink_link|_."
msgstr ""

#: ../../source/ref-api/flwr.rst:2
#, fuzzy
msgid "flwr"
msgstr "Fleur"

#: ../../source/ref-api/flwr.client.rst:43 ../../source/ref-api/flwr.rst:25
#: ../../source/ref-api/flwr.server.rst:48
msgid "Modules"
msgstr ""

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.client <flwr.client>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1 flwr.client:1 of
#, fuzzy
msgid "Flower client."
msgstr "Client de Flower"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.common <flwr.common>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1 flwr.common:1 of
msgid "Common components shared between server and client."
msgstr "Composants communs partagés entre le serveur et le client."

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.server <flwr.server>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1
#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1 flwr.server:1
#: flwr.server.server.Server:1 of
#, fuzzy
msgid "Flower server."
msgstr "Serveur de Flower"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.simulation <flwr.simulation>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.rst:35:<autosummary>:1 flwr.simulation:1 of
#, fuzzy
msgid "Flower simulation."
msgstr "Simulation de moniteur"

#: ../../source/ref-api/flwr.client.rst:2
msgid "client"
msgstr "client"

#: ../../source/ref-api/flwr.client.mod.rst:13
#: ../../source/ref-api/flwr.client.rst:13
#: ../../source/ref-api/flwr.common.rst:13
#: ../../source/ref-api/flwr.server.rst:13
#: ../../source/ref-api/flwr.simulation.rst:13
#, fuzzy
msgid "Functions"
msgstr "Les quatre fonctions :"

#: ../../source/ref-api/flwr.client.rst:23:<autosummary>:1
msgid ""
":py:obj:`start_client <flwr.client.start_client>`\\ \\(\\*\\, "
"server\\_address\\[\\, client\\_fn\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:23:<autosummary>:1
#: flwr.client.app.start_client:1 of
msgid "Start a Flower client node which connects to a Flower server."
msgstr ""

#: ../../source/ref-api/flwr.client.rst:23:<autosummary>:1
msgid ""
":py:obj:`start_numpy_client <flwr.client.start_numpy_client>`\\ \\(\\*\\,"
" server\\_address\\, client\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:23:<autosummary>:1
#: flwr.client.app.start_numpy_client:1 of
msgid "Start a Flower NumPyClient which connects to a gRPC server."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:30
#: ../../source/ref-api/flwr.client.rst:25
#: ../../source/ref-api/flwr.common.rst:32
#: ../../source/ref-api/flwr.server.rst:24
#: ../../source/ref-api/flwr.server.strategy.rst:17
#: ../../source/ref-api/flwr.server.workflow.rst:17
#: ../../source/ref-api/flwr.simulation.rst:26
msgid "Classes"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
msgid ":py:obj:`Client <flwr.client.Client>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
#: flwr.client.client.Client:1 of
msgid "Abstract base class for Flower clients."
msgstr ""

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
msgid ""
":py:obj:`ClientApp <flwr.client.ClientApp>`\\ \\(\\[client\\_fn\\, "
"mods\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
#: flwr.client.client_app.ClientApp:1 of
#, fuzzy
msgid "Flower ClientApp."
msgstr "Flower ClientApp."

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
msgid ":py:obj:`NumPyClient <flwr.client.NumPyClient>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.rst:32:<autosummary>:1
#: flwr.client.numpy_client.NumPyClient:1 of
msgid "Abstract base class for Flower clients using NumPy."
msgstr ""

#: ../../source/ref-api/flwr.client.rst:50:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.client.mod <flwr.client.mod>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.client.rst:50:<autosummary>:1 flwr.client.mod:1 of
#, fuzzy
msgid "Flower Built-in Mods."
msgstr "Client de Flower"

#: flwr.client.client.Client:1 flwr.client.numpy_client.NumPyClient:1
#: flwr.server.client_manager.ClientManager:1
#: flwr.server.driver.driver.Driver:1 flwr.server.strategy.strategy.Strategy:1
#: of
msgid "Bases: :py:class:`~abc.ABC`"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:15
#: ../../source/ref-api/flwr.client.ClientApp.rst:15
#: ../../source/ref-api/flwr.client.NumPyClient.rst:15
#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst:15
#: ../../source/ref-api/flwr.common.Array.rst:15
#: ../../source/ref-api/flwr.common.ClientMessage.rst:15
#: ../../source/ref-api/flwr.common.ConfigsRecord.rst:15
#: ../../source/ref-api/flwr.common.Context.rst:15
#: ../../source/ref-api/flwr.common.DisconnectRes.rst:15
#: ../../source/ref-api/flwr.common.Error.rst:15
#: ../../source/ref-api/flwr.common.EvaluateIns.rst:15
#: ../../source/ref-api/flwr.common.EvaluateRes.rst:15
#: ../../source/ref-api/flwr.common.EventType.rst:15
#: ../../source/ref-api/flwr.common.FitIns.rst:15
#: ../../source/ref-api/flwr.common.FitRes.rst:15
#: ../../source/ref-api/flwr.common.GetParametersIns.rst:15
#: ../../source/ref-api/flwr.common.GetParametersRes.rst:15
#: ../../source/ref-api/flwr.common.GetPropertiesIns.rst:15
#: ../../source/ref-api/flwr.common.GetPropertiesRes.rst:15
#: ../../source/ref-api/flwr.common.Message.rst:15
#: ../../source/ref-api/flwr.common.MessageType.rst:15
#: ../../source/ref-api/flwr.common.MessageTypeLegacy.rst:15
#: ../../source/ref-api/flwr.common.Metadata.rst:15
#: ../../source/ref-api/flwr.common.MetricsRecord.rst:15
#: ../../source/ref-api/flwr.common.Parameters.rst:15
#: ../../source/ref-api/flwr.common.ParametersRecord.rst:15
#: ../../source/ref-api/flwr.common.ReconnectIns.rst:15
#: ../../source/ref-api/flwr.common.RecordSet.rst:15
#: ../../source/ref-api/flwr.common.ServerMessage.rst:15
#: ../../source/ref-api/flwr.common.Status.rst:15
#: ../../source/ref-api/flwr.server.ClientManager.rst:15
#: ../../source/ref-api/flwr.server.Driver.rst:15
#: ../../source/ref-api/flwr.server.History.rst:15
#: ../../source/ref-api/flwr.server.LegacyContext.rst:15
#: ../../source/ref-api/flwr.server.Server.rst:15
#: ../../source/ref-api/flwr.server.ServerApp.rst:15
#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:15
#: ../../source/ref-api/flwr.server.ServerConfig.rst:15
#: ../../source/ref-api/flwr.server.SimpleClientManager.rst:15
#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst:15
#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst:15
#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst:15
#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst:15
#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst:15
#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst:15
#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst:15
#: ../../source/ref-api/flwr.server.strategy.FaultTolerantFedAvg.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedMedian.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedProx.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedXgbBagging.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedXgbCyclic.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedXgbNnAvg.rst:15
#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst:15
#: ../../source/ref-api/flwr.server.strategy.Krum.rst:15
#: ../../source/ref-api/flwr.server.strategy.QFedAvg.rst:15
#: ../../source/ref-api/flwr.server.strategy.Strategy.rst:15
#: ../../source/ref-api/flwr.server.workflow.DefaultWorkflow.rst:15
#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst:15
#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst:15
#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst:15
msgid "Methods"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`evaluate <flwr.client.Client.evaluate>`\\ \\(ins\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.client.Client.evaluate:1
#: flwr.client.numpy_client.NumPyClient.evaluate:1 of
#, fuzzy
msgid "Evaluate the provided parameters using the locally held dataset."
msgstr "évaluer le modèle mis à jour sur l'ensemble de test local"

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`fit <flwr.client.Client.fit>`\\ \\(ins\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: flwr.client.client.Client.fit:1 of
msgid "Refine the provided parameters using the locally held dataset."
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`get_context <flwr.client.Client.get_context>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.client.Client.get_context:1
#: flwr.client.numpy_client.NumPyClient.get_context:1 of
#, fuzzy
msgid "Get the run context from this client."
msgstr "Évaluer la réponse d'un client."

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`get_parameters <flwr.client.Client.get_parameters>`\\ \\(ins\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.client.Client.get_parameters:1
#: flwr.client.numpy_client.NumPyClient.get_parameters:1 of
#, fuzzy
msgid "Return the current local model parameters."
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`get_properties <flwr.client.Client.get_properties>`\\ \\(ins\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: flwr.client.client.Client.get_properties:1 of
msgid "Return set of client's properties."
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`set_context <flwr.client.Client.set_context>`\\ \\(context\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.client.Client.set_context:1
#: flwr.client.numpy_client.NumPyClient.set_context:1 of
msgid "Apply a run context to this client."
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
msgid ":py:obj:`to_client <flwr.client.Client.to_client>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:44:<autosummary>:1
#: flwr.client.client.Client.to_client:1 of
msgid "Return client (itself)."
msgstr ""

#: ../../source/ref-api/flwr.client.Client.rst:46
#: ../../source/ref-api/flwr.client.NumPyClient.rst:46
#: ../../source/ref-api/flwr.common.Array.rst:28
#: ../../source/ref-api/flwr.common.ClientMessage.rst:25
#: ../../source/ref-api/flwr.common.Code.rst:19
#: ../../source/ref-api/flwr.common.Context.rst:25
#: ../../source/ref-api/flwr.common.DisconnectRes.rst:25
#: ../../source/ref-api/flwr.common.Error.rst:25
#: ../../source/ref-api/flwr.common.EvaluateIns.rst:25
#: ../../source/ref-api/flwr.common.EvaluateRes.rst:25
#: ../../source/ref-api/flwr.common.EventType.rst:165
#: ../../source/ref-api/flwr.common.FitIns.rst:25
#: ../../source/ref-api/flwr.common.FitRes.rst:25
#: ../../source/ref-api/flwr.common.GetParametersIns.rst:25
#: ../../source/ref-api/flwr.common.GetParametersRes.rst:25
#: ../../source/ref-api/flwr.common.GetPropertiesIns.rst:25
#: ../../source/ref-api/flwr.common.GetPropertiesRes.rst:25
#: ../../source/ref-api/flwr.common.Message.rst:37
#: ../../source/ref-api/flwr.common.MessageType.rst:25
#: ../../source/ref-api/flwr.common.MessageTypeLegacy.rst:25
#: ../../source/ref-api/flwr.common.Metadata.rst:25
#: ../../source/ref-api/flwr.common.Parameters.rst:25
#: ../../source/ref-api/flwr.common.ReconnectIns.rst:25
#: ../../source/ref-api/flwr.common.RecordSet.rst:25
#: ../../source/ref-api/flwr.common.ServerMessage.rst:25
#: ../../source/ref-api/flwr.common.Status.rst:25
#: ../../source/ref-api/flwr.server.Driver.rst:43
#: ../../source/ref-api/flwr.server.LegacyContext.rst:25
#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:25
#: ../../source/ref-api/flwr.server.ServerConfig.rst:25
msgid "Attributes"
msgstr ""

#: flwr.client.Client.context:1:<autosummary>:1 of
msgid ":py:obj:`context <flwr.client.Client.context>`\\"
msgstr ""

#: flwr.client.Client.context:1 flwr.client.Client.context:1:<autosummary>:1
#: flwr.client.NumPyClient.context:1
#: flwr.client.NumPyClient.context:1:<autosummary>:1 of
msgid "Getter for `Context` client attribute."
msgstr ""

#: ../../source/ref-api/flwr.common.Parameters.rst:2
#: flwr.client.app.start_client flwr.client.app.start_numpy_client
#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit
#: flwr.client.client.Client.get_parameters
#: flwr.client.client.Client.get_properties
#: flwr.client.mod.localdp_mod.LocalDpMod
#: flwr.client.numpy_client.NumPyClient.evaluate
#: flwr.client.numpy_client.NumPyClient.fit
#: flwr.client.numpy_client.NumPyClient.get_parameters
#: flwr.client.numpy_client.NumPyClient.get_properties
#: flwr.common.context.Context flwr.common.message.Error
#: flwr.common.message.Message flwr.common.message.Message.create_error_reply
#: flwr.common.message.Message.create_reply flwr.common.message.Metadata
#: flwr.common.record.configsrecord.ConfigsRecord
#: flwr.common.record.metricsrecord.MetricsRecord
#: flwr.common.record.parametersrecord.Array
#: flwr.common.record.parametersrecord.ParametersRecord
#: flwr.common.record.recordset.RecordSet flwr.server.app.start_server
#: flwr.server.client_manager.ClientManager.register
#: flwr.server.client_manager.ClientManager.unregister
#: flwr.server.client_manager.SimpleClientManager.register
#: flwr.server.client_manager.SimpleClientManager.unregister
#: flwr.server.client_manager.SimpleClientManager.wait_for
#: flwr.server.driver.driver.Driver.create_message
#: flwr.server.driver.driver.Driver.pull_messages
#: flwr.server.driver.driver.Driver.push_messages
#: flwr.server.driver.driver.Driver.send_and_receive
#: flwr.server.driver.driver.Driver.set_run
#: flwr.server.serverapp_components.ServerAppComponents
#: flwr.server.strategy.bulyan.Bulyan
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit
#: flwr.server.strategy.fedadagrad.FedAdagrad
#: flwr.server.strategy.fedadam.FedAdam flwr.server.strategy.fedavg.FedAvg
#: flwr.server.strategy.fedavg_android.FedAvgAndroid
#: flwr.server.strategy.fedavgm.FedAvgM flwr.server.strategy.fedopt.FedOpt
#: flwr.server.strategy.fedprox.FedProx
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg
#: flwr.server.strategy.fedyogi.FedYogi flwr.server.strategy.krum.Krum
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate
#: flwr.server.strategy.strategy.Strategy.aggregate_fit
#: flwr.server.strategy.strategy.Strategy.configure_evaluate
#: flwr.server.strategy.strategy.Strategy.configure_fit
#: flwr.server.strategy.strategy.Strategy.evaluate
#: flwr.server.strategy.strategy.Strategy.initialize_parameters
#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow
#: flwr.simulation.run_simulation.run_simulation
#: flwr.simulation.simulationio_connection.SimulationIoConnection of
#, fuzzy
msgid "Parameters"
msgstr "Paramètres du modèle."

#: flwr.client.client.Client.evaluate:3 of
msgid ""
"The evaluation instructions containing (global) model parameters received"
" from the server and a dictionary of configuration values used to "
"customize the local evaluation process."
msgstr ""

#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit
#: flwr.client.client.Client.get_parameters
#: flwr.client.client.Client.get_properties
#: flwr.client.numpy_client.NumPyClient.evaluate
#: flwr.client.numpy_client.NumPyClient.fit
#: flwr.client.numpy_client.NumPyClient.get_parameters
#: flwr.client.numpy_client.NumPyClient.get_properties
#: flwr.common.message.Message.create_error_reply
#: flwr.common.message.Message.create_reply flwr.server.app.start_server
#: flwr.server.client_manager.ClientManager.num_available
#: flwr.server.client_manager.ClientManager.register
#: flwr.server.client_manager.SimpleClientManager.num_available
#: flwr.server.client_manager.SimpleClientManager.register
#: flwr.server.client_manager.SimpleClientManager.wait_for
#: flwr.server.driver.driver.Driver.create_message
#: flwr.server.driver.driver.Driver.pull_messages
#: flwr.server.driver.driver.Driver.push_messages
#: flwr.server.driver.driver.Driver.send_and_receive
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate
#: flwr.server.strategy.strategy.Strategy.aggregate_fit
#: flwr.server.strategy.strategy.Strategy.configure_evaluate
#: flwr.server.strategy.strategy.Strategy.configure_fit
#: flwr.server.strategy.strategy.Strategy.evaluate
#: flwr.server.strategy.strategy.Strategy.initialize_parameters of
#, fuzzy
msgid "Returns"
msgstr "Ressources"

#: flwr.client.client.Client.evaluate:8 of
msgid ""
"The evaluation result containing the loss on the local dataset and other "
"details such as the number of local data examples used for evaluation."
msgstr ""

#: flwr.client.client.Client.evaluate flwr.client.client.Client.fit
#: flwr.client.client.Client.get_parameters
#: flwr.client.client.Client.get_properties
#: flwr.client.numpy_client.NumPyClient.get_parameters
#: flwr.client.numpy_client.NumPyClient.get_properties
#: flwr.common.message.Message.create_error_reply
#: flwr.common.message.Message.create_reply flwr.server.app.start_server
#: flwr.server.client_manager.ClientManager.num_available
#: flwr.server.client_manager.ClientManager.register
#: flwr.server.client_manager.SimpleClientManager.num_available
#: flwr.server.client_manager.SimpleClientManager.register
#: flwr.server.client_manager.SimpleClientManager.wait_for
#: flwr.server.driver.driver.Driver.create_message
#: flwr.server.driver.driver.Driver.pull_messages
#: flwr.server.driver.driver.Driver.push_messages
#: flwr.server.driver.driver.Driver.send_and_receive
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate
#: flwr.server.strategy.strategy.Strategy.aggregate_fit
#: flwr.server.strategy.strategy.Strategy.configure_evaluate
#: flwr.server.strategy.strategy.Strategy.configure_fit
#: flwr.server.strategy.strategy.Strategy.evaluate
#: flwr.server.strategy.strategy.Strategy.initialize_parameters of
msgid "Return type"
msgstr ""

#: flwr.client.client.Client.fit:3 of
msgid ""
"The training instructions containing (global) model parameters received "
"from the server and a dictionary of configuration values used to "
"customize the local training process."
msgstr ""

#: flwr.client.client.Client.fit:8 of
msgid ""
"The training result containing updated parameters and other details such "
"as the number of local training examples used for training."
msgstr ""

#: flwr.client.client.Client.get_parameters:3 of
msgid ""
"The get parameters instructions received from the server containing a "
"dictionary of configuration values."
msgstr ""

#: flwr.client.client.Client.get_parameters:7 of
#, fuzzy
msgid "The current local model parameters."
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: flwr.client.client.Client.get_properties:3 of
msgid ""
"The get properties instructions received from the server containing a "
"dictionary of configuration values."
msgstr ""

#: flwr.client.client.Client.get_properties:7 of
msgid "The current client properties."
msgstr ""

#: flwr.client.client_app.ClientApp:1 flwr.client.mod.localdp_mod.LocalDpMod:1
#: flwr.common.constant.MessageType:1 flwr.common.constant.MessageTypeLegacy:1
#: flwr.common.context.Context:1 flwr.common.message.Error:1
#: flwr.common.message.Message:1 flwr.common.message.Metadata:1
#: flwr.common.record.parametersrecord.Array:1
#: flwr.common.record.recordset.RecordSet:1 flwr.common.typing.ClientMessage:1
#: flwr.common.typing.DisconnectRes:1 flwr.common.typing.EvaluateIns:1
#: flwr.common.typing.EvaluateRes:1 flwr.common.typing.FitIns:1
#: flwr.common.typing.FitRes:1 flwr.common.typing.GetParametersIns:1
#: flwr.common.typing.GetParametersRes:1 flwr.common.typing.GetPropertiesIns:1
#: flwr.common.typing.GetPropertiesRes:1 flwr.common.typing.Parameters:1
#: flwr.common.typing.ReconnectIns:1 flwr.common.typing.ServerMessage:1
#: flwr.common.typing.Status:1 flwr.server.history.History:1
#: flwr.server.server.Server:1 flwr.server.server_app.ServerApp:1
#: flwr.server.server_config.ServerConfig:1
#: flwr.server.serverapp_components.ServerAppComponents:1
#: flwr.server.workflow.default_workflows.DefaultWorkflow:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:1
#: flwr.simulation.simulationio_connection.SimulationIoConnection:1 of
msgid "Bases: :py:class:`object`"
msgstr ""

#: flwr.client.app.start_client:51 flwr.client.app.start_numpy_client:36
#: flwr.client.client_app.ClientApp:4
#: flwr.client.client_app.ClientApp.evaluate:4
#: flwr.client.client_app.ClientApp.query:4
#: flwr.client.client_app.ClientApp.train:4
#: flwr.client.mod.localdp_mod.LocalDpMod:22
#: flwr.common.record.configsrecord.ConfigsRecord:20
#: flwr.common.record.metricsrecord.MetricsRecord:19
#: flwr.common.record.parametersrecord.ParametersRecord:22
#: flwr.common.record.recordset.RecordSet:23 flwr.server.app.start_server:46
#: flwr.server.server_app.ServerApp:4 flwr.server.server_app.ServerApp.main:4
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:29
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:22
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:21
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:14
#: of
#, fuzzy
msgid "Examples"
msgstr "Exemples de PyTorch"

#: flwr.client.client_app.ClientApp:5 of
msgid ""
"Assuming a typical `Client` implementation named `FlowerClient`, you can "
"wrap it in a `ClientApp` as follows:"
msgstr ""

#: flwr.client.client_app.ClientApp:16 of
msgid ""
"If the above code is in a Python module called `client`, it can be "
"started as follows:"
msgstr ""

#: flwr.client.client_app.ClientApp:21 of
msgid ""
"In this `client:app` example, `client` refers to the Python module "
"`client.py` in which the previous code lives in and `app` refers to the "
"global attribute `app` that points to an object of type `ClientApp`."
msgstr ""

#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1 of
msgid ":py:obj:`evaluate <flwr.client.ClientApp.evaluate>`\\ \\(\\)"
msgstr ""

#: flwr.client.client_app.ClientApp.evaluate:1
#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1 of
msgid "Return a decorator that registers the evaluate fn with the client app."
msgstr ""

#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1 of
msgid ":py:obj:`query <flwr.client.ClientApp.query>`\\ \\(\\)"
msgstr ""

#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1
#: flwr.client.client_app.ClientApp.query:1 of
msgid "Return a decorator that registers the query fn with the client app."
msgstr ""

#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`train <flwr.client.ClientApp.train>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: flwr.client.client_app.ClientApp.evaluate:1:<autosummary>:1
#: flwr.client.client_app.ClientApp.train:1 of
msgid "Return a decorator that registers the train fn with the client app."
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:2
msgid "NumPyClient"
msgstr "NumPyClient"

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ""
":py:obj:`evaluate <flwr.client.NumPyClient.evaluate>`\\ \\(parameters\\, "
"config\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ":py:obj:`fit <flwr.client.NumPyClient.fit>`\\ \\(parameters\\, config\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.numpy_client.NumPyClient.fit:1 of
#, fuzzy
msgid "Train the provided parameters using the locally held dataset."
msgstr "entraîne le modèle sur l'ensemble d'apprentissage local"

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ":py:obj:`get_context <flwr.client.NumPyClient.get_context>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ""
":py:obj:`get_parameters <flwr.client.NumPyClient.get_parameters>`\\ "
"\\(config\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ""
":py:obj:`get_properties <flwr.client.NumPyClient.get_properties>`\\ "
"\\(config\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.numpy_client.NumPyClient.get_properties:1 of
msgid "Return a client's set of properties."
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ""
":py:obj:`set_context <flwr.client.NumPyClient.set_context>`\\ "
"\\(context\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
msgid ":py:obj:`to_client <flwr.client.NumPyClient.to_client>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.NumPyClient.rst:44:<autosummary>:1
#: flwr.client.numpy_client.NumPyClient.to_client:1 of
#, fuzzy
msgid "Convert to object to Client type and return it."
msgstr "Convertit l'objet des paramètres en ndarrays NumPy."

#: flwr.client.NumPyClient.context:1:<autosummary>:1 of
msgid ":py:obj:`context <flwr.client.NumPyClient.context>`\\"
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:3
#: flwr.client.numpy_client.NumPyClient.fit:3
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate:5
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:8
#: flwr.server.strategy.strategy.Strategy.configure_evaluate:5
#: flwr.server.strategy.strategy.Strategy.configure_fit:5
#: flwr.server.strategy.strategy.Strategy.evaluate:8 of
#, fuzzy
msgid "The current (global) model parameters."
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: flwr.client.numpy_client.NumPyClient.evaluate:5 of
msgid ""
"Configuration parameters which allow the server to influence evaluation "
"on the client. It can be used to communicate arbitrary values from the "
"server to the client, for example, to influence the number of examples "
"used for evaluation."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:11 of
msgid ""
"* **loss** (*float*) -- The evaluation loss of the model on the local "
"dataset. * **num_examples** (*int*) -- The number of examples used for "
"evaluation. * **metrics** (*Dict[str, Scalar]*) -- A dictionary mapping "
"arbitrary string keys to values of   type bool, bytes, float, int, or "
"str. It can be used to   communicate arbitrary values back to the server."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:11 of
msgid ""
"**loss** (*float*) -- The evaluation loss of the model on the local "
"dataset."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:12 of
msgid "**num_examples** (*int*) -- The number of examples used for evaluation."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:13
#: flwr.client.numpy_client.NumPyClient.fit:13 of
msgid ""
"**metrics** (*Dict[str, Scalar]*) -- A dictionary mapping arbitrary "
"string keys to values of type bool, bytes, float, int, or str. It can be "
"used to communicate arbitrary values back to the server."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.evaluate:19 of
msgid ""
"The previous return type format (int, float, float) and the extended "
"format (int, float, float, Dict[str, Scalar]) have been deprecated and "
"removed since Flower 0.19."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.fit:5 of
msgid ""
"Configuration parameters which allow the server to influence training on "
"the client. It can be used to communicate arbitrary values from the "
"server to the client, for example, to set the number of (local) training "
"epochs."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.fit:11 of
msgid ""
"* **parameters** (*NDArrays*) -- The locally updated model parameters. * "
"**num_examples** (*int*) -- The number of examples used for training. * "
"**metrics** (*Dict[str, Scalar]*) -- A dictionary mapping arbitrary "
"string keys to values of type   bool, bytes, float, int, or str. It can "
"be used to communicate   arbitrary values back to the server."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.fit:11 of
#, fuzzy
msgid "**parameters** (*NDArrays*) -- The locally updated model parameters."
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: flwr.client.numpy_client.NumPyClient.fit:12 of
msgid "**num_examples** (*int*) -- The number of examples used for training."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.get_parameters:3 of
msgid ""
"Configuration parameters requested by the server. This can be used to "
"tell the client which parameters are needed along with some Scalar "
"attributes."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.get_parameters:8 of
#, fuzzy
msgid "**parameters** -- The local model parameters as a list of NumPy ndarrays."
msgstr "renvoie le poids du modèle sous la forme d'une liste de ndarrays NumPy"

#: flwr.client.numpy_client.NumPyClient.get_properties:3 of
msgid ""
"Configuration parameters requested by the server. This can be used to "
"tell the client which properties are needed along with some Scalar "
"attributes."
msgstr ""

#: flwr.client.numpy_client.NumPyClient.get_properties:8 of
msgid ""
"**properties** -- A dictionary mapping arbitrary string keys to values of"
" type bool, bytes, float, int, or str. It can be used to communicate "
"arbitrary property values back to the server."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:2
msgid "mod"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`adaptiveclipping_mod <flwr.client.mod.adaptiveclipping_mod>`\\ "
"\\(msg\\, ctxt\\, call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:1 of
#, fuzzy
msgid "Client-side adaptive clipping modifier."
msgstr "Logique côté client"

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`fixedclipping_mod <flwr.client.mod.fixedclipping_mod>`\\ "
"\\(msg\\, ctxt\\, call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:1 of
#, fuzzy
msgid "Client-side fixed clipping modifier."
msgstr "Logique côté client"

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#, fuzzy
msgid ":py:obj:`make_ffn <flwr.client.mod.make_ffn>`\\ \\(ffn\\, mods\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.utils.make_ffn:1 of
msgid "."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`message_size_mod <flwr.client.mod.message_size_mod>`\\ \\(msg\\,"
" ctxt\\, call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.comms_mods.message_size_mod:1 of
msgid "Message size mod."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`parameters_size_mod <flwr.client.mod.parameters_size_mod>`\\ "
"\\(msg\\, ctxt\\, call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.comms_mods.parameters_size_mod:1 of
#, fuzzy
msgid "Parameters size mod."
msgstr "Paramètres du modèle."

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`secagg_mod <flwr.client.mod.secagg_mod>`\\ \\(msg\\, ctxt\\, "
"call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.secure_aggregation.secagg_mod.secagg_mod:1 of
msgid "Handle incoming message and return results, following the SecAgg protocol."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
msgid ""
":py:obj:`secaggplus_mod <flwr.client.mod.secaggplus_mod>`\\ \\(msg\\, "
"ctxt\\, call\\_next\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:28:<autosummary>:1
#: flwr.client.mod.secure_aggregation.secaggplus_mod.secaggplus_mod:1 of
msgid ""
"Handle incoming message and return results, following the SecAgg+ "
"protocol."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:35:<autosummary>:1
msgid ""
":py:obj:`LocalDpMod <flwr.client.mod.LocalDpMod>`\\ \\(clipping\\_norm\\,"
" sensitivity\\, ...\\)"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.rst:35:<autosummary>:1
#: flwr.client.mod.localdp_mod.LocalDpMod:1 of
#, fuzzy
msgid "Modifier for local differential privacy."
msgstr "Confidentialité différentielle"

#: ../../source/ref-api/flwr.client.mod.LocalDpMod.rst:2
msgid "LocalDpMod"
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:3 of
msgid ""
"This mod clips the client model updates and adds noise to the params "
"before sending them to the server."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:12
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:10
#: flwr.client.mod.localdp_mod.LocalDpMod:6 of
msgid "It operates on messages of type `MessageType.TRAIN`."
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:8
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:15
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:8
#: of
msgid "The value of the clipping norm."
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:10 of
msgid "The sensitivity of the client model."
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:12 of
msgid ""
"The privacy budget. Smaller value of epsilon indicates a higher level of "
"privacy protection."
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:15 of
msgid ""
"The failure probability. The probability that the privacy mechanism fails"
" to provide the desired level of privacy. A smaller value of delta "
"indicates a stricter privacy guarantee."
msgstr ""

#: flwr.client.mod.localdp_mod.LocalDpMod:23 of
msgid "Create an instance of the local DP mod and add it to the client-side mods:"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.adaptiveclipping_mod.rst:2
msgid "adaptiveclipping\\_mod"
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:3 of
msgid ""
"This mod needs to be used with the "
"DifferentialPrivacyClientSideAdaptiveClipping server-side strategy "
"wrapper."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:6
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:6 of
msgid "The wrapper sends the clipping_norm value to the client."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:8
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:8 of
msgid "This mod clips the client model updates before sending them to the server."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:10 of
msgid ""
"It also sends KEY_NORM_BIT to the server for computing the new clipping "
"value."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:15
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:13
#: flwr.server.driver.driver.Driver.send_and_receive:18
#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:54
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:61
#: of
#, fuzzy
msgid "Notes"
msgstr "Aucun"

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:16
#: flwr.client.mod.centraldp_mods.fixedclipping_mod:14 of
msgid "Consider the order of mods when using multiple."
msgstr ""

#: flwr.client.mod.centraldp_mods.adaptiveclipping_mod:18 of
msgid "Typically, adaptiveclipping_mod should be the last to operate on params."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.fixedclipping_mod.rst:2
msgid "fixedclipping\\_mod"
msgstr ""

#: flwr.client.mod.centraldp_mods.fixedclipping_mod:3 of
msgid ""
"This mod needs to be used with the "
"DifferentialPrivacyClientSideFixedClipping server-side strategy wrapper."
msgstr ""

#: flwr.client.mod.centraldp_mods.fixedclipping_mod:16 of
msgid "Typically, fixedclipping_mod should be the last to operate on params."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.make_ffn.rst:2
msgid "make\\_ffn"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.message_size_mod.rst:2
msgid "message\\_size\\_mod"
msgstr ""

#: flwr.client.mod.comms_mods.message_size_mod:3 of
msgid "This mod logs the size in bytes of the message being transmited."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.parameters_size_mod.rst:2
#, fuzzy
msgid "parameters\\_size\\_mod"
msgstr "Paramètres du modèle."

#: flwr.client.mod.comms_mods.parameters_size_mod:3 of
msgid ""
"This mod logs the number of parameters transmitted in the message as well"
" as their size in bytes."
msgstr ""

#: ../../source/ref-api/flwr.client.mod.secagg_mod.rst:2
msgid "secagg\\_mod"
msgstr ""

#: ../../source/ref-api/flwr.client.mod.secaggplus_mod.rst:2
#, fuzzy
msgid "secaggplus\\_mod"
msgstr "Flux de travail"

#: ../../source/ref-api/flwr.client.start_client.rst:2
#, fuzzy
msgid "start\\_client"
msgstr "start_client"

#: flwr.client.app.start_client:5 of
msgid ""
"This function is deprecated since 1.13.0. Use :code:`flower-supernode` "
"command instead to start a SuperNode."
msgstr ""

#: flwr.client.app.start_client:8 flwr.client.app.start_numpy_client:9 of
msgid ""
"The IPv4 or IPv6 address of the server. If the Flower server runs on the "
"same machine on port 8080, then `server_address` would be "
"`\"[::]:8080\"`."
msgstr ""

#: flwr.client.app.start_client:12 of
msgid "A callable that instantiates a Client. (default: None)"
msgstr ""

#: flwr.client.app.start_client:14 of
msgid ""
"An implementation of the abstract base class `flwr.client.Client` "
"(default: None)"
msgstr ""

#: flwr.client.app.start_client:17 flwr.client.app.start_numpy_client:15 of
msgid ""
"The maximum length of gRPC messages that can be exchanged with the Flower"
" server. The default should be sufficient for most models. Users who "
"train very large models might need to increase this value. Note that the "
"Flower server needs to be started with the same value (see "
"`flwr.server.start_server`), otherwise it will not know about the "
"increased limit and block larger messages."
msgstr ""

#: flwr.client.app.start_client:24 flwr.client.app.start_numpy_client:22 of
msgid ""
"The PEM-encoded root certificates as a byte string or a path string. If "
"provided, a secure connection using the certificates will be established "
"to an SSL-enabled Flower server."
msgstr ""

#: flwr.client.app.start_client:28 flwr.client.app.start_numpy_client:26 of
msgid ""
"Starts an insecure gRPC connection when True. Enables HTTPS connection "
"when False, using system certificates if `root_certificates` is None."
msgstr ""

#: flwr.client.app.start_client:31 flwr.client.app.start_numpy_client:29 of
msgid ""
"Configure the transport layer. Allowed values: - 'grpc-bidi': gRPC, "
"bidirectional streaming - 'grpc-rere': gRPC, request-response "
"(experimental) - 'rest': HTTP (experimental)"
msgstr ""

#: flwr.client.app.start_client:36 of
msgid ""
"Tuple containing the elliptic curve private key and public key for "
"authentication from the cryptography library. Source: "
"https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/ Used "
"to establish an authenticated connection with the server."
msgstr ""

#: flwr.client.app.start_client:41 of
msgid ""
"The maximum number of times the client will try to connect to the server "
"before giving up in case of a connection error. If set to None, there is "
"no limit to the number of tries."
msgstr ""

#: flwr.client.app.start_client:45 of
msgid ""
"The maximum duration before the client stops trying to connect to the "
"server in case of connection error. If set to None, there is no limit to "
"the total time."
msgstr ""

#: flwr.client.app.start_client:52 flwr.client.app.start_numpy_client:37 of
msgid "Starting a gRPC client with an insecure server connection:"
msgstr ""

#: flwr.client.app.start_client:59 flwr.client.app.start_numpy_client:44 of
msgid "Starting an SSL-enabled gRPC client using system certificates:"
msgstr ""

#: flwr.client.app.start_client:70 flwr.client.app.start_numpy_client:52 of
msgid "Starting an SSL-enabled gRPC client using provided certificates:"
msgstr ""

#: ../../source/ref-api/flwr.client.start_numpy_client.rst:2
#, fuzzy
msgid "start\\_numpy\\_client"
msgstr "start_numpy_client"

#: flwr.client.app.start_numpy_client:5 of
msgid ""
"This function is deprecated since 1.7.0. Use "
":code:`flwr.client.start_client` instead and first convert your "
":code:`NumPyClient` to type :code:`flwr.client.Client` by executing its "
":code:`to_client()` method."
msgstr ""

#: flwr.client.app.start_numpy_client:13 of
msgid "An implementation of the abstract base class `flwr.client.NumPyClient`."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:2
msgid "common"
msgstr "commun"

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ":py:obj:`array_from_numpy <flwr.common.array_from_numpy>`\\ \\(ndarray\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.record.conversion_utils.array_from_numpy:1 of
#, fuzzy
msgid "Create Array from NumPy ndarray."
msgstr "Convertit l'objet des paramètres en ndarrays NumPy."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ":py:obj:`bytes_to_ndarray <flwr.common.bytes_to_ndarray>`\\ \\(tensor\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.parameter.bytes_to_ndarray:1 of
msgid "Deserialize NumPy ndarray from bytes."
msgstr "Désérialise le tableau numérique NumPy à partir d'octets."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ""
":py:obj:`configure <flwr.common.configure>`\\ \\(identifier\\[\\, "
"filename\\, host\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.logger.configure:1 of
msgid "Configure logging to file and/or remote log server."
msgstr ""
"Configure la journalisation vers un fichier et/ou un serveur de "
"journalisation distant."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ""
":py:obj:`event <flwr.common.event>`\\ \\(event\\_type\\[\\, "
"event\\_details\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.telemetry.event:1 of
msgid "Submit create_event to ThreadPoolExecutor to avoid blocking."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ""
":py:obj:`log <flwr.common.log>`\\ \\(level\\, msg\\, \\*args\\, "
"\\*\\*kwargs\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1 logging.Logger.log:1
#: of
msgid "Log 'msg % args' with the integer severity 'level'."
msgstr "Enregistre 'msg % args' avec le niveau de sévérité entier 'level'."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ":py:obj:`ndarray_to_bytes <flwr.common.ndarray_to_bytes>`\\ \\(ndarray\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.parameter.ndarray_to_bytes:1 of
msgid "Serialize NumPy ndarray to bytes."
msgstr "Sérialise le tableau numérique NumPy en octets."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ""
":py:obj:`ndarrays_to_parameters <flwr.common.ndarrays_to_parameters>`\\ "
"\\(ndarrays\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.parameter.ndarrays_to_parameters:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.ndarrays_to_parameters:1
#: of
msgid "Convert NumPy ndarrays to parameters object."
msgstr "Convertit les ndarrays NumPy en objets de paramètres."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ":py:obj:`now <flwr.common.now>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.date.now:1 of
msgid "Construct a datetime from time.time() with time zone set to UTC."
msgstr ""
"Construit une date à partir de time.time() avec le fuseau horaire réglé "
"sur UTC."

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
msgid ""
":py:obj:`parameters_to_ndarrays <flwr.common.parameters_to_ndarrays>`\\ "
"\\(parameters\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:30:<autosummary>:1
#: flwr.common.parameter.parameters_to_ndarrays:1 of
msgid "Convert parameters object to NumPy ndarrays."
msgstr "Convertit l'objet des paramètres en ndarrays NumPy."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`Array <flwr.common.Array>`\\ \\(dtype\\, shape\\, stype\\, "
"data\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.record.parametersrecord.Array:1 of
msgid "Array type."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`ClientMessage <flwr.common.ClientMessage>`\\ "
"\\(\\[get\\_properties\\_res\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.ClientMessage:1 of
msgid "ClientMessage is a container used to hold one result message."
msgstr ""
"ClientMessage est un conteneur utilisé pour contenir un message de "
"résultat."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`Code <flwr.common.Code>`\\ \\(value\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.Code:1 of
msgid "Client status codes."
msgstr "Codes d'état du client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ":py:obj:`Config <flwr.common.Config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
"alias of :py:class:`dict`\\ [:py:class:`str`, :py:class:`bool` | "
":py:class:`bytes` | :py:class:`float` | :py:class:`int` | "
":py:class:`str`]"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`ConfigsRecord <flwr.common.ConfigsRecord>`\\ "
"\\(\\[configs\\_dict\\, keep\\_input\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.record.configsrecord.ConfigsRecord:1 of
#, fuzzy
msgid "Configs record."
msgstr "Configurer les clients"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`Context <flwr.common.Context>`\\ \\(run\\_id\\, node\\_id\\, "
"node\\_config\\, state\\, ...\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.context.Context:1 of
msgid "Context of your run."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`DisconnectRes <flwr.common.DisconnectRes>`\\ \\(reason\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.DisconnectRes:1 of
msgid "DisconnectRes message from client to server."
msgstr "Message DisconnectRes envoyé par le client au serveur."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`Error <flwr.common.Error>`\\ \\(code\\[\\, reason\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.message.Error:1 of
msgid "A dataclass that stores information about an error that occurred."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`EvaluateIns <flwr.common.EvaluateIns>`\\ \\(parameters\\, "
"config\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.EvaluateIns:1 of
msgid "Evaluate instructions for a client."
msgstr "Évaluer les instructions pour un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`EvaluateRes <flwr.common.EvaluateRes>`\\ \\(status\\, loss\\, "
"num\\_examples\\, metrics\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.EvaluateRes:1 of
msgid "Evaluate response from a client."
msgstr "Évaluer la réponse d'un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`EventType <flwr.common.EventType>`\\ \\(value\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.telemetry.EventType:1 of
msgid "Types of telemetry events."
msgstr "Types d'événements télémétriques."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`FitIns <flwr.common.FitIns>`\\ \\(parameters\\, config\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.FitIns:1 of
msgid "Fit instructions for a client."
msgstr "Instructions d'ajustement pour un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`FitRes <flwr.common.FitRes>`\\ \\(status\\, parameters\\, "
"num\\_examples\\, metrics\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.FitRes:1 of
msgid "Fit response from a client."
msgstr "Réponse adaptée d'un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`GetParametersIns <flwr.common.GetParametersIns>`\\ \\(config\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.GetParametersIns:1 of
msgid "Parameters request for a client."
msgstr "Demande de paramètres pour un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`GetParametersRes <flwr.common.GetParametersRes>`\\ \\(status\\, "
"parameters\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.GetParametersRes:1 of
msgid "Response when asked to return parameters."
msgstr "Réponse lorsqu'on te demande de renvoyer des paramètres."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`GetPropertiesIns <flwr.common.GetPropertiesIns>`\\ \\(config\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.GetPropertiesIns:1 of
msgid "Properties request for a client."
msgstr "Demande de propriétés pour un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`GetPropertiesRes <flwr.common.GetPropertiesRes>`\\ \\(status\\, "
"properties\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.GetPropertiesRes:1 of
msgid "Properties response from a client."
msgstr "Réponse des propriétés d'un client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`Message <flwr.common.Message>`\\ \\(metadata\\[\\, content\\, "
"error\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.message.Message:1 of
msgid "State of your application from the viewpoint of the entity using it."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`MessageType <flwr.common.MessageType>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.constant.MessageType:1 of
msgid "Message type."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`MessageTypeLegacy <flwr.common.MessageTypeLegacy>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.constant.MessageTypeLegacy:1 of
msgid "Legacy message type."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`Metadata <flwr.common.Metadata>`\\ \\(run\\_id\\, "
"message\\_id\\, src\\_node\\_id\\, ...\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.message.Metadata:1 of
msgid "A dataclass holding metadata associated with the current message."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ":py:obj:`Metrics <flwr.common.Metrics>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`MetricsRecord <flwr.common.MetricsRecord>`\\ "
"\\(\\[metrics\\_dict\\, keep\\_input\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.record.metricsrecord.MetricsRecord:1 of
#, fuzzy
msgid "Metrics recod."
msgstr "Paramètres du modèle."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`NDArray <flwr.common.NDArray>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
"alias of :py:class:`~numpy.ndarray`\\ [:py:obj:`~typing.Any`, "
":py:class:`~numpy.dtype`\\ [:py:obj:`~typing.Any`]]"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ":py:obj:`NDArrays <flwr.common.NDArrays>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
"alias of :py:class:`list`\\ [:py:class:`~numpy.ndarray`\\ "
"[:py:obj:`~typing.Any`, :py:class:`~numpy.dtype`\\ "
"[:py:obj:`~typing.Any`]]]"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`Parameters <flwr.common.Parameters>`\\ \\(tensors\\, "
"tensor\\_type\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.Parameters:1 of
msgid "Model parameters."
msgstr "Paramètres du modèle."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`ParametersRecord <flwr.common.ParametersRecord>`\\ "
"\\(\\[array\\_dict\\, keep\\_input\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.record.parametersrecord.ParametersRecord:1 of
#, fuzzy
msgid "Parameters record."
msgstr "Paramètres du modèle."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#, fuzzy
msgid ":py:obj:`Properties <flwr.common.Properties>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`ReconnectIns <flwr.common.ReconnectIns>`\\ \\(seconds\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.ReconnectIns:1 of
msgid "ReconnectIns message from server to client."
msgstr "Message de reconnexion du serveur au client."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`RecordSet <flwr.common.RecordSet>`\\ "
"\\(\\[parameters\\_records\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.record.recordset.RecordSet:1 of
msgid "RecordSet stores groups of parameters, metrics and configs."
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ""
":py:obj:`ServerMessage <flwr.common.ServerMessage>`\\ "
"\\(\\[get\\_properties\\_ins\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.ServerMessage:1 of
msgid "ServerMessage is a container used to hold one instruction message."
msgstr ""
"ServerMessage est un conteneur utilisé pour contenir un message "
"d'instruction."

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
msgid ":py:obj:`Status <flwr.common.Status>`\\ \\(code\\, message\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.rst:68:<autosummary>:1
#: flwr.common.typing.Status:1 of
msgid "Client status."
msgstr "Statut du client."

#: ../../source/ref-api/flwr.common.Array.rst:2
msgid "Array"
msgstr ""

#: flwr.common.record.parametersrecord.Array:3 of
msgid ""
"A dataclass containing serialized data from an array-like or tensor-like "
"object along with some metadata about it."
msgstr ""

#: flwr.common.record.parametersrecord.Array:6 of
msgid ""
"A string representing the data type of the serialised object (e.g. "
"`np.float32`)"
msgstr ""

#: flwr.common.record.parametersrecord.Array:8 of
msgid ""
"A list representing the shape of the unserialized array-like object. This"
" is used to deserialize the data (depending on the serialization method) "
"or simply as a metadata field."
msgstr ""

#: flwr.common.record.parametersrecord.Array:12 of
msgid ""
"A string indicating the type of serialisation mechanism used to generate "
"the bytes in `data` from an array-like or tensor-like object."
msgstr ""

#: flwr.common.record.parametersrecord.Array:15 of
msgid "A buffer of bytes containing the data."
msgstr ""

#: ../../source/ref-api/flwr.common.Array.rst:26:<autosummary>:1
#, fuzzy
msgid ":py:obj:`numpy <flwr.common.Array.numpy>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.Array.rst:26:<autosummary>:1
#: flwr.common.record.parametersrecord.Array.numpy:1 of
#, fuzzy
msgid "Return the array as a NumPy array."
msgstr "renvoie le poids du modèle sous la forme d'une liste de ndarrays NumPy"

#: flwr.common.record.parametersrecord.Array.numpy:1:<autosummary>:1 of
msgid ":py:obj:`dtype <flwr.common.Array.dtype>`\\"
msgstr ""

#: flwr.common.record.parametersrecord.Array.numpy:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`shape <flwr.common.Array.shape>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.record.parametersrecord.Array.numpy:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`stype <flwr.common.Array.stype>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.record.parametersrecord.Array.numpy:1:<autosummary>:1 of
msgid ":py:obj:`data <flwr.common.Array.data>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ClientMessage.rst:2
#, fuzzy
msgid "ClientMessage"
msgstr "Côté client"

#: ../../source/ref-api/flwr.common.ClientMessage.rst:31:<autosummary>:1
msgid ":py:obj:`evaluate_res <flwr.common.ClientMessage.evaluate_res>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ClientMessage.rst:31:<autosummary>:1
msgid ":py:obj:`fit_res <flwr.common.ClientMessage.fit_res>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ClientMessage.rst:31:<autosummary>:1
msgid ""
":py:obj:`get_parameters_res "
"<flwr.common.ClientMessage.get_parameters_res>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ClientMessage.rst:31:<autosummary>:1
msgid ""
":py:obj:`get_properties_res "
"<flwr.common.ClientMessage.get_properties_res>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:2
msgid "Code"
msgstr ""

#: flwr.common.typing.Code:1 of
msgid "Bases: :py:class:`~enum.Enum`"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:26:<autosummary>:1
msgid ":py:obj:`OK <flwr.common.Code.OK>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:26:<autosummary>:1
msgid ""
":py:obj:`GET_PROPERTIES_NOT_IMPLEMENTED "
"<flwr.common.Code.GET_PROPERTIES_NOT_IMPLEMENTED>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:26:<autosummary>:1
msgid ""
":py:obj:`GET_PARAMETERS_NOT_IMPLEMENTED "
"<flwr.common.Code.GET_PARAMETERS_NOT_IMPLEMENTED>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:26:<autosummary>:1
msgid ":py:obj:`FIT_NOT_IMPLEMENTED <flwr.common.Code.FIT_NOT_IMPLEMENTED>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Code.rst:26:<autosummary>:1
msgid ""
":py:obj:`EVALUATE_NOT_IMPLEMENTED "
"<flwr.common.Code.EVALUATE_NOT_IMPLEMENTED>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Config.rst:2
#, fuzzy
msgid "Config"
msgstr "Configurer les clients"

#: ../../source/ref-api/flwr.common.ConfigsRecord.rst:2
#, fuzzy
msgid "ConfigsRecord"
msgstr "Configurer les clients"

#: flwr.common.record.configsrecord.ConfigsRecord:1 of
msgid ""
"Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
"[:py:class:`str`, :py:class:`int` | :py:class:`float` | :py:class:`str` |"
" :py:class:`bytes` | :py:class:`bool` | :py:class:`list`\\ "
"[:py:class:`int`] | :py:class:`list`\\ [:py:class:`float`] | "
":py:class:`list`\\ [:py:class:`str`] | :py:class:`list`\\ "
"[:py:class:`bytes`] | :py:class:`list`\\ [:py:class:`bool`]]"
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:3 of
msgid ""
"A :code:`ConfigsRecord` is a Python dictionary designed to ensure that "
"each key-value pair adheres to specified data types. A "
":code:`ConfigsRecord` is one of the types of records that a "
"`flwr.common.RecordSet <flwr.common.RecordSet.html#recordset>`_ supports "
"and can therefore be used to construct :code:`common.Message` objects."
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:9 of
msgid ""
"A dictionary that stores basic types (i.e. `str`, `int`, `float`, `bytes`"
" as defined in `ConfigsScalar`) and lists of such types (see "
"`ConfigsScalarList`)."
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:13 of
msgid ""
"A boolean indicating whether config passed should be deleted from the "
"input dictionary immediately after adding them to the record. When set to"
" True, the data is duplicated in memory. If memory is a concern, set it "
"to False."
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:21 of
msgid ""
"The usage of a :code:`ConfigsRecord` is envisioned for sending "
"configuration values telling the target node how to perform a certain "
"action (e.g. train/evaluate a model ). You can use standard Python built-"
"in types such as :code:`float`, :code:`str` , :code:`bytes`. All types "
"allowed are defined in :code:`flwr.common.ConfigsRecordValues`. While "
"lists are supported, we encourage you to use a :code:`ParametersRecord` "
"instead if these are of high dimensionality."
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:29 of
msgid ""
"Let's see some examples of how to construct a :code:`ConfigsRecord` from "
"scratch:"
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord:42 of
msgid ""
"Just like the other types of records in a :code:`flwr.common.RecordSet`, "
"types are enforced. If you need to add a custom data structure or object,"
" we recommend to serialise it into bytes and save it as such (bytes are "
"allowed in a :code:`ConfigsRecord`)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`clear <flwr.common.ConfigsRecord.clear>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`count_bytes <flwr.common.ConfigsRecord.count_bytes>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1
#: flwr.common.record.configsrecord.ConfigsRecord.count_bytes:1
#: flwr.common.record.metricsrecord.MetricsRecord.count_bytes:1
#: flwr.common.record.parametersrecord.ParametersRecord.count_bytes:1 of
msgid "Return number of Bytes stored in this object."
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`get <flwr.common.ConfigsRecord.get>`\\ \\(k\\[\\,d\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`items <flwr.common.ConfigsRecord.items>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`keys <flwr.common.ConfigsRecord.keys>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`pop <flwr.common.ConfigsRecord.pop>`\\ \\(k\\[\\,d\\]\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1
#: collections.abc.MutableMapping.pop:1 of
msgid "If key is not found, d is returned if given, otherwise KeyError is raised."
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`popitem <flwr.common.ConfigsRecord.popitem>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1
#: collections.abc.MutableMapping.popitem:1 of
msgid "as a 2-tuple; but raise KeyError if D is empty."
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`setdefault <flwr.common.ConfigsRecord.setdefault>`\\ "
"\\(k\\[\\,d\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ""
":py:obj:`update <flwr.common.ConfigsRecord.update>`\\ \\(\\[E\\, "
"\\]\\*\\*F\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1
#: collections.abc.MutableMapping.update:1 of
msgid ""
"If E present and has a .keys() method, does:     for k in E: D[k] = E[k] "
"If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = "
"v In either case, this is followed by: for k, v in F.items(): D[k] = v"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`values <flwr.common.ConfigsRecord.values>`\\ \\(\\)"
msgstr ""

#: flwr.common.record.configsrecord.ConfigsRecord.count_bytes:3 of
msgid "This function counts booleans as occupying 1 Byte."
msgstr ""

#: ../../source/ref-api/flwr.common.Context.rst:2
msgid "Context"
msgstr ""

#: flwr.common.context.Context:3 of
msgid "The ID that identifies the run."
msgstr ""

#: flwr.common.context.Context:5 of
msgid "The ID that identifies the node."
msgstr ""

#: flwr.common.context.Context:7 of
msgid ""
"A config (key/value mapping) unique to the node and independent of the "
"`run_config`. This config persists across all runs this node participates"
" in."
msgstr ""

#: flwr.common.context.Context:10 of
msgid ""
"Holds records added by the entity in a given `run_id` and that will stay "
"local. This means that the data it holds will never leave the system it's"
" running from. This can be used as an intermediate storage or scratchpad "
"when executing mods. It can also be used as a memory to access at "
"different points during the lifecycle of this entity (e.g. across "
"multiple rounds)"
msgstr ""

#: flwr.common.context.Context:17 of
msgid ""
"A config (key/value mapping) held by the entity in a given `run_id` and "
"that will stay local. It can be used at any point during the lifecycle of"
" this entity (e.g. across multiple rounds)"
msgstr ""

#: ../../source/ref-api/flwr.common.Context.rst:32:<autosummary>:1
#, fuzzy
msgid ":py:obj:`run_id <flwr.common.Context.run_id>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.Context.rst:32:<autosummary>:1
#, fuzzy
msgid ":py:obj:`node_id <flwr.common.Context.node_id>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.Context.rst:32:<autosummary>:1
#, fuzzy
msgid ":py:obj:`node_config <flwr.common.Context.node_config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.Context.rst:32:<autosummary>:1
#, fuzzy
msgid ":py:obj:`state <flwr.common.Context.state>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.Context.rst:32:<autosummary>:1
#, fuzzy
msgid ":py:obj:`run_config <flwr.common.Context.run_config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.DisconnectRes.rst:2
msgid "DisconnectRes"
msgstr ""

#: ../../source/ref-api/flwr.common.DisconnectRes.rst:28:<autosummary>:1
msgid ":py:obj:`reason <flwr.common.DisconnectRes.reason>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Error.rst:2
msgid "Error"
msgstr ""

#: flwr.common.message.Error:3 of
msgid "An identifier for the error."
msgstr ""

#: flwr.common.message.Error:5 of
msgid "A reason for why the error arose (e.g. an exception stack-trace)"
msgstr ""

#: flwr.common.Error.code:1:<autosummary>:1 of
msgid ":py:obj:`code <flwr.common.Error.code>`\\"
msgstr ""

#: flwr.common.Error.code:1 flwr.common.Error.code:1:<autosummary>:1 of
msgid "Error code."
msgstr ""

#: flwr.common.Error.code:1:<autosummary>:1 of
msgid ":py:obj:`reason <flwr.common.Error.reason>`\\"
msgstr ""

#: flwr.common.Error.code:1:<autosummary>:1 flwr.common.Error.reason:1 of
msgid "Reason reported about the error."
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateIns.rst:2
#, fuzzy
msgid "EvaluateIns"
msgstr "Explications"

#: ../../source/ref-api/flwr.common.EvaluateIns.rst:29:<autosummary>:1
msgid ":py:obj:`parameters <flwr.common.EvaluateIns.parameters>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateIns.rst:29:<autosummary>:1
msgid ":py:obj:`config <flwr.common.EvaluateIns.config>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateRes.rst:2
msgid "EvaluateRes"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateRes.rst:31:<autosummary>:1
msgid ":py:obj:`status <flwr.common.EvaluateRes.status>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateRes.rst:31:<autosummary>:1
msgid ":py:obj:`loss <flwr.common.EvaluateRes.loss>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateRes.rst:31:<autosummary>:1
msgid ":py:obj:`num_examples <flwr.common.EvaluateRes.num_examples>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EvaluateRes.rst:31:<autosummary>:1
msgid ":py:obj:`metrics <flwr.common.EvaluateRes.metrics>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:2
msgid "EventType"
msgstr ""

#: flwr.common.telemetry.EventType:1 of
msgid "Bases: :py:class:`str`, :py:class:`~enum.Enum`"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`encode <flwr.common.EventType.encode>`\\ \\(\\[encoding\\, "
"errors\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.encode:1 of
msgid "Encode the string using the codec registered for encoding."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`replace <flwr.common.EventType.replace>`\\ \\(old\\, new\\[\\, "
"count\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.replace:1 of
msgid "Return a copy with all occurrences of substring old replaced by new."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`split <flwr.common.EventType.split>`\\ \\(\\[sep\\, "
"maxsplit\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.rsplit:1 flwr.common.EventType.split:1 of
msgid ""
"Return a list of the substrings in the string, using sep as the separator"
" string."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`rsplit <flwr.common.EventType.rsplit>`\\ \\(\\[sep\\, "
"maxsplit\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`join <flwr.common.EventType.join>`\\ \\(iterable\\, \\/\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.join:1 of
msgid "Concatenate any number of strings."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`capitalize <flwr.common.EventType.capitalize>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.capitalize:1 of
msgid "Return a capitalized version of the string."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`casefold <flwr.common.EventType.casefold>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.casefold:1 of
msgid "Return a version of the string suitable for caseless comparisons."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`title <flwr.common.EventType.title>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.title:1 of
msgid "Return a version of the string where each word is titlecased."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`center <flwr.common.EventType.center>`\\ \\(width\\[\\, "
"fillchar\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.center:1 of
msgid "Return a centered string of length width."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`count <flwr.common.EventType.count>`\\ \\(sub\\[\\, start\\[\\, "
"end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
"Return the number of non-overlapping occurrences of substring sub in "
"string S[start:end]."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`expandtabs <flwr.common.EventType.expandtabs>`\\ "
"\\(\\[tabsize\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.expandtabs:1 of
msgid "Return a copy where all tab characters are expanded using spaces."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`find <flwr.common.EventType.find>`\\ \\(sub\\[\\, start\\[\\, "
"end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
"Return the lowest index in S where substring sub is found, such that sub "
"is contained within S[start:end]."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`partition <flwr.common.EventType.partition>`\\ \\(sep\\, \\/\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.partition:1 flwr.common.EventType.rpartition:1 of
msgid "Partition the string into three parts using the given separator."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`index <flwr.common.EventType.index>`\\ \\(sub\\[\\, start\\[\\, "
"end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`ljust <flwr.common.EventType.ljust>`\\ \\(width\\[\\, "
"fillchar\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.ljust:1 of
msgid "Return a left-justified string of length width."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`lower <flwr.common.EventType.lower>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.lower:1 of
msgid "Return a copy of the string converted to lowercase."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`lstrip <flwr.common.EventType.lstrip>`\\ \\(\\[chars\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.lstrip:1 of
msgid "Return a copy of the string with leading whitespace removed."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`rfind <flwr.common.EventType.rfind>`\\ \\(sub\\[\\, start\\[\\, "
"end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
"Return the highest index in S where substring sub is found, such that sub"
" is contained within S[start:end]."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`rindex <flwr.common.EventType.rindex>`\\ \\(sub\\[\\, "
"start\\[\\, end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`rjust <flwr.common.EventType.rjust>`\\ \\(width\\[\\, "
"fillchar\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.rjust:1 of
msgid "Return a right-justified string of length width."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`rstrip <flwr.common.EventType.rstrip>`\\ \\(\\[chars\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.rstrip:1 of
msgid "Return a copy of the string with trailing whitespace removed."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`rpartition <flwr.common.EventType.rpartition>`\\ \\(sep\\, \\/\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`splitlines <flwr.common.EventType.splitlines>`\\ "
"\\(\\[keepends\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.splitlines:1 of
msgid "Return a list of the lines in the string, breaking at line boundaries."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`strip <flwr.common.EventType.strip>`\\ \\(\\[chars\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.strip:1 of
msgid "Return a copy of the string with leading and trailing whitespace removed."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`swapcase <flwr.common.EventType.swapcase>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.swapcase:1 of
msgid ""
"Convert uppercase characters to lowercase and lowercase characters to "
"uppercase."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`translate <flwr.common.EventType.translate>`\\ \\(table\\, \\/\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.translate:1 of
msgid "Replace each character in the string using the given translation table."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`upper <flwr.common.EventType.upper>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.upper:1 of
msgid "Return a copy of the string converted to uppercase."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`startswith <flwr.common.EventType.startswith>`\\ \\(prefix\\[\\,"
" start\\[\\, end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid "Return True if S starts with the specified prefix, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`endswith <flwr.common.EventType.endswith>`\\ \\(suffix\\[\\, "
"start\\[\\, end\\]\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid "Return True if S ends with the specified suffix, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`removeprefix <flwr.common.EventType.removeprefix>`\\ "
"\\(prefix\\, \\/\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.removeprefix:1 of
msgid "Return a str with the given prefix string removed if present."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`removesuffix <flwr.common.EventType.removesuffix>`\\ "
"\\(suffix\\, \\/\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.removesuffix:1 of
msgid "Return a str with the given suffix string removed if present."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isascii <flwr.common.EventType.isascii>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isascii:1 of
msgid "Return True if all characters in the string are ASCII, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`islower <flwr.common.EventType.islower>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.islower:1 of
msgid "Return True if the string is a lowercase string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isupper <flwr.common.EventType.isupper>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isupper:1 of
msgid "Return True if the string is an uppercase string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`istitle <flwr.common.EventType.istitle>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.istitle:1 of
msgid "Return True if the string is a title-cased string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isspace <flwr.common.EventType.isspace>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isspace:1 of
msgid "Return True if the string is a whitespace string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isdecimal <flwr.common.EventType.isdecimal>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isdecimal:1 of
msgid "Return True if the string is a decimal string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isdigit <flwr.common.EventType.isdigit>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isdigit:1 of
msgid "Return True if the string is a digit string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isnumeric <flwr.common.EventType.isnumeric>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isnumeric:1 of
msgid "Return True if the string is a numeric string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isalpha <flwr.common.EventType.isalpha>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isalpha:1 of
msgid "Return True if the string is an alphabetic string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isalnum <flwr.common.EventType.isalnum>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isalnum:1 of
msgid "Return True if the string is an alpha-numeric string, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isidentifier <flwr.common.EventType.isidentifier>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isidentifier:1 of
msgid "Return True if the string is a valid Python identifier, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`isprintable <flwr.common.EventType.isprintable>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.isprintable:1 of
msgid "Return True if the string is printable, False otherwise."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`zfill <flwr.common.EventType.zfill>`\\ \\(width\\, \\/\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.zfill:1 of
msgid ""
"Pad a numeric string with zeros on the left, to fill a field of the given"
" width."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid ""
":py:obj:`format <flwr.common.EventType.format>`\\ \\(\\*args\\, "
"\\*\\*kwargs\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid "Return a formatted version of S, using substitutions from args and kwargs."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`format_map <flwr.common.EventType.format_map>`\\ \\(mapping\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
msgid "Return a formatted version of S, using substitutions from mapping."
msgstr ""

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#, fuzzy
msgid ":py:obj:`maketrans <flwr.common.EventType.maketrans>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.common.EventType.rst:163:<autosummary>:1
#: flwr.common.EventType.maketrans:1 of
msgid "Return a translation table usable for str.translate()."
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ":py:obj:`PING <flwr.common.EventType.PING>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ":py:obj:`START_CLIENT_ENTER <flwr.common.EventType.START_CLIENT_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ":py:obj:`START_CLIENT_LEAVE <flwr.common.EventType.START_CLIENT_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ":py:obj:`START_SERVER_ENTER <flwr.common.EventType.START_SERVER_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ":py:obj:`START_SERVER_LEAVE <flwr.common.EventType.START_SERVER_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`START_SIMULATION_ENTER "
"<flwr.common.EventType.START_SIMULATION_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`START_SIMULATION_LEAVE "
"<flwr.common.EventType.START_SIMULATION_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`CLI_FLOWER_SIMULATION_ENTER "
"<flwr.common.EventType.CLI_FLOWER_SIMULATION_ENTER>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`CLI_FLOWER_SIMULATION_LEAVE "
"<flwr.common.EventType.CLI_FLOWER_SIMULATION_LEAVE>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`PYTHON_API_RUN_SIMULATION_ENTER "
"<flwr.common.EventType.PYTHON_API_RUN_SIMULATION_ENTER>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`PYTHON_API_RUN_SIMULATION_LEAVE "
"<flwr.common.EventType.PYTHON_API_RUN_SIMULATION_LEAVE>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_SUPERLINK_ENTER "
"<flwr.common.EventType.RUN_SUPERLINK_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_SUPERLINK_LEAVE "
"<flwr.common.EventType.RUN_SUPERLINK_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_SUPERNODE_ENTER "
"<flwr.common.EventType.RUN_SUPERNODE_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`RUN_SUPERNODE_LEAVE "
"<flwr.common.EventType.RUN_SUPERNODE_LEAVE>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_SERVER_APP_ENTER "
"<flwr.common.EventType.RUN_SERVER_APP_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_SERVER_APP_LEAVE "
"<flwr.common.EventType.RUN_SERVER_APP_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_CLIENT_APP_ENTER "
"<flwr.common.EventType.RUN_CLIENT_APP_ENTER>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:1:<autosummary>:1 of
msgid ""
":py:obj:`RUN_CLIENT_APP_LEAVE "
"<flwr.common.EventType.RUN_CLIENT_APP_LEAVE>`\\"
msgstr ""

#: flwr.common.EventType.capitalize:3 of
msgid ""
"More specifically, make the first character have upper case and the rest "
"lower case."
msgstr ""

#: flwr.common.EventType.center:3 flwr.common.EventType.ljust:3
#: flwr.common.EventType.rjust:3 of
msgid "Padding is done using the specified fill character (default is a space)."
msgstr ""

#: flwr.common.EventType.count:1 of
msgid ""
"Return the number of non-overlapping occurrences of substring sub in "
"string S[start:end].  Optional arguments start and end are interpreted as"
" in slice notation."
msgstr ""

#: flwr.common.EventType.encode:3 of
msgid "encoding"
msgstr ""

#: flwr.common.EventType.encode:4 of
msgid "The encoding in which to encode the string."
msgstr ""

#: flwr.common.EventType.encode:9 of
msgid "errors"
msgstr ""

#: flwr.common.EventType.encode:6 of
msgid ""
"The error handling scheme to use for encoding errors. The default is "
"'strict' meaning that encoding errors raise a UnicodeEncodeError.  Other "
"possible values are 'ignore', 'replace' and 'xmlcharrefreplace' as well "
"as any other name registered with codecs.register_error that can handle "
"UnicodeEncodeErrors."
msgstr ""

#: flwr.common.EventType.endswith:1 of
msgid ""
"Return True if S ends with the specified suffix, False otherwise. With "
"optional start, test S beginning at that position. With optional end, "
"stop comparing S at that position. suffix can also be a tuple of strings "
"to try."
msgstr ""

#: flwr.common.EventType.expandtabs:3 of
msgid "If tabsize is not given, a tab size of 8 characters is assumed."
msgstr ""

#: flwr.common.EventType.find:1 flwr.common.EventType.index:1 of
msgid ""
"Return the lowest index in S where substring sub is found, such that sub "
"is contained within S[start:end].  Optional arguments start and end are "
"interpreted as in slice notation."
msgstr ""

#: flwr.common.EventType.find:5 flwr.common.EventType.rfind:5 of
msgid "Return -1 on failure."
msgstr ""

#: flwr.common.EventType.format:1 of
msgid ""
"Return a formatted version of S, using substitutions from args and "
"kwargs. The substitutions are identified by braces ('{' and '}')."
msgstr ""

#: flwr.common.EventType.format_map:1 of
msgid ""
"Return a formatted version of S, using substitutions from mapping. The "
"substitutions are identified by braces ('{' and '}')."
msgstr ""

#: flwr.common.EventType.index:5 flwr.common.EventType.rindex:5 of
msgid "Raises ValueError when the substring is not found."
msgstr ""

#: flwr.common.EventType.isalnum:3 of
msgid ""
"A string is alpha-numeric if all characters in the string are alpha-"
"numeric and there is at least one character in the string."
msgstr ""

#: flwr.common.EventType.isalpha:3 of
msgid ""
"A string is alphabetic if all characters in the string are alphabetic and"
" there is at least one character in the string."
msgstr ""

#: flwr.common.EventType.isascii:3 of
msgid ""
"ASCII characters have code points in the range U+0000-U+007F. Empty "
"string is ASCII too."
msgstr ""

#: flwr.common.EventType.isdecimal:3 of
msgid ""
"A string is a decimal string if all characters in the string are decimal "
"and there is at least one character in the string."
msgstr ""

#: flwr.common.EventType.isdigit:3 of
msgid ""
"A string is a digit string if all characters in the string are digits and"
" there is at least one character in the string."
msgstr ""

#: flwr.common.EventType.isidentifier:3 of
msgid ""
"Call keyword.iskeyword(s) to test whether string s is a reserved "
"identifier, such as \"def\" or \"class\"."
msgstr ""

#: flwr.common.EventType.islower:3 of
msgid ""
"A string is lowercase if all cased characters in the string are lowercase"
" and there is at least one cased character in the string."
msgstr ""

#: flwr.common.EventType.isnumeric:3 of
msgid ""
"A string is numeric if all characters in the string are numeric and there"
" is at least one character in the string."
msgstr ""

#: flwr.common.EventType.isprintable:3 of
msgid ""
"A string is printable if all of its characters are considered printable "
"in repr() or if it is empty."
msgstr ""

#: flwr.common.EventType.isspace:3 of
msgid ""
"A string is whitespace if all characters in the string are whitespace and"
" there is at least one character in the string."
msgstr ""

#: flwr.common.EventType.istitle:3 of
msgid ""
"In a title-cased string, upper- and title-case characters may only follow"
" uncased characters and lowercase characters only cased ones."
msgstr ""

#: flwr.common.EventType.isupper:3 of
msgid ""
"A string is uppercase if all cased characters in the string are uppercase"
" and there is at least one cased character in the string."
msgstr ""

#: flwr.common.EventType.join:3 of
msgid ""
"The string whose method is called is inserted in between each given "
"string. The result is returned as a new string."
msgstr ""

#: flwr.common.EventType.join:6 of
msgid "Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'"
msgstr ""

#: flwr.common.EventType.lstrip:3 flwr.common.EventType.rstrip:3
#: flwr.common.EventType.strip:3 of
msgid "If chars is given and not None, remove characters in chars instead."
msgstr ""

#: flwr.common.EventType.maketrans:3 of
msgid ""
"If there is only one argument, it must be a dictionary mapping Unicode "
"ordinals (integers) or characters to Unicode ordinals, strings or None. "
"Character keys will be then converted to ordinals. If there are two "
"arguments, they must be strings of equal length, and in the resulting "
"dictionary, each character in x will be mapped to the character at the "
"same position in y. If there is a third argument, it must be a string, "
"whose characters will be mapped to None in the result."
msgstr ""

#: flwr.common.EventType.partition:3 of
msgid ""
"This will search for the separator in the string.  If the separator is "
"found, returns a 3-tuple containing the part before the separator, the "
"separator itself, and the part after it."
msgstr ""

#: flwr.common.EventType.partition:7 of
msgid ""
"If the separator is not found, returns a 3-tuple containing the original "
"string and two empty strings."
msgstr ""

#: flwr.common.EventType.removeprefix:3 of
msgid ""
"If the string starts with the prefix string, return string[len(prefix):]."
" Otherwise, return a copy of the original string."
msgstr ""

#: flwr.common.EventType.removesuffix:3 of
msgid ""
"If the string ends with the suffix string and that suffix is not empty, "
"return string[:-len(suffix)]. Otherwise, return a copy of the original "
"string."
msgstr ""

#: flwr.common.EventType.replace:5 of
msgid "count"
msgstr ""

#: flwr.common.EventType.replace:4 of
msgid ""
"Maximum number of occurrences to replace. -1 (the default value) means "
"replace all occurrences."
msgstr ""

#: flwr.common.EventType.replace:7 of
msgid ""
"If the optional argument count is given, only the first count occurrences"
" are replaced."
msgstr ""

#: flwr.common.EventType.rfind:1 flwr.common.EventType.rindex:1 of
msgid ""
"Return the highest index in S where substring sub is found, such that sub"
" is contained within S[start:end].  Optional arguments start and end are "
"interpreted as in slice notation."
msgstr ""

#: flwr.common.EventType.rpartition:3 of
msgid ""
"This will search for the separator in the string, starting at the end. If"
" the separator is found, returns a 3-tuple containing the part before the"
" separator, the separator itself, and the part after it."
msgstr ""

#: flwr.common.EventType.rpartition:7 of
msgid ""
"If the separator is not found, returns a 3-tuple containing two empty "
"strings and the original string."
msgstr ""

#: flwr.common.EventType.rsplit:7 flwr.common.EventType.split:7 of
msgid "sep"
msgstr ""

#: flwr.common.EventType.rsplit:4 flwr.common.EventType.split:4 of
msgid "The separator used to split the string."
msgstr ""

#: flwr.common.EventType.rsplit:6 flwr.common.EventType.split:6 of
msgid ""
"When set to None (the default value), will split on any whitespace "
"character (including \\\\n \\\\r \\\\t \\\\f and spaces) and will discard"
" empty strings from the result."
msgstr ""

#: flwr.common.EventType.rsplit:11 flwr.common.EventType.split:11 of
msgid "maxsplit"
msgstr ""

#: flwr.common.EventType.rsplit:10 flwr.common.EventType.split:10 of
msgid ""
"Maximum number of splits (starting from the left). -1 (the default value)"
" means no limit."
msgstr ""

#: flwr.common.EventType.rsplit:13 of
msgid "Splitting starts at the end of the string and works to the front."
msgstr ""

#: flwr.common.EventType.split:13 of
msgid ""
"Note, str.split() is mainly useful for data that has been intentionally "
"delimited.  With natural text that includes punctuation, consider using "
"the regular expression module."
msgstr ""

#: flwr.common.EventType.splitlines:3 of
msgid ""
"Line breaks are not included in the resulting list unless keepends is "
"given and true."
msgstr ""

#: flwr.common.EventType.startswith:1 of
msgid ""
"Return True if S starts with the specified prefix, False otherwise. With "
"optional start, test S beginning at that position. With optional end, "
"stop comparing S at that position. prefix can also be a tuple of strings "
"to try."
msgstr ""

#: flwr.common.EventType.title:3 of
msgid ""
"More specifically, words start with uppercased characters and all "
"remaining cased characters have lower case."
msgstr ""

#: flwr.common.EventType.translate:5 of
#, fuzzy
msgid "table"
msgstr "Database"

#: flwr.common.EventType.translate:4 of
msgid ""
"Translation table, which must be a mapping of Unicode ordinals to Unicode"
" ordinals, strings, or None."
msgstr ""

#: flwr.common.EventType.translate:7 of
msgid ""
"The table must implement lookup/indexing via __getitem__, for instance a "
"dictionary or list.  If this operation raises LookupError, the character "
"is left untouched.  Characters mapped to None are deleted."
msgstr ""

#: flwr.common.EventType.zfill:3 of
msgid "The string is never truncated."
msgstr ""

#: ../../source/ref-api/flwr.common.FitIns.rst:2
msgid "FitIns"
msgstr ""

#: ../../source/ref-api/flwr.common.FitIns.rst:29:<autosummary>:1
msgid ":py:obj:`parameters <flwr.common.FitIns.parameters>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.FitIns.rst:29:<autosummary>:1
msgid ":py:obj:`config <flwr.common.FitIns.config>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.FitRes.rst:2
msgid "FitRes"
msgstr ""

#: ../../source/ref-api/flwr.common.FitRes.rst:31:<autosummary>:1
msgid ":py:obj:`status <flwr.common.FitRes.status>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.FitRes.rst:31:<autosummary>:1
msgid ":py:obj:`parameters <flwr.common.FitRes.parameters>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.FitRes.rst:31:<autosummary>:1
msgid ":py:obj:`num_examples <flwr.common.FitRes.num_examples>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.FitRes.rst:31:<autosummary>:1
msgid ":py:obj:`metrics <flwr.common.FitRes.metrics>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetParametersIns.rst:2
#, fuzzy
msgid "GetParametersIns"
msgstr ":code:`get_parameters`"

#: ../../source/ref-api/flwr.common.GetParametersIns.rst:28:<autosummary>:1
msgid ":py:obj:`config <flwr.common.GetParametersIns.config>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetParametersRes.rst:2
#, fuzzy
msgid "GetParametersRes"
msgstr ":code:`get_parameters`"

#: ../../source/ref-api/flwr.common.GetParametersRes.rst:29:<autosummary>:1
msgid ":py:obj:`status <flwr.common.GetParametersRes.status>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetParametersRes.rst:29:<autosummary>:1
msgid ":py:obj:`parameters <flwr.common.GetParametersRes.parameters>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetPropertiesIns.rst:2
msgid "GetPropertiesIns"
msgstr ""

#: ../../source/ref-api/flwr.common.GetPropertiesIns.rst:28:<autosummary>:1
msgid ":py:obj:`config <flwr.common.GetPropertiesIns.config>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetPropertiesRes.rst:2
msgid "GetPropertiesRes"
msgstr ""

#: ../../source/ref-api/flwr.common.GetPropertiesRes.rst:29:<autosummary>:1
msgid ":py:obj:`status <flwr.common.GetPropertiesRes.status>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.GetPropertiesRes.rst:29:<autosummary>:1
msgid ":py:obj:`properties <flwr.common.GetPropertiesRes.properties>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:2
#, fuzzy
msgid "Message"
msgstr "Côté serveur"

#: flwr.common.Message.content:1:<autosummary>:1 flwr.common.Message.metadata:1
#: flwr.common.message.Message:3 of
msgid "A dataclass including information about the message to be executed."
msgstr ""

#: flwr.common.message.Message:5 of
msgid ""
"Holds records either sent by another entity (e.g. sent by the server-side"
" logic to a client, or vice-versa) or that will be sent to it."
msgstr ""

#: flwr.common.message.Message:8 of
msgid ""
"A dataclass that captures information about an error that took place when"
" processing another message."
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
msgid ""
":py:obj:`create_error_reply <flwr.common.Message.create_error_reply>`\\ "
"\\(error\\[\\, ttl\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
#: flwr.common.message.Message.create_error_reply:1 of
msgid "Construct a reply message indicating an error happened."
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
msgid ""
":py:obj:`create_reply <flwr.common.Message.create_reply>`\\ "
"\\(content\\[\\, ttl\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
#: flwr.common.message.Message.create_reply:1 of
msgid "Create a reply to this message with specified content and TTL."
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
msgid ":py:obj:`has_content <flwr.common.Message.has_content>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
#: flwr.common.message.Message.has_content:1 of
msgid "Return True if message has content, else False."
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
msgid ":py:obj:`has_error <flwr.common.Message.has_error>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.Message.rst:35:<autosummary>:1
#: flwr.common.message.Message.has_error:1 of
msgid "Return True if message has an error, else False."
msgstr ""

#: flwr.common.Message.content:1:<autosummary>:1 of
msgid ":py:obj:`content <flwr.common.Message.content>`\\"
msgstr ""

#: flwr.common.Message.content:1 flwr.common.Message.content:1:<autosummary>:1
#: of
#, fuzzy
msgid "The content of this message."
msgstr "Évaluer la réponse d'un client."

#: flwr.common.Message.content:1:<autosummary>:1 of
msgid ":py:obj:`error <flwr.common.Message.error>`\\"
msgstr ""

#: flwr.common.Message.content:1:<autosummary>:1 flwr.common.Message.error:1 of
msgid "Error captured by this message."
msgstr ""

#: flwr.common.Message.content:1:<autosummary>:1 of
msgid ":py:obj:`metadata <flwr.common.Message.metadata>`\\"
msgstr ""

#: flwr.common.message.Message.create_error_reply:3 of
msgid "The error that was encountered."
msgstr ""

#: flwr.common.message.Message.create_error_reply:5
#: flwr.common.message.Message.create_reply:9 of
msgid ""
"Time-to-live for this message in seconds. If unset, it will be set based "
"on the remaining time for the received message before it expires. This "
"follows the equation:  ttl = msg.meta.ttl - (reply.meta.created_at - "
"msg.meta.created_at)"
msgstr ""

#: flwr.common.message.Message.create_error_reply:5
#: flwr.common.message.Message.create_reply:9 of
msgid ""
"Time-to-live for this message in seconds. If unset, it will be set based "
"on the remaining time for the received message before it expires. This "
"follows the equation:"
msgstr ""

#: flwr.common.message.Message.create_error_reply:9
#: flwr.common.message.Message.create_reply:13 of
msgid "ttl = msg.meta.ttl - (reply.meta.created_at - msg.meta.created_at)"
msgstr ""

#: flwr.common.message.Message.create_error_reply:12 of
msgid "**message** -- A Message containing only the relevant error and metadata."
msgstr ""

#: flwr.common.message.Message.create_reply:3 of
msgid ""
"The method generates a new `Message` as a reply to this message. It "
"inherits 'run_id', 'src_node_id', 'dst_node_id', and 'message_type' from "
"this message and sets 'reply_to_message' to the ID of this message."
msgstr ""

#: flwr.common.message.Message.create_reply:7 of
msgid "The content for the reply message."
msgstr ""

#: flwr.common.message.Message.create_reply:16 of
msgid "A new `Message` instance representing the reply."
msgstr ""

#: ../../source/ref-api/flwr.common.MessageType.rst:2
msgid "MessageType"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageType.rst:30:<autosummary>:1
msgid ":py:obj:`EVALUATE <flwr.common.MessageType.EVALUATE>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageType.rst:30:<autosummary>:1
msgid ":py:obj:`QUERY <flwr.common.MessageType.QUERY>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageType.rst:30:<autosummary>:1
msgid ":py:obj:`TRAIN <flwr.common.MessageType.TRAIN>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageTypeLegacy.rst:2
msgid "MessageTypeLegacy"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageTypeLegacy.rst:29:<autosummary>:1
msgid ":py:obj:`GET_PARAMETERS <flwr.common.MessageTypeLegacy.GET_PARAMETERS>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.MessageTypeLegacy.rst:29:<autosummary>:1
msgid ":py:obj:`GET_PROPERTIES <flwr.common.MessageTypeLegacy.GET_PROPERTIES>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Metadata.rst:2
msgid "Metadata"
msgstr "Métadonnées"

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.run_id:1 flwr.common.message.Metadata:3 of
msgid "An identifier for the current run."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.message_id:1 flwr.common.message.Metadata:5 of
msgid "An identifier for the current message."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.src_node_id:1 flwr.common.message.Metadata:7 of
msgid "An identifier for the node sending this message."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.dst_node_id:1 flwr.common.message.Metadata:9 of
msgid "An identifier for the node receiving this message."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.reply_to_message:1 flwr.common.message.Metadata:11 of
msgid "An identifier for the message this message replies to."
msgstr ""

#: flwr.common.message.Metadata:13 of
msgid ""
"An identifier for grouping messages. In some settings, this is used as "
"the FL round."
msgstr ""

#: flwr.common.message.Metadata:16 of
msgid "Time-to-live for this message in seconds."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.message_type:1 flwr.common.message.Metadata:18 of
msgid "A string that encodes the action to be executed on the receiving end."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`created_at <flwr.common.Metadata.created_at>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.common.Metadata.created_at:1
#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid "Unix timestamp when the message was created."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`dst_node_id <flwr.common.Metadata.dst_node_id>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`group_id <flwr.common.Metadata.group_id>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1
#: flwr.common.Metadata.group_id:1 of
msgid "An identifier for grouping messages."
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`message_id <flwr.common.Metadata.message_id>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`message_type <flwr.common.Metadata.message_type>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`reply_to_message <flwr.common.Metadata.reply_to_message>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`run_id <flwr.common.Metadata.run_id>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`src_node_id <flwr.common.Metadata.src_node_id>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 of
msgid ":py:obj:`ttl <flwr.common.Metadata.ttl>`\\"
msgstr ""

#: flwr.common.Metadata.created_at:1:<autosummary>:1 flwr.common.Metadata.ttl:1
#: of
msgid "Time-to-live for this message."
msgstr ""

#: ../../source/ref-api/flwr.common.Metrics.rst:2
#, fuzzy
msgid "Metrics"
msgstr "Suivi des mesures"

#: ../../source/ref-api/flwr.common.MetricsRecord.rst:2
msgid "MetricsRecord"
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:1 of
msgid ""
"Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
"[:py:class:`str`, :py:class:`int` | :py:class:`float` | "
":py:class:`list`\\ [:py:class:`int`] | :py:class:`list`\\ "
"[:py:class:`float`]]"
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:3 of
msgid ""
"A :code:`MetricsRecord` is a Python dictionary designed to ensure that "
"each key-value pair adheres to specified data types. A "
":code:`MetricsRecord` is one of the types of records that a "
"`flwr.common.RecordSet <flwr.common.RecordSet.html#recordset>`_ supports "
"and can therefore be used to construct :code:`common.Message` objects."
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:9 of
msgid ""
"A dictionary that stores basic types (i.e. `int`, `float` as defined in "
"`MetricsScalar`) and list of such types (see `MetricsScalarList`)."
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:12 of
msgid ""
"A boolean indicating whether metrics should be deleted from the input "
"dictionary immediately after adding them to the record. When set to True,"
" the data is duplicated in memory. If memory is a concern, set it to "
"False."
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:20 of
msgid ""
"The usage of a :code:`MetricsRecord` is envisioned for communicating "
"results obtained when a node performs an action. A few typical examples "
"include: communicating the training accuracy after a model is trained "
"locally by a :code:`ClientApp`, reporting the validation loss obtained at"
" a :code:`ClientApp`, or, more generally, the output of executing a query"
" by the :code:`ClientApp`. Common to these examples is that the output "
"can be typically represented by a single scalar (:code:`int`, "
":code:`float`) or list of scalars."
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:28 of
msgid ""
"Let's see some examples of how to construct a :code:`MetricsRecord` from "
"scratch:"
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:39 of
msgid ""
"Since types are enforced, the types of the objects inserted are checked. "
"For a :code:`MetricsRecord`, value types allowed are those in defined in "
":code:`flwr.common.MetricsRecordValues`. Similarly, only :code:`str` keys"
" are allowed."
msgstr ""

#: flwr.common.record.metricsrecord.MetricsRecord:50 of
msgid ""
"If you need a more versatily type of record try :code:`ConfigsRecord` or "
":code:`ParametersRecord`."
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`clear <flwr.common.MetricsRecord.clear>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`count_bytes <flwr.common.MetricsRecord.count_bytes>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`get <flwr.common.MetricsRecord.get>`\\ \\(k\\[\\,d\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`items <flwr.common.MetricsRecord.items>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`keys <flwr.common.MetricsRecord.keys>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`pop <flwr.common.MetricsRecord.pop>`\\ \\(k\\[\\,d\\]\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`popitem <flwr.common.MetricsRecord.popitem>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`setdefault <flwr.common.MetricsRecord.setdefault>`\\ "
"\\(k\\[\\,d\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ""
":py:obj:`update <flwr.common.MetricsRecord.update>`\\ \\(\\[E\\, "
"\\]\\*\\*F\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`values <flwr.common.MetricsRecord.values>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.common.NDArray.rst:2
msgid "NDArray"
msgstr ""

#: ../../source/ref-api/flwr.common.NDArrays.rst:2
msgid "NDArrays"
msgstr ""

#: ../../source/ref-api/flwr.common.Parameters.rst:29:<autosummary>:1
msgid ":py:obj:`tensors <flwr.common.Parameters.tensors>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Parameters.rst:29:<autosummary>:1
msgid ":py:obj:`tensor_type <flwr.common.Parameters.tensor_type>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ParametersRecord.rst:2
#, fuzzy
msgid "ParametersRecord"
msgstr "Paramètres du modèle."

#: flwr.common.record.parametersrecord.ParametersRecord:1 of
msgid ""
"Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
"[:py:class:`str`, :py:class:`~flwr.common.record.parametersrecord.Array`]"
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:3 of
msgid ""
"A dataclass storing named Arrays in order. This means that it holds "
"entries as an OrderedDict[str, Array]. ParametersRecord objects can be "
"viewed as an equivalent to PyTorch's state_dict, but holding serialised "
"tensors instead. A :code:`ParametersRecord`  is one of the types of "
"records that a `flwr.common.RecordSet "
"<flwr.common.RecordSet.html#recordset>`_ supports and can therefore be "
"used to construct :code:`common.Message` objects."
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:10 of
msgid "A dictionary that stores serialized array-like or tensor-like objects."
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:12 of
msgid ""
"A boolean indicating whether parameters should be deleted from the input "
"dictionary immediately after adding them to the record. If False, the "
"dictionary passed to `set_parameters()` will be empty once exiting from "
"that function. This is the desired behaviour when working with very large"
" models/tensors/arrays. However, if you plan to continue working with "
"your parameters after adding it to the record, set this flag to True. "
"When set to True, the data is duplicated in memory."
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:23 of
msgid ""
"The usage of :code:`ParametersRecord` is envisioned for storing data "
"arrays (e.g. parameters of a machine learning model). These first need to"
" be serialized into a :code:`flwr.common.Array` data structure."
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:27 of
msgid "Let's see some examples:"
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:50 of
msgid ""
"Now that the NumPy array is embedded into a :code:`ParametersRecord` it "
"could be sent if added as part of a :code:`common.Message` or it could be"
" saved as a persistent state of a :code:`ClientApp` via its context. "
"Regardless of the usecase, we will sooner or later want to recover the "
"array in its original NumPy representation. For the example above, where "
"the array was serialized using the built-in utility function, "
"deserialization can be done as follows:"
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:65 of
msgid ""
"If you need finer control on how your arrays are serialized and "
"deserialized, you can construct :code:`Array` objects directly like this:"
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord:83 of
msgid ""
"Note that different arrays (e.g. from PyTorch, Tensorflow) might require "
"different serialization mechanism. Howerver, they often support a "
"conversion to NumPy, therefore allowing to use the same or similar steps "
"as in the example above."
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`clear <flwr.common.ParametersRecord.clear>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`count_bytes <flwr.common.ParametersRecord.count_bytes>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`get <flwr.common.ParametersRecord.get>`\\ \\(k\\[\\,d\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`items <flwr.common.ParametersRecord.items>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`keys <flwr.common.ParametersRecord.keys>`\\ \\(\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`pop <flwr.common.ParametersRecord.pop>`\\ \\(k\\[\\,d\\]\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`popitem <flwr.common.ParametersRecord.popitem>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
#, fuzzy
msgid ""
":py:obj:`setdefault <flwr.common.ParametersRecord.setdefault>`\\ "
"\\(k\\[\\,d\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ""
":py:obj:`update <flwr.common.ParametersRecord.update>`\\ \\(\\[E\\, "
"\\]\\*\\*F\\)"
msgstr ""

#: collections.abc.MutableMapping.clear:1:<autosummary>:1 of
msgid ":py:obj:`values <flwr.common.ParametersRecord.values>`\\ \\(\\)"
msgstr ""

#: flwr.common.record.parametersrecord.ParametersRecord.count_bytes:3 of
msgid ""
"Note that a small amount of Bytes might also be included in this counting"
" that correspond to metadata of the serialized object (e.g. of NumPy "
"array) needed for deseralization."
msgstr ""

#: ../../source/ref-api/flwr.common.Properties.rst:2
#, fuzzy
msgid "Properties"
msgstr "Prérequis"

#: ../../source/ref-api/flwr.common.ReconnectIns.rst:2
#, fuzzy
msgid "ReconnectIns"
msgstr "Collecte centralisée des données"

#: ../../source/ref-api/flwr.common.ReconnectIns.rst:28:<autosummary>:1
msgid ":py:obj:`seconds <flwr.common.ReconnectIns.seconds>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.RecordSet.rst:2
msgid "RecordSet"
msgstr ""

#: flwr.common.record.recordset.RecordSet:3 of
msgid ""
"A :code:`RecordSet` is the unified mechanism by which parameters, metrics"
" and configs can be either stored as part of a `flwr.common.Context "
"<flwr.common.Context.html>`_ in your apps or communicated as part of a "
"`flwr.common.Message <flwr.common.Message.html>`_ between your apps."
msgstr ""

#: flwr.common.record.recordset.RecordSet:9 of
msgid ""
"A dictionary of :code:`ParametersRecords` that can be used to record and "
"communicate model parameters and high-dimensional arrays."
msgstr ""

#: flwr.common.record.recordset.RecordSet:12 of
msgid ""
"A dictionary of :code:`MetricsRecord` that can be used to record and "
"communicate scalar-valued metrics that are the result of performing and "
"action, for example, by a :code:`ClientApp`."
msgstr ""

#: flwr.common.record.recordset.RecordSet:16 of
msgid ""
"A dictionary of :code:`ConfigsRecord` that can be used to record and "
"communicate configuration values to an entity (e.g. to a "
":code:`ClientApp`) for it to adjust how an action is performed."
msgstr ""

#: flwr.common.record.recordset.RecordSet:24 of
msgid ""
"A :code:`RecordSet` can hold three types of records, each designed with "
"an specific purpose. What is common to all of them is that they are "
"Python dictionaries designed to ensure that each key-value pair adheres "
"to specified data types."
msgstr ""

#: flwr.common.record.recordset.RecordSet:29 of
msgid "Let's see an example."
msgstr ""

#: flwr.common.record.recordset.RecordSet:47 of
msgid ""
"Adding a :code:`ParametersRecord` follows the same steps as above but "
"first, the array needs to be serialized and represented as a "
":code:`flwr.common.Array`. If the array is a :code:`NumPy` array, you can"
" use the built-in utility function `array_from_numpy "
"<flwr.common.array_from_numpy.html>`_. It is often possible to convert an"
" array first to :code:`NumPy` and then use the aforementioned function."
msgstr ""

#: flwr.common.record.recordset.RecordSet:66 of
msgid ""
"For additional examples on how to construct each of the records types "
"shown above, please refer to the documentation for :code:`ConfigsRecord`,"
" :code:`MetricsRecord` and :code:`ParametersRecord`."
msgstr ""

#: flwr.common.RecordSet.configs_records:1:<autosummary>:1 of
msgid ":py:obj:`configs_records <flwr.common.RecordSet.configs_records>`\\"
msgstr ""

#: flwr.common.RecordSet.configs_records:1
#: flwr.common.RecordSet.configs_records:1:<autosummary>:1 of
msgid "Dictionary holding ConfigsRecord instances."
msgstr ""

#: flwr.common.RecordSet.configs_records:1:<autosummary>:1 of
msgid ":py:obj:`metrics_records <flwr.common.RecordSet.metrics_records>`\\"
msgstr ""

#: flwr.common.RecordSet.configs_records:1:<autosummary>:1
#: flwr.common.RecordSet.metrics_records:1 of
msgid "Dictionary holding MetricsRecord instances."
msgstr ""

#: flwr.common.RecordSet.configs_records:1:<autosummary>:1 of
msgid ":py:obj:`parameters_records <flwr.common.RecordSet.parameters_records>`\\"
msgstr ""

#: flwr.common.RecordSet.configs_records:1:<autosummary>:1
#: flwr.common.RecordSet.parameters_records:1 of
msgid "Dictionary holding ParametersRecord instances."
msgstr ""

#: ../../source/ref-api/flwr.common.ServerMessage.rst:2
#, fuzzy
msgid "ServerMessage"
msgstr "Côté serveur"

#: ../../source/ref-api/flwr.common.ServerMessage.rst:31:<autosummary>:1
msgid ":py:obj:`evaluate_ins <flwr.common.ServerMessage.evaluate_ins>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ServerMessage.rst:31:<autosummary>:1
msgid ":py:obj:`fit_ins <flwr.common.ServerMessage.fit_ins>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ServerMessage.rst:31:<autosummary>:1
msgid ""
":py:obj:`get_parameters_ins "
"<flwr.common.ServerMessage.get_parameters_ins>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.ServerMessage.rst:31:<autosummary>:1
msgid ""
":py:obj:`get_properties_ins "
"<flwr.common.ServerMessage.get_properties_ins>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Status.rst:2
#, fuzzy
msgid "Status"
msgstr "Statut du client."

#: ../../source/ref-api/flwr.common.Status.rst:29:<autosummary>:1
msgid ":py:obj:`code <flwr.common.Status.code>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.Status.rst:29:<autosummary>:1
msgid ":py:obj:`message <flwr.common.Status.message>`\\"
msgstr ""

#: ../../source/ref-api/flwr.common.array_from_numpy.rst:2
msgid "array\\_from\\_numpy"
msgstr ""

#: ../../source/ref-api/flwr.common.bytes_to_ndarray.rst:2
msgid "bytes\\_to\\_ndarray"
msgstr ""

#: ../../source/ref-api/flwr.common.configure.rst:2
#, fuzzy
msgid "configure"
msgstr "Configurer les clients"

#: ../../source/ref-api/flwr.common.event.rst:2
msgid "event"
msgstr ""

#: ../../source/ref-api/flwr.common.log.rst:2
msgid "log"
msgstr ""

#: logging.Logger.log:3 of
msgid ""
"To pass exception information, use the keyword argument exc_info with a "
"true value, e.g."
msgstr ""
"Pour transmettre des informations sur les exceptions, utilise l'argument "
"mot-clé exc_info avec une valeur vraie, par ex."

#: logging.Logger.log:6 of
#, python-format
msgid "logger.log(level, \"We have a %s\", \"mysterious problem\", exc_info=1)"
msgstr "logger.log(level, \"We have a %s\", \"mysterious problem\", exc_info=1)"

#: ../../source/ref-api/flwr.common.ndarray_to_bytes.rst:2
msgid "ndarray\\_to\\_bytes"
msgstr ""

#: ../../source/ref-api/flwr.common.ndarrays_to_parameters.rst:2
msgid "ndarrays\\_to\\_parameters"
msgstr ""

#: ../../source/ref-api/flwr.common.now.rst:2
msgid "now"
msgstr ""

#: ../../source/ref-api/flwr.common.parameters_to_ndarrays.rst:2
msgid "parameters\\_to\\_ndarrays"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:2
msgid "server"
msgstr "serveur"

#: ../../source/ref-api/flwr.server.rst:22:<autosummary>:1
msgid ""
":py:obj:`start_server <flwr.server.start_server>`\\ \\(\\*\\[\\, "
"server\\_address\\, server\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:22:<autosummary>:1
#: flwr.server.app.start_server:1 of
msgid "Start a Flower server using the gRPC transport layer."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
msgid ":py:obj:`ClientManager <flwr.server.ClientManager>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.client_manager.ClientManager:1 of
msgid "Abstract base class for managing Flower clients."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#, fuzzy
msgid ":py:obj:`Driver <flwr.server.Driver>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.driver.driver.Driver:1 of
msgid "Abstract base Driver class for the ServerAppIo API."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
msgid ":py:obj:`History <flwr.server.History>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.history.History:1 of
msgid "History class for training and/or evaluation metrics collection."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`LegacyContext <flwr.server.LegacyContext>`\\ \\(context\\[\\, "
"config\\, strategy\\, ...\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.compat.legacy_context.LegacyContext:1 of
msgid "Legacy Context."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
msgid ""
":py:obj:`Server <flwr.server.Server>`\\ \\(\\*\\, client\\_manager\\[\\, "
"strategy\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`ServerApp <flwr.server.ServerApp>`\\ \\(\\[server\\, config\\, "
"strategy\\, ...\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.server_app.ServerApp:1 of
#, fuzzy
msgid "Flower ServerApp."
msgstr "Serveur de Flower"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`ServerAppComponents <flwr.server.ServerAppComponents>`\\ "
"\\(\\[server\\, config\\, ...\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.serverapp_components.ServerAppComponents:1 of
msgid "Components to construct a ServerApp."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`ServerConfig <flwr.server.ServerConfig>`\\ \\(\\[num\\_rounds\\,"
" round\\_timeout\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.server_config.ServerConfig:1 of
#, fuzzy
msgid "Flower server config."
msgstr "Serveur de Flower"

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
msgid ":py:obj:`SimpleClientManager <flwr.server.SimpleClientManager>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.rst:37:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager:1 of
msgid "Provides a pool of available clients."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:56:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.server.strategy <flwr.server.strategy>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:56:<autosummary>:1
#: flwr.server.strategy:1 of
msgid "Contains the strategy abstraction and different implementations."
msgstr ""

#: ../../source/ref-api/flwr.server.rst:56:<autosummary>:1
#, fuzzy
msgid ":py:obj:`flwr.server.workflow <flwr.server.workflow>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.rst:56:<autosummary>:1
#: flwr.server.workflow:1 of
#, fuzzy
msgid "Workflows."
msgstr "Flux de travail"

#: ../../source/ref-api/flwr.server.ClientManager.rst:2
#, fuzzy
msgid "ClientManager"
msgstr "client"

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ":py:obj:`all <flwr.server.ClientManager.all>`\\ \\(\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1
#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.all:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid "Return all available clients."
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ":py:obj:`num_available <flwr.server.ClientManager.num_available>`\\ \\(\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.ClientManager.num_available:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.num_available:1 of
msgid "Return the number of available clients."
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ":py:obj:`register <flwr.server.ClientManager.register>`\\ \\(client\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.ClientManager.register:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.register:1 of
msgid "Register Flower ClientProxy instance."
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`sample <flwr.server.ClientManager.sample>`\\ "
"\\(num\\_clients\\[\\, min\\_num\\_clients\\, criterion\\]\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.ClientManager.sample:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.sample:1 of
msgid "Sample a number of Flower ClientProxy instances."
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ":py:obj:`unregister <flwr.server.ClientManager.unregister>`\\ \\(client\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.ClientManager.unregister:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.unregister:1 of
msgid "Unregister Flower ClientProxy instance."
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`wait_for <flwr.server.ClientManager.wait_for>`\\ "
"\\(num\\_clients\\, timeout\\)"
msgstr ""

#: flwr.server.client_manager.ClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.ClientManager.wait_for:1
#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1
#: flwr.server.client_manager.SimpleClientManager.wait_for:1 of
msgid "Wait until at least `num_clients` are available."
msgstr ""

#: flwr.server.client_manager.ClientManager.num_available:3
#: flwr.server.client_manager.SimpleClientManager.num_available:3 of
msgid "**num_available** -- The number of currently available clients."
msgstr ""

#: flwr.server.client_manager.ClientManager.register:3 of
msgid "The ClientProxy of the Client to register."
msgstr ""

#: flwr.server.client_manager.ClientManager.register:6
#: flwr.server.client_manager.SimpleClientManager.register:6 of
msgid ""
"**success** -- Indicating if registration was successful. False if "
"ClientProxy is already registered or can not be registered for any "
"reason."
msgstr ""

#: flwr.server.client_manager.ClientManager.unregister:3
#: flwr.server.client_manager.SimpleClientManager.unregister:3 of
msgid "This method is idempotent."
msgstr ""

#: flwr.server.client_manager.ClientManager.unregister:5 of
msgid "The ClientProxy of the Client to unregister."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:2
#, fuzzy
msgid "Driver"
msgstr "serveur"

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`create_message <flwr.server.Driver.create_message>`\\ "
"\\(content\\, message\\_type\\, ...\\[\\, ttl\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.create_message:1 of
msgid "Create a new message with specified parameters."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
msgid ":py:obj:`get_node_ids <flwr.server.Driver.get_node_ids>`\\ \\(\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.get_node_ids:1 of
msgid "Get node IDs."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
msgid ""
":py:obj:`pull_messages <flwr.server.Driver.pull_messages>`\\ "
"\\(message\\_ids\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.pull_messages:1 of
msgid "Pull messages based on message IDs."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
msgid ""
":py:obj:`push_messages <flwr.server.Driver.push_messages>`\\ "
"\\(messages\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.push_messages:1 of
msgid "Push messages to specified node IDs."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`send_and_receive <flwr.server.Driver.send_and_receive>`\\ "
"\\(messages\\, \\*\\[\\, timeout\\]\\)"
msgstr ""
"Flower 1.0 : ``start_server(..., "
"config=flwr.server.ServerConfig(num_rounds=3, round_timeout=600.0), "
"...)``"

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.send_and_receive:1 of
msgid "Push messages to specified node IDs and pull the reply messages."
msgstr ""

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#, fuzzy
msgid ":py:obj:`set_run <flwr.server.Driver.set_run>`\\ \\(run\\_id\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.Driver.rst:41:<autosummary>:1
#: flwr.server.driver.driver.Driver.set_run:1 of
msgid "Request a run to the SuperLink with a given `run_id`."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`run <flwr.server.Driver.run>`\\"
msgstr "serveur.stratégie.Stratégie"

#: flwr.server.Driver.run:1
#: flwr.server.driver.driver.Driver.create_message:1:<autosummary>:1 of
#, fuzzy
msgid "Run information."
msgstr "Simulation de moniteur"

#: flwr.server.driver.driver.Driver.create_message:3 of
msgid ""
"This method constructs a new `Message` with given content and metadata. "
"The `run_id` and `src_node_id` will be set automatically."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:6 of
msgid ""
"The content for the new message. This holds records that are to be sent "
"to the destination node."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:9 of
msgid ""
"The type of the message, defining the action to be executed on the "
"receiving end."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:12 of
msgid "The ID of the destination node to which the message is being sent."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:14 of
msgid ""
"The ID of the group to which this message is associated. In some "
"settings, this is used as the FL round."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:17 of
msgid ""
"Time-to-live for the round trip of this message, i.e., the time from "
"sending this message to receiving a reply. It specifies in seconds the "
"duration for which the message and its potential reply are considered "
"valid. If unset, the default TTL (i.e., `common.DEFAULT_TTL`) will be "
"used."
msgstr ""

#: flwr.server.driver.driver.Driver.create_message:23 of
msgid ""
"**message** -- A new `Message` instance with the specified content and "
"metadata."
msgstr ""

#: flwr.server.driver.driver.Driver.pull_messages:3 of
msgid ""
"This method is used to collect messages from the SuperLink that "
"correspond to a set of given message IDs."
msgstr ""

#: flwr.server.driver.driver.Driver.pull_messages:6 of
msgid "An iterable of message IDs for which reply messages are to be retrieved."
msgstr ""

#: flwr.server.driver.driver.Driver.pull_messages:9 of
msgid "**messages** -- An iterable of messages received."
msgstr ""

#: flwr.server.driver.driver.Driver.push_messages:3 of
msgid ""
"This method takes an iterable of messages and sends each message to the "
"node specified in `dst_node_id`."
msgstr ""

#: flwr.server.driver.driver.Driver.push_messages:6
#: flwr.server.driver.driver.Driver.send_and_receive:7 of
msgid "An iterable of messages to be sent."
msgstr ""

#: flwr.server.driver.driver.Driver.push_messages:9 of
msgid ""
"**message_ids** -- An iterable of IDs for the messages that were sent, "
"which can be used to pull replies."
msgstr ""

#: flwr.server.driver.driver.Driver.send_and_receive:3 of
msgid ""
"This method sends a list of messages to their destination node IDs and "
"then waits for the replies. It continues to pull replies until either all"
" replies are received or the specified timeout duration is exceeded."
msgstr ""

#: flwr.server.driver.driver.Driver.send_and_receive:9 of
msgid ""
"The timeout duration in seconds. If specified, the method will wait for "
"replies for this duration. If `None`, there is no time limit and the "
"method will wait until replies for all messages are received."
msgstr ""

#: flwr.server.driver.driver.Driver.send_and_receive:14 of
msgid "**replies** -- An iterable of reply messages received from the SuperLink."
msgstr ""

#: flwr.server.driver.driver.Driver.send_and_receive:19 of
msgid ""
"This method uses `push_messages` to send the messages and `pull_messages`"
" to collect the replies. If `timeout` is set, the method may not return "
"replies for all sent messages. A message remains valid until its TTL, "
"which is not affected by `timeout`."
msgstr ""

#: flwr.server.driver.driver.Driver.set_run:3 of
msgid ""
"If a Run with the specified `run_id` exists, a local Run object will be "
"created. It enables further functionality in the driver, such as sending "
"`Messages`."
msgstr ""

#: flwr.server.driver.driver.Driver.set_run:7 of
msgid "The `run_id` of the Run this Driver object operates in."
msgstr ""

#: ../../source/ref-api/flwr.server.History.rst:2
msgid "History"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
msgid ""
":py:obj:`add_loss_centralized "
"<flwr.server.History.add_loss_centralized>`\\ \\(server\\_round\\, "
"loss\\)"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1
#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
#, fuzzy
msgid "Add one loss entry (from centralized evaluation)."
msgstr "Évaluation centralisée"

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
msgid ""
":py:obj:`add_loss_distributed "
"<flwr.server.History.add_loss_distributed>`\\ \\(server\\_round\\, "
"loss\\)"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1
#: flwr.server.history.History.add_loss_distributed:1 of
msgid "Add one loss entry (from distributed evaluation)."
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
msgid ""
":py:obj:`add_metrics_centralized "
"<flwr.server.History.add_metrics_centralized>`\\ \\(server\\_round\\, "
"metrics\\)"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1
#: flwr.server.history.History.add_metrics_centralized:1 of
#, fuzzy
msgid "Add metrics entries (from centralized evaluation)."
msgstr "Évaluation centralisée"

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
msgid ""
":py:obj:`add_metrics_distributed "
"<flwr.server.History.add_metrics_distributed>`\\ \\(server\\_round\\, "
"metrics\\)"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1
#: flwr.server.history.History.add_metrics_distributed:1 of
msgid "Add metrics entries (from distributed evaluation)."
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1 of
msgid ""
":py:obj:`add_metrics_distributed_fit "
"<flwr.server.History.add_metrics_distributed_fit>`\\ \\(server\\_round\\,"
" ...\\)"
msgstr ""

#: flwr.server.history.History.add_loss_centralized:1:<autosummary>:1
#: flwr.server.history.History.add_metrics_distributed_fit:1 of
msgid "Add metrics entries (from distributed fit)."
msgstr ""

#: ../../source/ref-api/flwr.server.LegacyContext.rst:2
msgid "LegacyContext"
msgstr ""

#: flwr.server.compat.legacy_context.LegacyContext:1 of
msgid "Bases: :py:class:`~flwr.common.context.Context`"
msgstr ""

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`config <flwr.server.LegacyContext.config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`strategy <flwr.server.LegacyContext.strategy>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
msgid ":py:obj:`client_manager <flwr.server.LegacyContext.client_manager>`\\"
msgstr ""

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`history <flwr.server.LegacyContext.history>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`run_id <flwr.server.LegacyContext.run_id>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`node_id <flwr.server.LegacyContext.node_id>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`node_config <flwr.server.LegacyContext.node_config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`state <flwr.server.LegacyContext.state>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.LegacyContext.rst:36:<autosummary>:1
#, fuzzy
msgid ":py:obj:`run_config <flwr.server.LegacyContext.run_config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.Server.rst:2
msgid "Server"
msgstr "Serveur"

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ":py:obj:`client_manager <flwr.server.Server.client_manager>`\\ \\(\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1
#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid "Return ClientManager."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ""
":py:obj:`disconnect_all_clients "
"<flwr.server.Server.disconnect_all_clients>`\\ \\(timeout\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.disconnect_all_clients:1 of
msgid "Send shutdown signal to all clients."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate_round <flwr.server.Server.evaluate_round>`\\ "
"\\(server\\_round\\, timeout\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.evaluate_round:1 of
msgid "Validate current global model on a number of clients."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ":py:obj:`fit <flwr.server.Server.fit>`\\ \\(num\\_rounds\\, timeout\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.fit:1 of
msgid "Run federated averaging for a number of rounds."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ""
":py:obj:`fit_round <flwr.server.Server.fit_round>`\\ \\(server\\_round\\,"
" timeout\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.fit_round:1 of
msgid "Perform a single round of federated averaging."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ""
":py:obj:`set_max_workers <flwr.server.Server.set_max_workers>`\\ "
"\\(max\\_workers\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.set_max_workers:1 of
msgid "Set the max_workers used by ThreadPoolExecutor."
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1 of
msgid ":py:obj:`set_strategy <flwr.server.Server.set_strategy>`\\ \\(strategy\\)"
msgstr ""

#: flwr.server.server.Server.client_manager:1:<autosummary>:1
#: flwr.server.server.Server.set_strategy:1 of
#, fuzzy
msgid "Replace server strategy."
msgstr "stratégie.du.serveur"

#: flwr.server.server_app.ServerApp:5 of
#, fuzzy
msgid "Use the `ServerApp` with an existing `Strategy`:"
msgstr "Utilise une stratégie existante"

#: flwr.server.server_app.ServerApp:17 of
msgid "Use the `ServerApp` with a custom main function:"
msgstr ""

#: flwr.server.server_app.ServerApp.main:1:<autosummary>:1 of
#, fuzzy
msgid ":py:obj:`main <flwr.server.ServerApp.main>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: flwr.server.server_app.ServerApp.main:1
#: flwr.server.server_app.ServerApp.main:1:<autosummary>:1 of
msgid "Return a decorator that registers the main fn with the server app."
msgstr ""

#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:2
#, fuzzy
msgid "ServerAppComponents"
msgstr "serveur"

#: flwr.server.serverapp_components.ServerAppComponents:3 of
msgid ""
"A server implementation, either `flwr.server.Server` or a subclass "
"thereof. If no instance is provided, one will be created internally."
msgstr ""

#: flwr.server.app.start_server:14
#: flwr.server.serverapp_components.ServerAppComponents:6 of
msgid ""
"Currently supported values are `num_rounds` (int, default: 1) and "
"`round_timeout` in seconds (float, default: None)."
msgstr ""

#: flwr.server.serverapp_components.ServerAppComponents:9 of
#, fuzzy
msgid ""
"An implementation of the abstract base class "
"`flwr.server.strategy.Strategy`. If no strategy is provided, then "
"`flwr.server.strategy.FedAvg` will be used."
msgstr ""
"Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers "
"`flwr.server.strategy.FedAvg`, qui est équivalent)"

#: flwr.server.serverapp_components.ServerAppComponents:13 of
msgid ""
"An implementation of the class `flwr.server.ClientManager`. If no "
"implementation is provided, then `flwr.server.SimpleClientManager` will "
"be used."
msgstr ""

#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:31:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`client_manager "
"<flwr.server.ServerAppComponents.client_manager>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:31:<autosummary>:1
#, fuzzy
msgid ":py:obj:`config <flwr.server.ServerAppComponents.config>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:31:<autosummary>:1
#, fuzzy
msgid ":py:obj:`server <flwr.server.ServerAppComponents.server>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.ServerAppComponents.rst:31:<autosummary>:1
#, fuzzy
msgid ":py:obj:`strategy <flwr.server.ServerAppComponents.strategy>`\\"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.ServerConfig.rst:2
#, fuzzy
msgid "ServerConfig"
msgstr "serveur"

#: flwr.server.server_config.ServerConfig:3 of
msgid ""
"All attributes have default values which allows users to configure just "
"the ones they care about."
msgstr ""

#: ../../source/ref-api/flwr.server.ServerConfig.rst:29:<autosummary>:1
msgid ":py:obj:`num_rounds <flwr.server.ServerConfig.num_rounds>`\\"
msgstr ""

#: ../../source/ref-api/flwr.server.ServerConfig.rst:29:<autosummary>:1
msgid ":py:obj:`round_timeout <flwr.server.ServerConfig.round_timeout>`\\"
msgstr ""

#: ../../source/ref-api/flwr.server.SimpleClientManager.rst:2
msgid "SimpleClientManager"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager:1 of
msgid "Bases: :py:class:`~flwr.server.client_manager.ClientManager`"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ":py:obj:`all <flwr.server.SimpleClientManager.all>`\\ \\(\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`num_available <flwr.server.SimpleClientManager.num_available>`\\"
" \\(\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`register <flwr.server.SimpleClientManager.register>`\\ "
"\\(client\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`sample <flwr.server.SimpleClientManager.sample>`\\ "
"\\(num\\_clients\\[\\, min\\_num\\_clients\\, criterion\\]\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`unregister <flwr.server.SimpleClientManager.unregister>`\\ "
"\\(client\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.all:1:<autosummary>:1 of
msgid ""
":py:obj:`wait_for <flwr.server.SimpleClientManager.wait_for>`\\ "
"\\(num\\_clients\\[\\, timeout\\]\\)"
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.wait_for:3 of
msgid ""
"Blocks until the requested number of clients is available or until a "
"timeout is reached. Current timeout default: 1 day."
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.wait_for:6 of
msgid "The number of clients to wait for."
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.wait_for:8 of
msgid "The time in seconds to wait for, defaults to 86400 (24h)."
msgstr ""

#: flwr.server.client_manager.SimpleClientManager.wait_for:11 of
msgid "**success**"
msgstr ""

#: ../../source/ref-api/flwr.server.start_server.rst:2
#, fuzzy
msgid "start\\_server"
msgstr "serveur.start_server"

#: flwr.server.app.start_server:5 of
msgid ""
"This function is deprecated since 1.13.0. Use the :code:`flower-"
"superlink` command instead to start a SuperLink."
msgstr ""

#: flwr.server.app.start_server:8 of
msgid "The IPv4 or IPv6 address of the server. Defaults to `\"[::]:8080\"`."
msgstr ""

#: flwr.server.app.start_server:10 of
msgid ""
"A server implementation, either `flwr.server.Server` or a subclass "
"thereof. If no instance is provided, then `start_server` will create one."
msgstr ""

#: flwr.server.app.start_server:17 of
msgid ""
"An implementation of the abstract base class "
"`flwr.server.strategy.Strategy`. If no strategy is provided, then "
"`start_server` will use `flwr.server.strategy.FedAvg`."
msgstr ""

#: flwr.server.app.start_server:21 of
msgid ""
"An implementation of the abstract base class `flwr.server.ClientManager`."
" If no implementation is provided, then `start_server` will use "
"`flwr.server.client_manager.SimpleClientManager`."
msgstr ""

#: flwr.server.app.start_server:26 of
msgid ""
"The maximum length of gRPC messages that can be exchanged with the Flower"
" clients. The default should be sufficient for most models. Users who "
"train very large models might need to increase this value. Note that the "
"Flower clients need to be started with the same value (see "
"`flwr.client.start_client`), otherwise clients will not know about the "
"increased limit and block larger messages."
msgstr ""

#: flwr.server.app.start_server:33 of
msgid ""
"Tuple containing root certificate, server certificate, and private key to"
" start a secure SSL-enabled server. The tuple is expected to have three "
"bytes elements in the following order:      * CA certificate.     * "
"server certificate.     * server private key."
msgstr ""

#: flwr.server.app.start_server:33 of
msgid ""
"Tuple containing root certificate, server certificate, and private key to"
" start a secure SSL-enabled server. The tuple is expected to have three "
"bytes elements in the following order:"
msgstr ""

#: flwr.server.app.start_server:37 of
#, fuzzy
msgid "CA certificate."
msgstr "Certificats"

#: flwr.server.app.start_server:38 of
#, fuzzy
msgid "server certificate."
msgstr "Certificats"

#: flwr.server.app.start_server:39 of
#, fuzzy
msgid "server private key."
msgstr "stratégie.du.serveur"

#: flwr.server.app.start_server:42 of
msgid "**hist** -- Object containing training and evaluation metrics."
msgstr ""

#: flwr.server.app.start_server:47 of
#, fuzzy
msgid "Starting an insecure server:"
msgstr "Démarrer le serveur"

#: flwr.server.app.start_server:51 of
#, fuzzy
msgid "Starting an SSL-enabled server:"
msgstr "Démarrer le serveur"

#: ../../source/ref-api/flwr.server.strategy.rst:2
#, fuzzy
msgid "strategy"
msgstr "stratégie.du.serveur"

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`Bulyan <flwr.server.strategy.Bulyan>`\\ \\(\\*\\, "
"fraction\\_fit\\, fraction\\_evaluate\\, ...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.bulyan.Bulyan:1 of
#, fuzzy
msgid "Bulyan strategy."
msgstr "Stratégies intégrées"

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DPFedAvgAdaptive <flwr.server.strategy.DPFedAvgAdaptive>`\\ "
"\\(strategy\\, num\\_sampled\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dpfedavg_adaptive.DPFedAvgAdaptive:1 of
msgid "Wrapper for configuring a Strategy for DP with Adaptive Clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DPFedAvgFixed <flwr.server.strategy.DPFedAvgFixed>`\\ "
"\\(strategy\\, num\\_sampled\\_clients\\, ...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed:1 of
msgid "Wrapper for configuring a Strategy for DP with Fixed Clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DifferentialPrivacyClientSideAdaptiveClipping "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping>`\\ "
"\\(...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:1
#: of
msgid "Strategy wrapper for central DP with client-side adaptive clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DifferentialPrivacyClientSideFixedClipping "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping>`\\ "
"\\(...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:1
#: of
msgid "Strategy wrapper for central DP with client-side fixed clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DifferentialPrivacyServerSideAdaptiveClipping "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping>`\\ "
"\\(...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:1
#: of
msgid "Strategy wrapper for central DP with server-side adaptive clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`DifferentialPrivacyServerSideFixedClipping "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping>`\\ "
"\\(...\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:1
#: of
msgid "Strategy wrapper for central DP with server-side fixed clipping."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FaultTolerantFedAvg "
"<flwr.server.strategy.FaultTolerantFedAvg>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg:1 of
msgid "Configurable fault-tolerant FedAvg strategy implementation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedAdagrad <flwr.server.strategy.FedAdagrad>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedadagrad.FedAdagrad:1 of
#, fuzzy
msgid "FedAdagrad strategy - Adaptive Federated Optimization using Adagrad."
msgstr ""
"`FedAdam` et `FedAdam` correspondent à la dernière version de l'article "
"sur l'optimisation fédérée adaptative."

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedAdam <flwr.server.strategy.FedAdam>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedadam.FedAdam:1 of
msgid "FedAdam - Adaptive Federated Optimization using Adam."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedAvg <flwr.server.strategy.FedAvg>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, fraction\\_evaluate\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:1 of
#, fuzzy
msgid "Federated Averaging strategy."
msgstr "Stratégie de moyenne fédérée."

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedAvgAndroid <flwr.server.strategy.FedAvgAndroid>`\\ "
"\\(\\*\\[\\, fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedAvgM <flwr.server.strategy.FedAvgM>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedavgm.FedAvgM:1 of
#, fuzzy
msgid "Federated Averaging with Momentum strategy."
msgstr "Stratégie de moyenne fédérée."

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedMedian <flwr.server.strategy.FedMedian>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedmedian.FedMedian:1 of
#, fuzzy
msgid "Configurable FedMedian strategy implementation."
msgstr "Configuration de l'évaluation fédérée"

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedOpt <flwr.server.strategy.FedOpt>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, fraction\\_evaluate\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedopt.FedOpt:1 of
#, fuzzy
msgid "Federated Optim strategy."
msgstr "Stratégie de moyenne fédérée."

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedProx <flwr.server.strategy.FedProx>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedprox.FedProx:1 of
#, fuzzy
msgid "Federated Optimization strategy."
msgstr "Stratégie de moyenne fédérée."

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedTrimmedAvg <flwr.server.strategy.FedTrimmedAvg>`\\ "
"\\(\\*\\[\\, fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:1 of
msgid "Federated Averaging with Trimmed Mean [Dong Yin, et al., 2021]."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedXgbBagging <flwr.server.strategy.FedXgbBagging>`\\ "
"\\(\\[evaluate\\_function\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging:1 of
msgid "Configurable FedXgbBagging strategy implementation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedXgbCyclic <flwr.server.strategy.FedXgbCyclic>`\\ "
"\\(\\*\\*kwargs\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic:1 of
msgid "Configurable FedXgbCyclic strategy implementation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedXgbNnAvg <flwr.server.strategy.FedXgbNnAvg>`\\ \\(\\*args\\, "
"\\*\\*kwargs\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedxgb_nn_avg.FedXgbNnAvg:1 of
msgid "Configurable FedXgbNnAvg strategy implementation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`FedYogi <flwr.server.strategy.FedYogi>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.fedyogi.FedYogi:1 of
msgid "FedYogi [Reddi et al., 2020] strategy."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`Krum <flwr.server.strategy.Krum>`\\ \\(\\*\\[\\, "
"fraction\\_fit\\, fraction\\_evaluate\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.krum.Krum:1 of
msgid "Krum [Blanchard et al., 2017] strategy."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
msgid ""
":py:obj:`QFedAvg <flwr.server.strategy.QFedAvg>`\\ \\(\\*\\[\\, "
"q\\_param\\, qffl\\_learning\\_rate\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg:1 of
msgid "Configurable QFedAvg strategy implementation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#, fuzzy
msgid ":py:obj:`Strategy <flwr.server.strategy.Strategy>`\\ \\(\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.server.strategy.rst:45:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy:1 of
msgid "Abstract base class for server strategy implementations."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.Bulyan.rst:2
msgid "Bulyan"
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg:1
#: flwr.server.strategy.fedavgm.FedAvgM:1
#: flwr.server.strategy.fedmedian.FedMedian:1
#: flwr.server.strategy.fedopt.FedOpt:1 flwr.server.strategy.fedprox.FedProx:1
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic:1
#: flwr.server.strategy.fedxgb_nn_avg.FedXgbNnAvg:1
#: flwr.server.strategy.krum.Krum:1 flwr.server.strategy.qfedavg.QFedAvg:1 of
msgid "Bases: :py:class:`~flwr.server.strategy.fedavg.FedAvg`"
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:3 of
msgid "Implementation based on https://arxiv.org/abs/1802.07927."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:5
#: flwr.server.strategy.fedadagrad.FedAdagrad:5
#: flwr.server.strategy.fedadam.FedAdam:5
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:5
#: flwr.server.strategy.fedavgm.FedAvgM:5 flwr.server.strategy.fedopt.FedOpt:5
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:5
#: flwr.server.strategy.fedyogi.FedYogi:5 flwr.server.strategy.krum.Krum:5 of
msgid "Fraction of clients used during training. Defaults to 1.0."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:7
#: flwr.server.strategy.fedadagrad.FedAdagrad:7
#: flwr.server.strategy.fedadam.FedAdam:7
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:7
#: flwr.server.strategy.fedavgm.FedAvgM:7 flwr.server.strategy.fedopt.FedOpt:7
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:7
#: flwr.server.strategy.fedyogi.FedYogi:7 flwr.server.strategy.krum.Krum:7 of
msgid "Fraction of clients used during validation. Defaults to 1.0."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:9
#: flwr.server.strategy.fedadagrad.FedAdagrad:9
#: flwr.server.strategy.fedadam.FedAdam:9 flwr.server.strategy.fedavg.FedAvg:13
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:9
#: flwr.server.strategy.fedavgm.FedAvgM:9 flwr.server.strategy.fedopt.FedOpt:9
#: flwr.server.strategy.fedprox.FedProx:45
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:9
#: flwr.server.strategy.fedyogi.FedYogi:9 flwr.server.strategy.krum.Krum:9 of
msgid "Minimum number of clients used during training. Defaults to 2."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:11
#: flwr.server.strategy.fedadagrad.FedAdagrad:11
#: flwr.server.strategy.fedadam.FedAdam:11
#: flwr.server.strategy.fedavg.FedAvg:15
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:11
#: flwr.server.strategy.fedavgm.FedAvgM:11
#: flwr.server.strategy.fedopt.FedOpt:11
#: flwr.server.strategy.fedprox.FedProx:47
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:11
#: flwr.server.strategy.fedyogi.FedYogi:11 flwr.server.strategy.krum.Krum:11 of
msgid "Minimum number of clients used during validation. Defaults to 2."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:13
#: flwr.server.strategy.fedadagrad.FedAdagrad:13
#: flwr.server.strategy.fedadam.FedAdam:13
#: flwr.server.strategy.fedavg.FedAvg:17
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:13
#: flwr.server.strategy.fedavgm.FedAvgM:13
#: flwr.server.strategy.fedopt.FedOpt:13
#: flwr.server.strategy.fedprox.FedProx:49
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:13
#: flwr.server.strategy.fedyogi.FedYogi:13 flwr.server.strategy.krum.Krum:13 of
msgid "Minimum number of total clients in the system. Defaults to 2."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:15 flwr.server.strategy.krum.Krum:15 of
msgid "Number of malicious clients in the system. Defaults to 0."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:17
#: flwr.server.strategy.fedadagrad.FedAdagrad:15
#: flwr.server.strategy.fedadam.FedAdam:15
#: flwr.server.strategy.fedavg.FedAvg:19
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:15
#: flwr.server.strategy.fedavgm.FedAvgM:15
#: flwr.server.strategy.fedopt.FedOpt:15
#: flwr.server.strategy.fedprox.FedProx:51
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:15
#: flwr.server.strategy.fedyogi.FedYogi:17
#: flwr.server.strategy.fedyogi.FedYogi:18
#: flwr.server.strategy.fedyogi.FedYogi:19 flwr.server.strategy.krum.Krum:20 of
msgid "Optional function used for validation. Defaults to None."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:19
#: flwr.server.strategy.fedadagrad.FedAdagrad:17
#: flwr.server.strategy.fedadam.FedAdam:17
#: flwr.server.strategy.fedavg.FedAvg:21
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:17
#: flwr.server.strategy.fedavgm.FedAvgM:17
#: flwr.server.strategy.fedopt.FedOpt:17
#: flwr.server.strategy.fedprox.FedProx:53
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:17
#: flwr.server.strategy.fedyogi.FedYogi:20 flwr.server.strategy.krum.Krum:22 of
msgid "Function used to configure training. Defaults to None."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:21
#: flwr.server.strategy.fedadagrad.FedAdagrad:19
#: flwr.server.strategy.fedadam.FedAdam:19
#: flwr.server.strategy.fedavg.FedAvg:23
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:19
#: flwr.server.strategy.fedavgm.FedAvgM:19
#: flwr.server.strategy.fedopt.FedOpt:19
#: flwr.server.strategy.fedprox.FedProx:55
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:19
#: flwr.server.strategy.fedyogi.FedYogi:22 flwr.server.strategy.krum.Krum:24 of
msgid "Function used to configure validation. Defaults to None."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:23
#: flwr.server.strategy.fedadagrad.FedAdagrad:25
#: flwr.server.strategy.fedadam.FedAdam:21
#: flwr.server.strategy.fedavg.FedAvg:25
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:21
#: flwr.server.strategy.fedavgm.FedAvgM:21
#: flwr.server.strategy.fedopt.FedOpt:21
#: flwr.server.strategy.fedprox.FedProx:57
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:21
#: flwr.server.strategy.fedyogi.FedYogi:24 flwr.server.strategy.krum.Krum:26 of
msgid "Whether or not accept rounds containing failures. Defaults to True."
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:25
#: flwr.server.strategy.fedadagrad.FedAdagrad:27
#: flwr.server.strategy.fedadam.FedAdam:23
#: flwr.server.strategy.fedavg.FedAvg:27
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:24
#: flwr.server.strategy.fedavgm.FedAvgM:23
#: flwr.server.strategy.fedopt.FedOpt:23
#: flwr.server.strategy.fedprox.FedProx:59
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:23
#: flwr.server.strategy.fedyogi.FedYogi:26 flwr.server.strategy.krum.Krum:28 of
#, fuzzy
msgid "Initial global model parameters."
msgstr "Initialise le modèle global"

#: flwr.server.strategy.bulyan.Bulyan:27 of
msgid ""
"Byzantine resilient aggregation rule that is used as the first step of "
"the Bulyan (e.g., Krum)"
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan:29 of
msgid "arguments to the first_aggregation rule"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.Bulyan.aggregate_evaluate>`\\ \\(server\\_round\\, "
"results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
#, fuzzy
msgid "Aggregate evaluation losses using weighted average."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.Bulyan.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.bulyan.Bulyan.aggregate_fit:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
#, fuzzy
msgid "Aggregate fit results using Bulyan."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.Bulyan.configure_evaluate>`\\ \\(server\\_round\\, "
"parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.configure_evaluate:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.configure_evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.configure_evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.configure_evaluate:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.configure_evaluate:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.configure_evaluate:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.configure_evaluate:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.configure_evaluate:1
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy.configure_evaluate:1 of
#, fuzzy
msgid "Configure the next round of evaluation."
msgstr "Configuration de l'évaluation côté serveur"

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.Bulyan.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.configure_fit:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.configure_fit:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.configure_fit:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.configure_fit:1
#: flwr.server.strategy.dpfedavg_adaptive.DPFedAvgAdaptive.configure_fit:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.configure_fit:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.configure_fit:1
#: flwr.server.strategy.fedprox.FedProx.configure_fit:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.configure_fit:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.configure_fit:1
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy.configure_fit:1 of
msgid "Configure the next round of training."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.Bulyan.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.evaluate:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.evaluate:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.evaluate:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_nn_avg.FedXgbNnAvg.evaluate:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid "Evaluate model parameters using an evaluation function."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.Bulyan.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.initialize_parameters:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.initialize_parameters:1
#: flwr.server.strategy.fedavgm.FedAvgM.initialize_parameters:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
#, fuzzy
msgid "Initialize global model parameters."
msgstr "Initialise le modèle global"

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.Bulyan.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.num_evaluation_clients:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.num_evaluation_clients:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.num_evaluation_clients:1 of
msgid "Use a fraction of available clients for evaluation."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients <flwr.server.strategy.Bulyan.num_fit_clients>`\\"
" \\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.num_fit_clients:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.num_fit_clients:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.num_fit_clients:1 of
msgid "Return the sample size and the required number of available clients."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DPFedAvgAdaptive.rst:2
msgid "DPFedAvgAdaptive"
msgstr "DPFedAvgAdaptive"

#: flwr.server.strategy.dpfedavg_adaptive.DPFedAvgAdaptive:1 of
msgid "Bases: :py:class:`~flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed`"
msgstr ""

#: flwr.server.strategy.dpfedavg_adaptive.DPFedAvgAdaptive:3
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed:3 of
msgid "This class is deprecated and will be removed in a future release."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DPFedAvgAdaptive.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
#, fuzzy
msgid "Aggregate evaluation losses using the given strategy."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DPFedAvgAdaptive.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_adaptive.DPFedAvgAdaptive.aggregate_fit:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid "Aggregate training results as in DPFedAvgFixed and update clip norms."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DPFedAvgAdaptive.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate:1 of
msgid "Configure the next round of evaluation using the specified strategy."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DPFedAvgAdaptive.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.DPFedAvgAdaptive.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.evaluate:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.evaluate:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.evaluate:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.evaluate:1 of
msgid "Evaluate model parameters using an evaluation function from the strategy."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DPFedAvgAdaptive.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.initialize_parameters:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.initialize_parameters:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.initialize_parameters:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.initialize_parameters:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.initialize_parameters:1 of
msgid "Initialize global model parameters using given strategy."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate:3
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:6
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:3
#: flwr.server.strategy.strategy.Strategy.aggregate_fit:3
#: flwr.server.strategy.strategy.Strategy.configure_evaluate:3
#: flwr.server.strategy.strategy.Strategy.configure_fit:3
#: flwr.server.strategy.strategy.Strategy.evaluate:6 of
#, fuzzy
msgid "The current round of federated learning."
msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate:7
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:10
#: flwr.server.strategy.strategy.Strategy.configure_evaluate:7
#: flwr.server.strategy.strategy.Strategy.configure_fit:7
#: flwr.server.strategy.strategy.Strategy.initialize_parameters:3 of
msgid "The client manager which holds all currently connected clients."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_evaluate:10
#: flwr.server.strategy.strategy.Strategy.configure_evaluate:10 of
msgid ""
"**evaluate_configuration** -- A list of tuples. Each tuple in the list "
"identifies a `ClientProxy` and the `EvaluateIns` for this particular "
"`ClientProxy`. If a particular `ClientProxy` is not included in this "
"list, it means that this `ClientProxy` will not participate in the next "
"round of federated evaluation."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DPFedAvgFixed.rst:2
msgid "DPFedAvgFixed"
msgstr "DPFedAvgFixed"

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed:1
#: flwr.server.strategy.fedavg.FedAvg:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:1 of
msgid "Bases: :py:class:`~flwr.server.strategy.strategy.Strategy`"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DPFedAvgFixed.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DPFedAvgFixed.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_fit:1 of
msgid "Aggregate training results using unweighted aggregation."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DPFedAvgFixed.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DPFedAvgFixed.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:1 of
msgid ""
"Configure the next round of training incorporating Differential Privacy "
"(DP)."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.DPFedAvgFixed.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DPFedAvgFixed.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:3 of
msgid ""
"Configuration of the next training round includes information related to "
"DP, such as clip norm and noise stddev."
msgstr ""

#: flwr.server.strategy.dpfedavg_fixed.DPFedAvgFixed.configure_fit:13
#: flwr.server.strategy.strategy.Strategy.configure_fit:10 of
msgid ""
"**fit_configuration** -- A list of tuples. Each tuple in the list "
"identifies a `ClientProxy` and the `FitIns` for this particular "
"`ClientProxy`. If a particular `ClientProxy` is not included in this "
"list, it means that this `ClientProxy` will not participate in the next "
"round of federated learning."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.rst:2
msgid "DifferentialPrivacyClientSideAdaptiveClipping"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:3
#: of
msgid "Use `adaptiveclipping_mod` modifier at the client side."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:5
#: of
msgid ""
"In comparison to `DifferentialPrivacyServerSideAdaptiveClipping`, which "
"performs clipping on the server-side, "
"`DifferentialPrivacyClientSideAdaptiveClipping` expects clipping to "
"happen on the client-side, usually by using the built-in "
"`adaptiveclipping_mod`."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:10
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:3
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:10
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:3
#: of
msgid "The strategy to which DP functionalities will be added by this wrapper."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:12
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:5
#: of
msgid "The noise multiplier for the Gaussian mechanism for model updates."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:14
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:7
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:17
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:10
#: of
msgid "The number of clients that are sampled on each round."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:16
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:9
#: of
msgid ""
"The initial value of clipping norm. Defaults to 0.1. Andrew et al. "
"recommends to set to 0.1."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:19
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:12
#: of
msgid "The desired quantile of updates which should be clipped. Defaults to 0.5."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:21
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:14
#: of
msgid ""
"The learning rate for the clipping norm adaptation. Defaults to 0.2. "
"Andrew et al. recommends to set to 0.2."
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:24
#: of
msgid ""
"The stddev of the noise added to the count of updates currently below the"
" estimate. Andrew et al. recommends to set to `expected_num_records/20`"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:30
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:23
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:22
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:15
#: of
#, fuzzy
msgid "Create a strategy:"
msgstr "stratégie.du.serveur"

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:34
#: of
msgid ""
"Wrap the strategy with the "
"`DifferentialPrivacyClientSideAdaptiveClipping` wrapper:"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping:40
#: of
msgid "On the client, add the `adaptiveclipping_mod` to the client-side mods:"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate>`\\"
" \\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_fit>`\\"
" \\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_fit:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_fit:1
#: of
#, fuzzy
msgid "Aggregate training results and update clip norms."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.configure_evaluate>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.configure_fit>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.evaluate>`\\"
" \\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyClientSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DifferentialPrivacyClientSideAdaptiveClipping.initialize_parameters>`\\"
" \\(client\\_manager\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.rst:2
#, fuzzy
msgid "DifferentialPrivacyClientSideFixedClipping"
msgstr "Confidentialité différentielle"

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:3
#: of
msgid "Use `fixedclipping_mod` modifier at the client side."
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:5
#: of
msgid ""
"In comparison to `DifferentialPrivacyServerSideFixedClipping`, which "
"performs clipping on the server-side, "
"`DifferentialPrivacyClientSideFixedClipping` expects clipping to happen "
"on the client-side, usually by using the built-in `fixedclipping_mod`."
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:12
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:5
#: of
msgid ""
"The noise multiplier for the Gaussian mechanism for model updates. A "
"value of 1.0 or higher is recommended for strong privacy."
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:26
#: of
msgid ""
"Wrap the strategy with the `DifferentialPrivacyClientSideFixedClipping` "
"wrapper:"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping:32
#: of
msgid "On the client, add the `fixedclipping_mod` to the client-side mods:"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate>`\\"
" \\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.aggregate_fit>`\\"
" \\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_fit:1
#: of
#, fuzzy
msgid "Add noise to the aggregated parameters."
msgstr "Puis sérialise le résultat agrégé :"

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.configure_evaluate>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.configure_fit>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.evaluate>`\\"
" \\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyClientSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DifferentialPrivacyClientSideFixedClipping.initialize_parameters>`\\"
" \\(client\\_manager\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.rst:2
msgid "DifferentialPrivacyServerSideAdaptiveClipping"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:17
#: of
msgid ""
"The standard deviation of the noise added to the count of updates below "
"the estimate. Andrew et al. recommends to set to "
"`expected_num_records/20`"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping:27
#: of
msgid ""
"Wrap the strategy with the DifferentialPrivacyServerSideAdaptiveClipping "
"wrapper"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate>`\\"
" \\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_fit>`\\"
" \\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.configure_evaluate>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.configure_fit>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.evaluate>`\\"
" \\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dp_adaptive_clipping.DifferentialPrivacyServerSideAdaptiveClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DifferentialPrivacyServerSideAdaptiveClipping.initialize_parameters>`\\"
" \\(client\\_manager\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.rst:2
#, fuzzy
msgid "DifferentialPrivacyServerSideFixedClipping"
msgstr "Confidentialité différentielle"

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping:19
#: of
msgid ""
"Wrap the strategy with the DifferentialPrivacyServerSideFixedClipping "
"wrapper"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate>`\\"
" \\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.aggregate_fit>`\\"
" \\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_fit:1
#: of
msgid "Compute the updates, clip, and pass them for aggregation."
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.configure_evaluate>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.configure_fit>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.evaluate>`\\"
" \\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.DifferentialPrivacyServerSideFixedClipping.initialize_parameters>`\\"
" \\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.dp_fixed_clipping.DifferentialPrivacyServerSideFixedClipping.aggregate_fit:3
#: of
msgid "Afterward, add noise to the aggregated parameters."
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FaultTolerantFedAvg.rst:2
#, fuzzy
msgid "FaultTolerantFedAvg"
msgstr "server.strategy.FaultTolerantFedAvg"

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FaultTolerantFedAvg.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FaultTolerantFedAvg.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_fit:1
#: flwr.server.strategy.fedadagrad.FedAdagrad.aggregate_fit:1
#: flwr.server.strategy.fedadam.FedAdam.aggregate_fit:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg.FedAvg.aggregate_fit:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_fit:1
#: flwr.server.strategy.fedavgm.FedAvgM.aggregate_fit:1
#: flwr.server.strategy.fedxgb_nn_avg.FedXgbNnAvg.aggregate_fit:1
#: flwr.server.strategy.fedyogi.FedYogi.aggregate_fit:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_fit:1 of
msgid "Aggregate fit results using weighted average."
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FaultTolerantFedAvg.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FaultTolerantFedAvg.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FaultTolerantFedAvg.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FaultTolerantFedAvg.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FaultTolerantFedAvg.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fault_tolerant_fedavg.FaultTolerantFedAvg.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FaultTolerantFedAvg.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedAdagrad.rst:2
#: ../../source/ref-changelog.md:1434
msgid "FedAdagrad"
msgstr "FedAdagrad"

#: flwr.server.strategy.fedadagrad.FedAdagrad:1
#: flwr.server.strategy.fedadam.FedAdam:1
#: flwr.server.strategy.fedyogi.FedYogi:1 of
msgid "Bases: :py:class:`~flwr.server.strategy.fedopt.FedOpt`"
msgstr ""

#: flwr.server.strategy.fedadagrad.FedAdagrad:3
#: flwr.server.strategy.fedadam.FedAdam:3 flwr.server.strategy.fedopt.FedOpt:3
#: flwr.server.strategy.fedyogi.FedYogi:3 of
#, fuzzy
msgid "Implementation based on https://arxiv.org/abs/2003.00295v5"
msgstr ""
"FedYogi - Stratégie d'apprentissage fédéré utilisant Yogi côté serveur. "
"Mise en oeuvre basée sur https://arxiv.org/abs/2003.00295"

#: flwr.server.strategy.fedadagrad.FedAdagrad:21
#: flwr.server.strategy.fedadagrad.FedAdagrad:23
#: flwr.server.strategy.fedadam.FedAdam:25
#: flwr.server.strategy.fedadam.FedAdam:27
#: flwr.server.strategy.fedavg.FedAvg:29 flwr.server.strategy.fedavg.FedAvg:31
#: flwr.server.strategy.fedopt.FedOpt:25 flwr.server.strategy.fedopt.FedOpt:27
#: flwr.server.strategy.fedprox.FedProx:61
#: flwr.server.strategy.fedprox.FedProx:63
#: flwr.server.strategy.fedyogi.FedYogi:28
#: flwr.server.strategy.fedyogi.FedYogi:30 of
msgid "Metrics aggregation function, optional."
msgstr ""

#: flwr.server.strategy.fedadagrad.FedAdagrad:29
#: flwr.server.strategy.fedadam.FedAdam:29
#: flwr.server.strategy.fedopt.FedOpt:29 of
msgid "Server-side learning rate. Defaults to 1e-1."
msgstr ""

#: flwr.server.strategy.fedadagrad.FedAdagrad:31
#: flwr.server.strategy.fedadam.FedAdam:31
#: flwr.server.strategy.fedopt.FedOpt:31 of
msgid "Client-side learning rate. Defaults to 1e-1."
msgstr ""

#: flwr.server.strategy.fedadagrad.FedAdagrad:33
#: flwr.server.strategy.fedadam.FedAdam:37
#: flwr.server.strategy.fedopt.FedOpt:37 of
msgid "Controls the algorithm's degree of adaptability. Defaults to 1e-9."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedAdagrad.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedAdagrad.aggregate_fit>`\\"
" \\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedAdagrad.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedAdagrad.configure_fit>`\\"
" \\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedAdagrad.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedAdagrad.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedAdagrad.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedAdagrad.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedAdam.rst:2
#, fuzzy
msgid "FedAdam"
msgstr "FedAdagrad"

#: flwr.server.strategy.fedadam.FedAdam:33
#: flwr.server.strategy.fedyogi.FedYogi:36 of
msgid "Momentum parameter. Defaults to 0.9."
msgstr ""

#: flwr.server.strategy.fedadam.FedAdam:35
#: flwr.server.strategy.fedyogi.FedYogi:38 of
msgid "Second moment parameter. Defaults to 0.99."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedAdam.aggregate_evaluate>`\\ \\(server\\_round\\,"
" results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedAdam.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedAdam.configure_evaluate>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedAdam.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedAdam.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedAdam.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedAdam.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedAdam.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedAvg.rst:2
#, fuzzy
msgid "FedAvg"
msgstr "DP-FedAvg"

#: flwr.server.strategy.fedavg.FedAvg:3
#: flwr.server.strategy.fedavg_android.FedAvgAndroid:3 of
msgid "Implementation based on https://arxiv.org/abs/1602.05629"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg:5 flwr.server.strategy.fedprox.FedProx:37
#: of
msgid ""
"Fraction of clients used during training. In case `min_fit_clients` is "
"larger than `fraction_fit * available_clients`, `min_fit_clients` will "
"still be sampled. Defaults to 1.0."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg:9 flwr.server.strategy.fedprox.FedProx:41
#: of
msgid ""
"Fraction of clients used during validation. In case "
"`min_evaluate_clients` is larger than `fraction_evaluate * "
"available_clients`, `min_evaluate_clients` will still be sampled. "
"Defaults to 1.0."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg:33 of
msgid "Enable (True) or disable (False) in-place aggregation of model updates."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedAvg.aggregate_evaluate>`\\ \\(server\\_round\\, "
"results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedAvg.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedAvg.configure_evaluate>`\\ \\(server\\_round\\, "
"parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedAvg.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedAvg.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedAvg.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedAvg.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients <flwr.server.strategy.FedAvg.num_fit_clients>`\\"
" \\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedAvgAndroid.rst:2
#, fuzzy
msgid "FedAvgAndroid"
msgstr "DPFedAvgAdaptive"

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedAvgAndroid.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FedAvgAndroid.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`bytes_to_ndarray "
"<flwr.server.strategy.FedAvgAndroid.bytes_to_ndarray>`\\ \\(tensor\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.bytes_to_ndarray:1 of
#, fuzzy
msgid "Deserialize NumPy array from bytes."
msgstr "Désérialise le tableau numérique NumPy à partir d'octets."

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedAvgAndroid.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FedAvgAndroid.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedAvgAndroid.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedAvgAndroid.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`ndarray_to_bytes "
"<flwr.server.strategy.FedAvgAndroid.ndarray_to_bytes>`\\ \\(ndarray\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.ndarray_to_bytes:1 of
#, fuzzy
msgid "Serialize NumPy array to bytes."
msgstr "Sérialise le tableau numérique NumPy en octets."

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`ndarrays_to_parameters "
"<flwr.server.strategy.FedAvgAndroid.ndarrays_to_parameters>`\\ "
"\\(ndarrays\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedAvgAndroid.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedAvgAndroid.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`parameters_to_ndarrays "
"<flwr.server.strategy.FedAvgAndroid.parameters_to_ndarrays>`\\ "
"\\(parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg_android.FedAvgAndroid.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedavg_android.FedAvgAndroid.parameters_to_ndarrays:1
#: of
#, fuzzy
msgid "Convert parameters object to NumPy weights."
msgstr "Convertit l'objet des paramètres en ndarrays NumPy."

#: ../../source/ref-api/flwr.server.strategy.FedAvgM.rst:2
#, fuzzy
msgid "FedAvgM"
msgstr "DP-FedAvg"

#: flwr.server.strategy.fedavgm.FedAvgM:3 of
msgid "Implementation based on https://arxiv.org/abs/1909.06335"
msgstr ""

#: flwr.server.strategy.fedavgm.FedAvgM:25 of
msgid ""
"Server-side learning rate used in server-side optimization. Defaults to "
"1.0."
msgstr ""

#: flwr.server.strategy.fedavgm.FedAvgM:28 of
msgid "Server-side momentum factor used for FedAvgM. Defaults to 0.0."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedAvgM.aggregate_evaluate>`\\ \\(server\\_round\\,"
" results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedAvgM.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedAvgM.configure_evaluate>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedAvgM.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedAvgM.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedAvgM.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedAvgM.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedAvgM.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedMedian.rst:2
msgid "FedMedian"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedMedian.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedMedian.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedmedian.FedMedian.aggregate_fit:1 of
#, fuzzy
msgid "Aggregate fit results using median."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedMedian.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedMedian.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedMedian.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedMedian.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedMedian.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedMedian.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedOpt.rst:2
msgid "FedOpt"
msgstr ""

#: flwr.server.strategy.fedopt.FedOpt:33 of
msgid "Momentum parameter. Defaults to 0.0."
msgstr ""

#: flwr.server.strategy.fedopt.FedOpt:35 of
msgid "Second moment parameter. Defaults to 0.0."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedOpt.aggregate_evaluate>`\\ \\(server\\_round\\, "
"results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedOpt.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedOpt.configure_evaluate>`\\ \\(server\\_round\\, "
"parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedOpt.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedOpt.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedOpt.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedOpt.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients <flwr.server.strategy.FedOpt.num_fit_clients>`\\"
" \\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedProx.rst:2
msgid "FedProx"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:3 of
msgid "Implementation based on https://arxiv.org/abs/1812.06127"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:5 of
msgid ""
"The strategy in itself will not be different than FedAvg, the client "
"needs to be adjusted. A proximal term needs to be added to the loss "
"function during the training:"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:9 of
msgid ""
"\\\\frac{\\\\mu}{2} || w - w^t ||^2\n"
"\n"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:12 of
msgid ""
"Where $w^t$ are the global parameters and $w$ are the local weights the "
"function will be optimized with."
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:15 of
msgid "In PyTorch, for example, the loss would go from:"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:21 of
msgid "To:"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:30 of
msgid ""
"With `global_params` being a copy of the parameters before the training "
"takes place."
msgstr ""

#: flwr.server.strategy.fedprox.FedProx:65 of
msgid ""
"The weight of the proximal term used in the optimization. 0.0 makes this "
"strategy equivalent to FedAvg, and the higher the coefficient, the more "
"regularization will be used (that is, the client parameters will need to "
"be closer to the server parameters during training)."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedProx.aggregate_evaluate>`\\ \\(server\\_round\\,"
" results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedProx.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedProx.configure_evaluate>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedProx.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedProx.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedProx.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedProx.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedProx.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedprox.FedProx.configure_fit:3 of
msgid "Sends the proximal factor mu to the clients"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedTrimmedAvg.rst:2
msgid "FedTrimmedAvg"
msgstr ""

#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:3 of
msgid "Implemented based on: https://arxiv.org/abs/1803.01498"
msgstr ""

#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg:25 of
msgid "Fraction to cut off of both tails of the distribution. Defaults to 0.2."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedTrimmedAvg.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FedTrimmedAvg.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedtrimmedavg.FedTrimmedAvg.aggregate_fit:1 of
msgid "Aggregate fit results using trimmed average."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedTrimmedAvg.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FedTrimmedAvg.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedTrimmedAvg.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedTrimmedAvg.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedTrimmedAvg.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedTrimmedAvg.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedXgbBagging.rst:2
msgid "FedXgbBagging"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedXgbBagging.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
#, fuzzy
msgid "Aggregate evaluation metrics using average."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FedXgbBagging.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_fit:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_fit:1 of
msgid "Aggregate fit results using bagging."
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedXgbBagging.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FedXgbBagging.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedXgbBagging.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedXgbBagging.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedXgbBagging.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_bagging.FedXgbBagging.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedXgbBagging.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedXgbCyclic.rst:2
msgid "FedXgbCyclic"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedXgbCyclic.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FedXgbCyclic.aggregate_fit>`\\ \\(server\\_round\\,"
" results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedXgbCyclic.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FedXgbCyclic.configure_fit>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedXgbCyclic.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedXgbCyclic.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedXgbCyclic.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedxgb_cyclic.FedXgbCyclic.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedXgbCyclic.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedXgbNnAvg.rst:2
#, fuzzy
msgid "FedXgbNnAvg"
msgstr "DP-FedAvg"

#: flwr.server.strategy.fedxgb_nn_avg.FedXgbNnAvg:5 of
msgid ""
"This strategy is deprecated, but a copy of it is available in Flower "
"Baselines: "
"https://github.com/adap/flower/tree/main/baselines/hfedxgboost."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedXgbNnAvg.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit "
"<flwr.server.strategy.FedXgbNnAvg.aggregate_fit>`\\ \\(server\\_round\\, "
"results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedXgbNnAvg.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit "
"<flwr.server.strategy.FedXgbNnAvg.configure_fit>`\\ \\(server\\_round\\, "
"parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedXgbNnAvg.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedXgbNnAvg.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedXgbNnAvg.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedXgbNnAvg.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.FedYogi.rst:2
msgid "FedYogi"
msgstr ""

#: flwr.server.strategy.fedyogi.FedYogi:32 of
msgid "Server-side learning rate. Defaults to 1e-2."
msgstr ""

#: flwr.server.strategy.fedyogi.FedYogi:34 of
msgid "Client-side learning rate. Defaults to 0.0316."
msgstr ""

#: flwr.server.strategy.fedyogi.FedYogi:40 of
msgid "Controls the algorithm's degree of adaptability. Defaults to 1e-3."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.FedYogi.aggregate_evaluate>`\\ \\(server\\_round\\,"
" results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.FedYogi.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.FedYogi.configure_evaluate>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.FedYogi.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.FedYogi.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.FedYogi.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.FedYogi.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.FedYogi.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.Krum.rst:2
msgid "Krum"
msgstr ""

#: flwr.server.strategy.krum.Krum:3 of
msgid "Implementation based on https://arxiv.org/abs/1703.02757"
msgstr ""

#: flwr.server.strategy.krum.Krum:17 of
msgid ""
"Number of clients to keep before averaging (MultiKrum). Defaults to 0, in"
" that case classical Krum is applied."
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.Krum.aggregate_evaluate>`\\ \\(server\\_round\\, "
"results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.Krum.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.krum.Krum.aggregate_fit:1 of
#, fuzzy
msgid "Aggregate fit results using Krum."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.Krum.configure_evaluate>`\\ \\(server\\_round\\, "
"parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.Krum.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.Krum.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.Krum.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.Krum.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.fedavg.FedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients <flwr.server.strategy.Krum.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.QFedAvg.rst:2
#, fuzzy
msgid "QFedAvg"
msgstr "DP-FedAvg"

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.QFedAvg.aggregate_evaluate>`\\ \\(server\\_round\\,"
" results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.QFedAvg.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.QFedAvg.configure_evaluate>`\\ \\(server\\_round\\,"
" parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.QFedAvg.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.QFedAvg.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.QFedAvg.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_evaluation_clients "
"<flwr.server.strategy.QFedAvg.num_evaluation_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: flwr.server.strategy.qfedavg.QFedAvg.aggregate_evaluate:1:<autosummary>:1 of
msgid ""
":py:obj:`num_fit_clients "
"<flwr.server.strategy.QFedAvg.num_fit_clients>`\\ "
"\\(num\\_available\\_clients\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.strategy.Strategy.rst:2
#, fuzzy
msgid "Strategy"
msgstr "stratégie.du.serveur"

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_evaluate "
"<flwr.server.strategy.Strategy.aggregate_evaluate>`\\ "
"\\(server\\_round\\, results\\, ...\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1
#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
#, fuzzy
msgid "Aggregate evaluation results."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`aggregate_fit <flwr.server.strategy.Strategy.aggregate_fit>`\\ "
"\\(server\\_round\\, results\\, failures\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy.aggregate_fit:1 of
#, fuzzy
msgid "Aggregate training results."
msgstr "Résultats globaux de l'évaluation."

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_evaluate "
"<flwr.server.strategy.Strategy.configure_evaluate>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`configure_fit <flwr.server.strategy.Strategy.configure_fit>`\\ "
"\\(server\\_round\\, parameters\\, ...\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`evaluate <flwr.server.strategy.Strategy.evaluate>`\\ "
"\\(server\\_round\\, parameters\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy.evaluate:1 of
#, fuzzy
msgid "Evaluate the current model parameters."
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: of
msgid ""
":py:obj:`initialize_parameters "
"<flwr.server.strategy.Strategy.initialize_parameters>`\\ "
"\\(client\\_manager\\)"
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:1:<autosummary>:1
#: flwr.server.strategy.strategy.Strategy.initialize_parameters:1 of
#, fuzzy
msgid "Initialize the (global) model parameters."
msgstr "Initialise le modèle global"

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:5 of
msgid ""
"Successful updates from the previously selected and configured clients. "
"Each pair of `(ClientProxy, FitRes` constitutes a successful update from "
"one of the previously selected clients. Not that not all previously "
"selected clients are necessarily included in this list: a client might "
"drop out and not submit a result. For each client that did not submit an "
"update, there should be an `Exception` in `failures`."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:13
#: flwr.server.strategy.strategy.Strategy.aggregate_fit:13 of
msgid "Exceptions that occurred while the server was waiting for client updates."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_evaluate:16 of
msgid ""
"**aggregation_result** -- The aggregated evaluation result. Aggregation "
"typically uses some variant of a weighted average."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_fit:5 of
msgid ""
"Successful updates from the previously selected and configured clients. "
"Each pair of `(ClientProxy, FitRes)` constitutes a successful update from"
" one of the previously selected clients. Not that not all previously "
"selected clients are necessarily included in this list: a client might "
"drop out and not submit a result. For each client that did not submit an "
"update, there should be an `Exception` in `failures`."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.aggregate_fit:17 of
msgid ""
"**parameters** -- If parameters are returned, then the server will treat "
"these as the new global model parameters (i.e., it will replace the "
"previous parameters with the ones returned from this method). If `None` "
"is returned (e.g., because there were only failures and no viable "
"results) then the server will no update the previous model parameters, "
"the updates received in this round are discarded, and the global model "
"parameters remain the same."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.evaluate:3 of
msgid ""
"This function can be used to perform centralized (i.e., server-side) "
"evaluation of model parameters."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.evaluate:11 of
msgid ""
"**evaluation_result** -- The evaluation result, usually a Tuple "
"containing loss and a dictionary containing task-specific metrics (e.g., "
"accuracy)."
msgstr ""

#: flwr.server.strategy.strategy.Strategy.initialize_parameters:6 of
msgid ""
"**parameters** -- If parameters are returned, then the server will treat "
"these as the initial global model parameters."
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:2
#, fuzzy
msgid "workflow"
msgstr "Flux de travail"

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
msgid ""
":py:obj:`DefaultWorkflow <flwr.server.workflow.DefaultWorkflow>`\\ "
"\\(\\[fit\\_workflow\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
#: flwr.server.workflow.default_workflows.DefaultWorkflow:1 of
msgid "Default workflow in Flower."
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
msgid ""
":py:obj:`SecAggPlusWorkflow <flwr.server.workflow.SecAggPlusWorkflow>`\\ "
"\\(num\\_shares\\, ...\\[\\, ...\\]\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:1
#: of
msgid "The workflow for the SecAgg+ protocol."
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
msgid ""
":py:obj:`SecAggWorkflow <flwr.server.workflow.SecAggWorkflow>`\\ "
"\\(reconstruction\\_threshold\\, \\*\\)"
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.rst:24:<autosummary>:1
#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:1 of
msgid "The workflow for the SecAgg protocol."
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.DefaultWorkflow.rst:2
#, fuzzy
msgid "DefaultWorkflow"
msgstr "Flux de travail"

#: ../../source/ref-api/flwr.server.workflow.SecAggPlusWorkflow.rst:2
#, fuzzy
msgid "SecAggPlusWorkflow"
msgstr "Flux de travail"

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:3
#: of
msgid ""
"The SecAgg+ protocol ensures the secure summation of integer vectors "
"owned by multiple parties, without accessing any individual integer "
"vector. This workflow allows the server to compute the weighted average "
"of model parameters across all clients, ensuring individual contributions"
" remain private. This is achieved by clients sending both, a weighting "
"factor and a weighted version of the locally updated parameters, both of "
"which are masked for privacy. Specifically, each client uploads \"[w, w *"
" params]\" with masks, where weighting factor 'w' is the number of "
"examples ('num_examples') and 'params' represents the model parameters "
"('parameters') from the client's `FitRes`. The server then aggregates "
"these contributions to compute the weighted average of model parameters."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:14
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:14
#: of
msgid "The protocol involves four main stages:"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:16
#: of
msgid ""
"'setup': Send SecAgg+ configuration to clients and collect their public "
"keys."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:17
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:17
#: of
msgid ""
"'share keys': Broadcast public keys among clients and collect encrypted "
"secret key shares."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:19
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:19
#: of
msgid ""
"'collect masked vectors': Forward encrypted secret key shares to target "
"clients and collect masked model parameters."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:21
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:21
#: of
msgid ""
"'unmask': Collect secret key shares to decrypt and aggregate the model "
"parameters."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:23
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:23
#: of
msgid ""
"Only the aggregated model parameters are exposed and passed to "
"`Strategy.aggregate_fit`, ensuring individual data privacy."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:26
#: of
msgid ""
"The number of shares into which each client's private key is split under "
"the SecAgg+ protocol. If specified as a float, it represents the "
"proportion of all selected clients, and the number of shares will be set "
"dynamically in the run time. A private key can be reconstructed from "
"these shares, allowing for the secure aggregation of model updates. Each "
"client sends one share to each of its neighbors while retaining one."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:26
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:33
#: of
msgid ""
"The minimum number of shares required to reconstruct a client's private "
"key, or, if specified as a float, it represents the proportion of the "
"total number of shares needed for reconstruction. This threshold ensures "
"privacy by allowing for the recovery of contributions from dropped "
"clients during aggregation, without compromising individual client data."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:32
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:39
#: of
msgid ""
"The maximum value of the weight that can be assigned to any single "
"client's update during the weighted average calculation on the server "
"side, e.g., in the FedAvg algorithm."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:36
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:43
#: of
msgid ""
"The range within which model parameters are clipped before quantization. "
"This parameter ensures each model parameter is bounded within "
"[-clipping_range, clipping_range], facilitating quantization."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:40
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:47
#: of
msgid ""
"The size of the range into which floating-point model parameters are "
"quantized, mapping each parameter to an integer in [0, "
"quantization_range-1]. This facilitates cryptographic operations on the "
"model updates."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:44
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:51
#: of
msgid ""
"The range of values from which random mask entries are uniformly sampled "
"([0, modulus_range-1]). `modulus_range` must be less than 4294967296. "
"Please use 2**n values for `modulus_range` to prevent overflow issues."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:48
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:55
#: of
msgid ""
"The timeout duration in seconds. If specified, the workflow will wait for"
" replies for this duration each time. If `None`, there is no time limit "
"and the workflow will wait until replies for all messages are received."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:62
#: of
msgid ""
"Generally, higher `num_shares` means more robust to dropouts while "
"increasing the computational costs; higher `reconstruction_threshold` "
"means better privacy guarantees but less tolerance to dropouts."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:59
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:65
#: of
msgid "Too large `max_weight` may compromise the precision of the quantization."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:60
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:66
#: of
msgid "`modulus_range` must be 2**n and larger than `quantization_range`."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:67
#: of
msgid ""
"When `num_shares` is a float, it is interpreted as the proportion of all "
"selected clients, and hence the number of shares will be determined in "
"the runtime. This allows for dynamic adjustment based on the total number"
" of participating clients."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:70
#: of
msgid ""
"Similarly, when `reconstruction_threshold` is a float, it is interpreted "
"as the proportion of the number of shares needed for the reconstruction "
"of a private key. This feature enables flexibility in setting the "
"security threshold relative to the number of distributed shares."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow:74
#: of
msgid ""
"`num_shares`, `reconstruction_threshold`, and the quantization parameters"
" (`clipping_range`, `quantization_range`, `modulus_range`) play critical "
"roles in balancing privacy, robustness, and efficiency within the SecAgg+"
" protocol."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`collect_masked_vectors_stage "
"<flwr.server.workflow.SecAggPlusWorkflow.collect_masked_vectors_stage>`\\"
" \\(driver\\, ...\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid "Execute the 'collect masked vectors' stage."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`setup_stage "
"<flwr.server.workflow.SecAggPlusWorkflow.setup_stage>`\\ \\(driver\\, "
"context\\, state\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.setup_stage:1
#: of
msgid "Execute the 'setup' stage."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`share_keys_stage "
"<flwr.server.workflow.SecAggPlusWorkflow.share_keys_stage>`\\ "
"\\(driver\\, context\\, state\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.share_keys_stage:1
#: of
msgid "Execute the 'share keys' stage."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`unmask_stage "
"<flwr.server.workflow.SecAggPlusWorkflow.unmask_stage>`\\ \\(driver\\, "
"context\\, state\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.unmask_stage:1
#: of
msgid "Execute the 'unmask' stage."
msgstr ""

#: ../../source/ref-api/flwr.server.workflow.SecAggWorkflow.rst:2
#, fuzzy
msgid "SecAggWorkflow"
msgstr "Flux de travail"

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:1 of
msgid ""
"Bases: "
":py:class:`~flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow`"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:3 of
msgid ""
"The SecAgg protocol ensures the secure summation of integer vectors owned"
" by multiple parties, without accessing any individual integer vector. "
"This workflow allows the server to compute the weighted average of model "
"parameters across all clients, ensuring individual contributions remain "
"private. This is achieved by clients sending both, a weighting factor and"
" a weighted version of the locally updated parameters, both of which are "
"masked for privacy. Specifically, each client uploads \"[w, w * params]\""
" with masks, where weighting factor 'w' is the number of examples "
"('num_examples') and 'params' represents the model parameters "
"('parameters') from the client's `FitRes`. The server then aggregates "
"these contributions to compute the weighted average of model parameters."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:16 of
msgid ""
"'setup': Send SecAgg configuration to clients and collect their public "
"keys."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:55 of
msgid ""
"Each client's private key is split into N shares under the SecAgg "
"protocol, where N is the number of selected clients."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:57 of
msgid ""
"Generally, higher `reconstruction_threshold` means better privacy "
"guarantees but less tolerance to dropouts."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:61 of
msgid ""
"When `reconstruction_threshold` is a float, it is interpreted as the "
"proportion of the number of all selected clients needed for the "
"reconstruction of a private key. This feature enables flexibility in "
"setting the security threshold relative to the number of selected "
"clients."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secagg_workflow.SecAggWorkflow:65 of
msgid ""
"`reconstruction_threshold`, and the quantization parameters "
"(`clipping_range`, `quantization_range`, `modulus_range`) play critical "
"roles in balancing privacy, robustness, and efficiency within the SecAgg "
"protocol."
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`collect_masked_vectors_stage "
"<flwr.server.workflow.SecAggWorkflow.collect_masked_vectors_stage>`\\ "
"\\(driver\\, ...\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`setup_stage <flwr.server.workflow.SecAggWorkflow.setup_stage>`\\"
" \\(driver\\, context\\, state\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`share_keys_stage "
"<flwr.server.workflow.SecAggWorkflow.share_keys_stage>`\\ \\(driver\\, "
"context\\, state\\)"
msgstr ""

#: flwr.server.workflow.secure_aggregation.secaggplus_workflow.SecAggPlusWorkflow.collect_masked_vectors_stage:1:<autosummary>:1
#: of
msgid ""
":py:obj:`unmask_stage "
"<flwr.server.workflow.SecAggWorkflow.unmask_stage>`\\ \\(driver\\, "
"context\\, state\\)"
msgstr ""

#: ../../source/ref-api/flwr.simulation.rst:2
#, fuzzy
msgid "simulation"
msgstr "Simulation de moniteur"

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
msgid ""
":py:obj:`run_simulation <flwr.simulation.run_simulation>`\\ "
"\\(server\\_app\\, client\\_app\\, ...\\)"
msgstr ""

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
#: flwr.simulation.run_simulation.run_simulation:1 of
msgid "Run a Flower App using the Simulation Engine."
msgstr ""

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`run_simulation_process "
"<flwr.simulation.run_simulation_process>`\\ \\(...\\[\\, flwr\\_dir\\_\\,"
" ...\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
#: flwr.simulation.app.run_simulation_process:1 of
#, fuzzy
msgid "Run Flower Simulation process."
msgstr "Simulation de moniteur"

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`start_simulation <flwr.simulation.start_simulation>`\\ "
"\\(\\*args\\, \\*\\*kwargs\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.simulation.rst:24:<autosummary>:1
#: flwr.simulation.start_simulation:1 of
msgid "Log error stating that module `ray` could not be imported."
msgstr ""

#: ../../source/ref-api/flwr.simulation.rst:31:<autosummary>:1
#, fuzzy
msgid ""
":py:obj:`SimulationIoConnection "
"<flwr.simulation.SimulationIoConnection>`\\ \\(\\[...\\]\\)"
msgstr "serveur.stratégie.Stratégie"

#: ../../source/ref-api/flwr.simulation.rst:31:<autosummary>:1
#: flwr.simulation.simulationio_connection.SimulationIoConnection:1 of
msgid "`SimulationIoConnection` provides an interface to the SimulationIo API."
msgstr ""

#: ../../source/ref-api/flwr.simulation.SimulationIoConnection.rst:2
#, fuzzy
msgid "SimulationIoConnection"
msgstr "Simulation de moniteur"

#: flwr.simulation.simulationio_connection.SimulationIoConnection:3 of
msgid "The address (URL, IPv6, IPv4) of the SuperLink SimulationIo API service."
msgstr ""

#: flwr.simulation.simulationio_connection.SimulationIoConnection:5 of
msgid ""
"The PEM-encoded root certificates as a byte string. If provided, a secure"
" connection using the certificates will be established to an SSL-enabled "
"Flower server."
msgstr ""

#: ../../source/ref-api/flwr.simulation.run_simulation.rst:2
#, fuzzy
msgid "run\\_simulation"
msgstr "Simulation de moniteur"

#: flwr.simulation.run_simulation.run_simulation:3 of
msgid ""
"The `ServerApp` to be executed. It will send messages to different "
"`ClientApp` instances running on different (virtual) SuperNodes."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:6 of
msgid ""
"The `ClientApp` to be executed by each of the SuperNodes. It will receive"
" messages sent by the `ServerApp`."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:9 of
msgid ""
"Number of nodes that run a ClientApp. They can be sampled by a Driver in "
"the ServerApp and receive a Message describing what the ClientApp should "
"perform."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:12 of
msgid "A simulation backend that runs `ClientApp`s."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:14 of
msgid ""
"'A dictionary to configure a backend. Separate dictionaries to configure "
"different elements of backend. Supported top-level keys are `init_args` "
"for values parsed to initialisation of backend, `client_resources` to "
"define the resources for clients, and `actor` to define the actor "
"parameters. Values supported in <value> are those included by "
"`flwr.common.typing.ConfigsRecordValues`."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:21 of
msgid ""
"A boolean to indicate whether to enable GPU growth on the main thread. "
"This is desirable if you make use of a TensorFlow model on your "
"`ServerApp` while having your `ClientApp` running on the same GPU. "
"Without enabling this, you might encounter an out-of-memory error because"
" TensorFlow, by default, allocates all GPU memory. Read more about how "
"`tf.config.experimental.set_memory_growth()` works in the TensorFlow "
"documentation: https://www.tensorflow.org/api/stable."
msgstr ""

#: flwr.simulation.run_simulation.run_simulation:28 of
msgid ""
"When disabled, only INFO, WARNING and ERROR log messages will be shown. "
"If enabled, DEBUG-level logs will be displayed."
msgstr ""

#: ../../source/ref-api/flwr.simulation.run_simulation_process.rst:2
#, fuzzy
msgid "run\\_simulation\\_process"
msgstr "Simulation de moniteur"

#: ../../source/ref-api/flwr.simulation.start_simulation.rst:2
#, fuzzy
msgid "start\\_simulation"
msgstr "démarrer_simulation"

#: ../../source/ref-changelog.md:1
msgid "Changelog"
msgstr "Changelog"

#: ../../source/ref-changelog.md:3
#, fuzzy
msgid "v1.13.1 (2024-11-26)"
msgstr "v1.4.0 (2023-04-21)"

#: ../../source/ref-changelog.md:5 ../../source/ref-changelog.md:37
#: ../../source/ref-changelog.md:138 ../../source/ref-changelog.md:208
#: ../../source/ref-changelog.md:240 ../../source/ref-changelog.md:344
#: ../../source/ref-changelog.md:442 ../../source/ref-changelog.md:542
#: ../../source/ref-changelog.md:606 ../../source/ref-changelog.md:699
#: ../../source/ref-changelog.md:799 ../../source/ref-changelog.md:883
#: ../../source/ref-changelog.md:947 ../../source/ref-changelog.md:1005
#: ../../source/ref-changelog.md:1074 ../../source/ref-changelog.md:1143
msgid "Thanks to our contributors"
msgstr "Merci à nos contributeurs"

#: ../../source/ref-changelog.md:7 ../../source/ref-changelog.md:39
#: ../../source/ref-changelog.md:140 ../../source/ref-changelog.md:210
#: ../../source/ref-changelog.md:242 ../../source/ref-changelog.md:346
#: ../../source/ref-changelog.md:444 ../../source/ref-changelog.md:544
#: ../../source/ref-changelog.md:608 ../../source/ref-changelog.md:701
#: ../../source/ref-changelog.md:801 ../../source/ref-changelog.md:885
#: ../../source/ref-changelog.md:949 ../../source/ref-changelog.md:1007
msgid ""
"We would like to give our special thanks to all the contributors who made"
" the new version of Flower possible (in `git shortlog` order):"
msgstr ""
"Nous tenons à remercier tout particulièrement tous les contributeurs qui "
"ont rendu possible la nouvelle version de Flower (dans l'ordre `git "
"shortlog`) :"

#: ../../source/ref-changelog.md:9
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Heng Pan`, `Javier`, `Robert "
"Steiner` <!---TOKEN_v1.13.1-->"
msgstr ""

#: ../../source/ref-changelog.md:11 ../../source/ref-changelog.md:43
#: ../../source/ref-changelog.md:144 ../../source/ref-changelog.md:246
#: ../../source/ref-changelog.md:350 ../../source/ref-changelog.md:448
#: ../../source/ref-changelog.md:548 ../../source/ref-changelog.md:612
#: ../../source/ref-changelog.md:705 ../../source/ref-changelog.md:805
#: ../../source/ref-changelog.md:889 ../../source/ref-changelog.md:953
#: ../../source/ref-changelog.md:1011 ../../source/ref-changelog.md:1080
#: ../../source/ref-changelog.md:1209 ../../source/ref-changelog.md:1251
#: ../../source/ref-changelog.md:1318 ../../source/ref-changelog.md:1384
#: ../../source/ref-changelog.md:1429 ../../source/ref-changelog.md:1468
#: ../../source/ref-changelog.md:1501 ../../source/ref-changelog.md:1551
msgid "What's new?"
msgstr "Quoi de neuf ?"

#: ../../source/ref-changelog.md:13
#, fuzzy
msgid ""
"**Fix `SimulationEngine` Executor for SuperLink** "
"([#4563](https://github.com/adap/flower/pull/4563), "
"[#4568](https://github.com/adap/flower/pull/4568), "
"[#4570](https://github.com/adap/flower/pull/4570))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:15
msgid ""
"Resolved an issue that prevented SuperLink from functioning correctly "
"when using the `SimulationEngine` executor."
msgstr ""

#: ../../source/ref-changelog.md:17
#, fuzzy
msgid ""
"**Improve FAB build and install** "
"([#4571](https://github.com/adap/flower/pull/4571))"
msgstr ""
"**Nouvelle stratégie de FedMedian** "
"([#1461](https://github.com/adap/flower/pull/1461))"

#: ../../source/ref-changelog.md:19
msgid ""
"An updated FAB build and install process produces smaller FAB files and "
"doesn't rely on `pip install` any more. It also resolves an issue where "
"all files were unnecessarily included in the FAB file. The `flwr` CLI "
"commands now correctly pack only the necessary files, such as `.md`, "
"`.toml` and `.py`, ensuring more efficient and accurate packaging."
msgstr ""

#: ../../source/ref-changelog.md:21
#, fuzzy
msgid ""
"**Update** `embedded-devices` **example** "
"([#4381](https://github.com/adap/flower/pull/4381))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:23
msgid "The example now uses the `flwr run` command and the Deployment Engine."
msgstr ""

#: ../../source/ref-changelog.md:25
#, fuzzy
msgid ""
"**Update Documentation** "
"([#4566](https://github.com/adap/flower/pull/4566), "
"[#4569](https://github.com/adap/flower/pull/4569), "
"[#4560](https://github.com/adap/flower/pull/4560), "
"[#4556](https://github.com/adap/flower/pull/4556), "
"[#4581](https://github.com/adap/flower/pull/4581), "
"[#4537](https://github.com/adap/flower/pull/4537), "
"[#4562](https://github.com/adap/flower/pull/4562), "
"[#4582](https://github.com/adap/flower/pull/4582))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:27
msgid ""
"Enhanced documentation across various aspects, including updates to "
"translation workflows, Docker-related READMEs, and recommended datasets. "
"Improvements also include formatting fixes for dataset partitioning docs "
"and better references to resources in the datasets documentation index."
msgstr ""

#: ../../source/ref-changelog.md:29
#, fuzzy
msgid ""
"**Update Infrastructure and CI/CD** "
"([#4577](https://github.com/adap/flower/pull/4577), "
"[#4578](https://github.com/adap/flower/pull/4578), "
"[#4558](https://github.com/adap/flower/pull/4558), "
"[#4551](https://github.com/adap/flower/pull/4551), "
"[#3356](https://github.com/adap/flower/pull/3356), "
"[#4559](https://github.com/adap/flower/pull/4559), "
"[#4575](https://github.com/adap/flower/pull/4575))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:31
#, fuzzy
msgid ""
"**General improvements** "
"([#4557](https://github.com/adap/flower/pull/4557), "
"[#4564](https://github.com/adap/flower/pull/4564), "
"[#4573](https://github.com/adap/flower/pull/4573), "
"[#4561](https://github.com/adap/flower/pull/4561), "
"[#4579](https://github.com/adap/flower/pull/4579), "
"[#4572](https://github.com/adap/flower/pull/4572))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:33 ../../source/ref-changelog.md:102
#: ../../source/ref-changelog.md:198 ../../source/ref-changelog.md:301
#: ../../source/ref-changelog.md:408
msgid ""
"As always, many parts of the Flower framework and quality infrastructure "
"were improved and updated."
msgstr ""

#: ../../source/ref-changelog.md:35
#, fuzzy
msgid "v1.13.0 (2024-11-20)"
msgstr "v1.4.0 (2023-04-21)"

#: ../../source/ref-changelog.md:41
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. "
"Beutel`, `Daniel Nata Nugraha`, `Dimitris Stripelis`, `Heng Pan`, "
"`Javier`, `Mohammad Naseri`, `Robert Steiner`, `Waris Gill`, `William "
"Lindskog`, `Yan Gao`, `Yao Xu`, `wwjang` <!---TOKEN_v1.13.0-->"
msgstr ""

#: ../../source/ref-changelog.md:45
#, fuzzy
msgid ""
"**Introduce `flwr ls` command** "
"([#4460](https://github.com/adap/flower/pull/4460), "
"[#4459](https://github.com/adap/flower/pull/4459), "
"[#4477](https://github.com/adap/flower/pull/4477))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:47
msgid ""
"The `flwr ls` command is now available to display details about all runs "
"(or one specific run). It supports the following usage options:"
msgstr ""

#: ../../source/ref-changelog.md:49
msgid "`flwr ls --runs [<app>] [<federation>]`: Lists all runs."
msgstr ""

#: ../../source/ref-changelog.md:50
msgid ""
"`flwr ls --run-id <run-id> [<app>] [<federation>]`: Displays details for "
"a specific run."
msgstr ""

#: ../../source/ref-changelog.md:52
msgid ""
"This command provides information including the run ID, FAB ID and "
"version, run status, elapsed time, and timestamps for when the run was "
"created, started running, and finished."
msgstr ""

#: ../../source/ref-changelog.md:54
#, fuzzy
msgid ""
"**Fuse SuperLink and SuperExec** "
"([#4358](https://github.com/adap/flower/pull/4358), "
"[#4403](https://github.com/adap/flower/pull/4403), "
"[#4406](https://github.com/adap/flower/pull/4406), "
"[#4357](https://github.com/adap/flower/pull/4357), "
"[#4359](https://github.com/adap/flower/pull/4359), "
"[#4354](https://github.com/adap/flower/pull/4354), "
"[#4229](https://github.com/adap/flower/pull/4229), "
"[#4283](https://github.com/adap/flower/pull/4283), "
"[#4352](https://github.com/adap/flower/pull/4352))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:56
msgid ""
"SuperExec has been integrated into SuperLink, enabling SuperLink to "
"directly manage ServerApp processes (`flwr-serverapp`). The `flwr` CLI "
"now targets SuperLink's Exec API. Additionally, SuperLink introduces two "
"isolation modes for running ServerApps: `subprocess` (default) and "
"`process`, which can be specified using the `--isolation "
"{subprocess,process}` flag."
msgstr ""

#: ../../source/ref-changelog.md:58
#, fuzzy
msgid ""
"**Introduce `flwr-serverapp` command** "
"([#4394](https://github.com/adap/flower/pull/4394), "
"[#4370](https://github.com/adap/flower/pull/4370), "
"[#4367](https://github.com/adap/flower/pull/4367), "
"[#4350](https://github.com/adap/flower/pull/4350), "
"[#4364](https://github.com/adap/flower/pull/4364), "
"[#4400](https://github.com/adap/flower/pull/4400), "
"[#4363](https://github.com/adap/flower/pull/4363), "
"[#4401](https://github.com/adap/flower/pull/4401), "
"[#4388](https://github.com/adap/flower/pull/4388), "
"[#4402](https://github.com/adap/flower/pull/4402))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:60
msgid ""
"The `flwr-serverapp` command has been introduced as a CLI entry point "
"that runs a `ServerApp` process. This process communicates with SuperLink"
" to load and execute the `ServerApp` object, enabling isolated execution "
"and more flexible deployment."
msgstr ""

#: ../../source/ref-changelog.md:62
#, fuzzy
msgid ""
"**Improve simulation engine and introduce `flwr-simulation` command** "
"([#4433](https://github.com/adap/flower/pull/4433), "
"[#4486](https://github.com/adap/flower/pull/4486), "
"[#4448](https://github.com/adap/flower/pull/4448), "
"[#4427](https://github.com/adap/flower/pull/4427), "
"[#4438](https://github.com/adap/flower/pull/4438), "
"[#4421](https://github.com/adap/flower/pull/4421), "
"[#4430](https://github.com/adap/flower/pull/4430), "
"[#4462](https://github.com/adap/flower/pull/4462))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:64
msgid ""
"The simulation engine has been significantly improved, resulting in "
"dramatically faster simulations. Additionally, the `flwr-simulation` "
"command has been introduced to enhance maintainability and provide a "
"dedicated entry point for running simulations."
msgstr ""

#: ../../source/ref-changelog.md:66
#, fuzzy
msgid ""
"**Improve SuperLink message management** "
"([#4378](https://github.com/adap/flower/pull/4378), "
"[#4369](https://github.com/adap/flower/pull/4369))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:68
msgid ""
"SuperLink now validates the destination node ID of instruction messages "
"and checks the TTL (time-to-live) for reply messages. When pulling reply "
"messages, an error reply will be generated and returned if the "
"corresponding instruction message does not exist, has expired, or if the "
"reply message exists but has expired."
msgstr ""

#: ../../source/ref-changelog.md:70
#, fuzzy
msgid ""
"**Introduce FedDebug baseline** "
"([#3783](https://github.com/adap/flower/pull/3783))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:72
msgid ""
"FedDebug is a framework that enhances debugging in Federated Learning by "
"enabling interactive inspection of the training process and automatically"
" identifying clients responsible for degrading the global model's "
"performance—all without requiring testing data or labels. Learn more in "
"the [FedDebug baseline "
"documentation](https://flower.ai/docs/baselines/feddebug.html)."
msgstr ""

#: ../../source/ref-changelog.md:74
msgid ""
"**Update documentation** "
"([#4511](https://github.com/adap/flower/pull/4511), "
"[#4010](https://github.com/adap/flower/pull/4010), "
"[#4396](https://github.com/adap/flower/pull/4396), "
"[#4499](https://github.com/adap/flower/pull/4499), "
"[#4269](https://github.com/adap/flower/pull/4269), "
"[#3340](https://github.com/adap/flower/pull/3340), "
"[#4482](https://github.com/adap/flower/pull/4482), "
"[#4387](https://github.com/adap/flower/pull/4387), "
"[#4342](https://github.com/adap/flower/pull/4342), "
"[#4492](https://github.com/adap/flower/pull/4492), "
"[#4474](https://github.com/adap/flower/pull/4474), "
"[#4500](https://github.com/adap/flower/pull/4500), "
"[#4514](https://github.com/adap/flower/pull/4514), "
"[#4236](https://github.com/adap/flower/pull/4236), "
"[#4112](https://github.com/adap/flower/pull/4112), "
"[#3367](https://github.com/adap/flower/pull/3367), "
"[#4501](https://github.com/adap/flower/pull/4501), "
"[#4373](https://github.com/adap/flower/pull/4373), "
"[#4409](https://github.com/adap/flower/pull/4409), "
"[#4356](https://github.com/adap/flower/pull/4356), "
"[#4520](https://github.com/adap/flower/pull/4520), "
"[#4524](https://github.com/adap/flower/pull/4524), "
"[#4525](https://github.com/adap/flower/pull/4525), "
"[#4526](https://github.com/adap/flower/pull/4526), "
"[#4527](https://github.com/adap/flower/pull/4527), "
"[#4528](https://github.com/adap/flower/pull/4528), "
"[#4545](https://github.com/adap/flower/pull/4545), "
"[#4522](https://github.com/adap/flower/pull/4522), "
"[#4534](https://github.com/adap/flower/pull/4534), "
"[#4513](https://github.com/adap/flower/pull/4513), "
"[#4529](https://github.com/adap/flower/pull/4529), "
"[#4441](https://github.com/adap/flower/pull/4441), "
"[#4530](https://github.com/adap/flower/pull/4530), "
"[#4470](https://github.com/adap/flower/pull/4470), "
"[#4553](https://github.com/adap/flower/pull/4553), "
"[#4531](https://github.com/adap/flower/pull/4531), "
"[#4554](https://github.com/adap/flower/pull/4554), "
"[#4555](https://github.com/adap/flower/pull/4555), "
"[#4552](https://github.com/adap/flower/pull/4552), "
"[#4533](https://github.com/adap/flower/pull/4533))"
msgstr ""

#: ../../source/ref-changelog.md:76
msgid ""
"Many documentation pages and tutorials have been updated to improve "
"clarity, fix typos, incorporate user feedback, and stay aligned with the "
"latest features in the framework. Key updates include adding a guide for "
"designing stateful `ClientApp` objects, updating the comprehensive guide "
"for setting up and running Flower's `Simulation Engine`, updating the "
"XGBoost, scikit-learn, and JAX quickstart tutorials to use `flwr run`, "
"updating DP guide, removing outdated pages, updating Docker docs, and "
"marking legacy functions as deprecated. The [Secure Aggregation "
"Protocols](https://flower.ai/docs/framework/contributor-ref-secure-"
"aggregation-protocols.html) page has also been updated."
msgstr ""

#: ../../source/ref-changelog.md:78
#, fuzzy
msgid ""
"**Update examples and templates** "
"([#4510](https://github.com/adap/flower/pull/4510), "
"[#4368](https://github.com/adap/flower/pull/4368), "
"[#4121](https://github.com/adap/flower/pull/4121), "
"[#4329](https://github.com/adap/flower/pull/4329), "
"[#4382](https://github.com/adap/flower/pull/4382), "
"[#4248](https://github.com/adap/flower/pull/4248), "
"[#4395](https://github.com/adap/flower/pull/4395), "
"[#4386](https://github.com/adap/flower/pull/4386), "
"[#4408](https://github.com/adap/flower/pull/4408))"
msgstr ""
"**Introduire l'API REST (expérimentale)** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"

#: ../../source/ref-changelog.md:80
msgid ""
"Multiple examples and templates have been updated to enhance usability "
"and correctness. The updates include the `30-minute-tutorial`, "
"`quickstart-jax`, `quickstart-pytorch`, `advanced-tensorflow` examples, "
"and the FlowerTune template."
msgstr ""

#: ../../source/ref-changelog.md:82
#, fuzzy
msgid ""
"**Improve Docker support** "
"([#4506](https://github.com/adap/flower/pull/4506), "
"[#4424](https://github.com/adap/flower/pull/4424), "
"[#4224](https://github.com/adap/flower/pull/4224), "
"[#4413](https://github.com/adap/flower/pull/4413), "
"[#4414](https://github.com/adap/flower/pull/4414), "
"[#4336](https://github.com/adap/flower/pull/4336), "
"[#4420](https://github.com/adap/flower/pull/4420), "
"[#4407](https://github.com/adap/flower/pull/4407), "
"[#4422](https://github.com/adap/flower/pull/4422), "
"[#4532](https://github.com/adap/flower/pull/4532), "
"[#4540](https://github.com/adap/flower/pull/4540))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:84
msgid ""
"Docker images and configurations have been updated, including updating "
"Docker Compose files to version 1.13.0, refactoring the Docker build "
"matrix for better maintainability, updating `docker/build-push-action` to"
" 6.9.0, and improving Docker documentation."
msgstr ""

#: ../../source/ref-changelog.md:86
#, fuzzy
msgid ""
"**Allow app installation without internet access** "
"([#4479](https://github.com/adap/flower/pull/4479), "
"[#4475](https://github.com/adap/flower/pull/4475))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:88
msgid ""
"The `flwr build` command now includes a wheel file in the FAB, enabling "
"Flower app installation in environments without internet access via `flwr"
" install`."
msgstr ""

#: ../../source/ref-changelog.md:90
#, fuzzy
msgid ""
"**Improve `flwr log` command** "
"([#4391](https://github.com/adap/flower/pull/4391), "
"[#4411](https://github.com/adap/flower/pull/4411), "
"[#4390](https://github.com/adap/flower/pull/4390), "
"[#4397](https://github.com/adap/flower/pull/4397))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:92
#, fuzzy
msgid ""
"**Refactor SuperNode for better maintainability and efficiency** "
"([#4439](https://github.com/adap/flower/pull/4439), "
"[#4348](https://github.com/adap/flower/pull/4348), "
"[#4512](https://github.com/adap/flower/pull/4512), "
"[#4485](https://github.com/adap/flower/pull/4485))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:94
#, fuzzy
msgid ""
"**Support NumPy `2.0`** "
"([#4440](https://github.com/adap/flower/pull/4440))"
msgstr ""
"**Support Python 3.10** "
"([#1320](https://github.com/adap/flower/pull/1320))"

#: ../../source/ref-changelog.md:96
#, fuzzy
msgid ""
"**Update infrastructure and CI/CD** "
"([#4466](https://github.com/adap/flower/pull/4466), "
"[#4419](https://github.com/adap/flower/pull/4419), "
"[#4338](https://github.com/adap/flower/pull/4338), "
"[#4334](https://github.com/adap/flower/pull/4334), "
"[#4456](https://github.com/adap/flower/pull/4456), "
"[#4446](https://github.com/adap/flower/pull/4446), "
"[#4415](https://github.com/adap/flower/pull/4415))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:98
#, fuzzy
msgid ""
"**Bugfixes** ([#4404](https://github.com/adap/flower/pull/4404), "
"[#4518](https://github.com/adap/flower/pull/4518), "
"[#4452](https://github.com/adap/flower/pull/4452), "
"[#4376](https://github.com/adap/flower/pull/4376), "
"[#4493](https://github.com/adap/flower/pull/4493), "
"[#4436](https://github.com/adap/flower/pull/4436), "
"[#4410](https://github.com/adap/flower/pull/4410), "
"[#4442](https://github.com/adap/flower/pull/4442), "
"[#4375](https://github.com/adap/flower/pull/4375), "
"[#4515](https://github.com/adap/flower/pull/4515))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:100
msgid ""
"**General improvements** "
"([#4454](https://github.com/adap/flower/pull/4454), "
"[#4365](https://github.com/adap/flower/pull/4365), "
"[#4423](https://github.com/adap/flower/pull/4423), "
"[#4516](https://github.com/adap/flower/pull/4516), "
"[#4509](https://github.com/adap/flower/pull/4509), "
"[#4498](https://github.com/adap/flower/pull/4498), "
"[#4371](https://github.com/adap/flower/pull/4371), "
"[#4449](https://github.com/adap/flower/pull/4449), "
"[#4488](https://github.com/adap/flower/pull/4488), "
"[#4478](https://github.com/adap/flower/pull/4478), "
"[#4392](https://github.com/adap/flower/pull/4392), "
"[#4483](https://github.com/adap/flower/pull/4483), "
"[#4517](https://github.com/adap/flower/pull/4517), "
"[#4330](https://github.com/adap/flower/pull/4330), "
"[#4458](https://github.com/adap/flower/pull/4458), "
"[#4347](https://github.com/adap/flower/pull/4347), "
"[#4429](https://github.com/adap/flower/pull/4429), "
"[#4463](https://github.com/adap/flower/pull/4463), "
"[#4496](https://github.com/adap/flower/pull/4496), "
"[#4508](https://github.com/adap/flower/pull/4508), "
"[#4444](https://github.com/adap/flower/pull/4444), "
"[#4417](https://github.com/adap/flower/pull/4417), "
"[#4504](https://github.com/adap/flower/pull/4504), "
"[#4418](https://github.com/adap/flower/pull/4418), "
"[#4480](https://github.com/adap/flower/pull/4480), "
"[#4455](https://github.com/adap/flower/pull/4455), "
"[#4468](https://github.com/adap/flower/pull/4468), "
"[#4385](https://github.com/adap/flower/pull/4385), "
"[#4487](https://github.com/adap/flower/pull/4487), "
"[#4393](https://github.com/adap/flower/pull/4393), "
"[#4489](https://github.com/adap/flower/pull/4489), "
"[#4389](https://github.com/adap/flower/pull/4389), "
"[#4507](https://github.com/adap/flower/pull/4507), "
"[#4469](https://github.com/adap/flower/pull/4469), "
"[#4340](https://github.com/adap/flower/pull/4340), "
"[#4353](https://github.com/adap/flower/pull/4353), "
"[#4494](https://github.com/adap/flower/pull/4494), "
"[#4461](https://github.com/adap/flower/pull/4461), "
"[#4362](https://github.com/adap/flower/pull/4362), "
"[#4473](https://github.com/adap/flower/pull/4473), "
"[#4405](https://github.com/adap/flower/pull/4405), "
"[#4416](https://github.com/adap/flower/pull/4416), "
"[#4453](https://github.com/adap/flower/pull/4453), "
"[#4491](https://github.com/adap/flower/pull/4491), "
"[#4539](https://github.com/adap/flower/pull/4539), "
"[#4542](https://github.com/adap/flower/pull/4542), "
"[#4538](https://github.com/adap/flower/pull/4538), "
"[#4543](https://github.com/adap/flower/pull/4543), "
"[#4541](https://github.com/adap/flower/pull/4541), "
"[#4550](https://github.com/adap/flower/pull/4550), "
"[#4481](https://github.com/adap/flower/pull/4481))"
msgstr ""

#: ../../source/ref-changelog.md:104 ../../source/ref-changelog.md:303
#: ../../source/ref-changelog.md:420 ../../source/ref-changelog.md:512
#: ../../source/ref-changelog.md:1495
msgid "Deprecations"
msgstr "Dépréciations"

#: ../../source/ref-changelog.md:106
#, fuzzy
msgid "**Deprecate Python 3.9**"
msgstr "**Créer le PR**"

#: ../../source/ref-changelog.md:108
msgid ""
"Flower is deprecating support for Python 3.9 as several of its "
"dependencies are phasing out compatibility with this version. While no "
"immediate changes have been made, users are encouraged to plan for "
"upgrading to a supported Python version."
msgstr ""

#: ../../source/ref-changelog.md:110 ../../source/ref-changelog.md:200
#: ../../source/ref-changelog.md:234 ../../source/ref-changelog.md:314
#: ../../source/ref-changelog.md:430 ../../source/ref-changelog.md:526
#: ../../source/ref-changelog.md:600 ../../source/ref-changelog.md:675
#: ../../source/ref-changelog.md:787 ../../source/ref-changelog.md:877
#: ../../source/ref-changelog.md:941 ../../source/ref-changelog.md:999
#: ../../source/ref-changelog.md:1068 ../../source/ref-changelog.md:1130
#: ../../source/ref-changelog.md:1149 ../../source/ref-changelog.md:1305
#: ../../source/ref-changelog.md:1376 ../../source/ref-changelog.md:1413
#: ../../source/ref-changelog.md:1456
msgid "Incompatible changes"
msgstr "Changements incompatibles"

#: ../../source/ref-changelog.md:112
#, fuzzy
msgid ""
"**Remove `flower-superexec` command** "
"([#4351](https://github.com/adap/flower/pull/4351))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:114
msgid ""
"The `flower-superexec` command, previously used to launch SuperExec, is "
"no longer functional as SuperExec has been merged into SuperLink. "
"Starting an additional SuperExec is no longer necessary when SuperLink is"
" initiated."
msgstr ""

#: ../../source/ref-changelog.md:116
#, fuzzy
msgid ""
"**Remove `flower-server-app` command** "
"([#4490](https://github.com/adap/flower/pull/4490))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:118
msgid ""
"The `flower-server-app` command has been removed. To start a Flower app, "
"please use the `flwr run` command instead."
msgstr ""

#: ../../source/ref-changelog.md:120
#, fuzzy
msgid ""
"**Remove `app` argument from `flower-supernode` command** "
"([#4497](https://github.com/adap/flower/pull/4497))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:122
msgid ""
"The usage of `flower-supernode <app-dir>` has been removed. SuperNode "
"will now load the FAB delivered by SuperLink, and it is no longer "
"possible to directly specify an app directory."
msgstr ""

#: ../../source/ref-changelog.md:124
#, fuzzy
msgid ""
"**Remove support for non-app simulations** "
"([#4431](https://github.com/adap/flower/pull/4431))"
msgstr ""
"**Améliorer la prise en charge des GPU dans les simulations** "
"([#1555](https://github.com/adap/flower/pull/1555))"

#: ../../source/ref-changelog.md:126
msgid ""
"The simulation engine (via `flower-simulation`) now exclusively supports "
"passing an app."
msgstr ""

#: ../../source/ref-changelog.md:128
#, fuzzy
msgid ""
"**Rename CLI arguments for `flower-superlink` command** "
"([#4412](https://github.com/adap/flower/pull/4412))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:130
msgid ""
"The `--driver-api-address` argument has been renamed to `--serverappio-"
"api-address` in the `flower-superlink` command to reflect the renaming of"
" the `Driver` service to the `ServerAppIo` service."
msgstr ""

#: ../../source/ref-changelog.md:132
#, fuzzy
msgid ""
"**Rename CLI arguments for `flwr-serverapp` and `flwr-clientapp` "
"commands** ([#4495](https://github.com/adap/flower/pull/4495))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:134
msgid ""
"The CLI arguments have been renamed for clarity and consistency. "
"Specifically, `--superlink` for `flwr-serverapp` is now `--serverappio-"
"api-address`, and `--supernode` for `flwr-clientapp` is now "
"`--clientappio-api-address`."
msgstr ""

#: ../../source/ref-changelog.md:136
#, fuzzy
msgid "v1.12.0 (2024-10-14)"
msgstr "v1.1.0 (2022-10-31)"

#: ../../source/ref-changelog.md:142
msgid ""
"`Adam Narozniak`, `Audris`, `Charles Beauville`, `Chong Shen Ng`, `Daniel"
" J. Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Jiahao Tan`, "
"`Julian Rußmeyer`, `Mohammad Naseri`, `Ray Sun`, `Robert Steiner`, `Yan "
"Gao`, `xiliguguagua` <!---TOKEN_v1.12.0-->"
msgstr ""

#: ../../source/ref-changelog.md:146
#, fuzzy
msgid ""
"**Introduce SuperExec log streaming** "
"([#3577](https://github.com/adap/flower/pull/3577), "
"[#3584](https://github.com/adap/flower/pull/3584), "
"[#4242](https://github.com/adap/flower/pull/4242), "
"[#3611](https://github.com/adap/flower/pull/3611), "
"[#3613](https://github.com/adap/flower/pull/3613))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:148
msgid ""
"Flower now supports log streaming from a remote SuperExec using the `flwr"
" log` command. This new feature allows you to monitor logs from SuperExec"
" in real time via `flwr log <run-id>` (or `flwr log <run-id> <app-dir> "
"<federation>`)."
msgstr ""

#: ../../source/ref-changelog.md:150
#, fuzzy
msgid ""
"**Improve `flwr new` templates** "
"([#4291](https://github.com/adap/flower/pull/4291), "
"[#4292](https://github.com/adap/flower/pull/4292), "
"[#4293](https://github.com/adap/flower/pull/4293), "
"[#4294](https://github.com/adap/flower/pull/4294), "
"[#4295](https://github.com/adap/flower/pull/4295))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:152
msgid ""
"The `flwr new` command templates for MLX, NumPy, sklearn, JAX, and "
"PyTorch have been updated to improve usability and consistency across "
"frameworks."
msgstr ""

#: ../../source/ref-changelog.md:154
#, fuzzy
msgid ""
"**Migrate ID handling to use unsigned 64-bit integers** "
"([#4170](https://github.com/adap/flower/pull/4170), "
"[#4237](https://github.com/adap/flower/pull/4237), "
"[#4243](https://github.com/adap/flower/pull/4243))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:156
msgid ""
"Node IDs, run IDs, and related fields have been migrated from signed "
"64-bit integers (`sint64`) to unsigned 64-bit integers (`uint64`). To "
"support this change, the `uint64` type is fully supported in all "
"communications. You may now use `uint64` values in config and metric "
"dictionaries. For Python users, that means using `int` values larger than"
" the maximum value of `sint64` but less than the maximum value of "
"`uint64`."
msgstr ""

#: ../../source/ref-changelog.md:158
#, fuzzy
msgid ""
"**Add Flower architecture explanation** "
"([#3270](https://github.com/adap/flower/pull/3270))"
msgstr ""
"**Documentation restructurée** "
"([#1387](https://github.com/adap/flower/pull/1387))"

#: ../../source/ref-changelog.md:160
msgid ""
"A new [Flower architecture explainer](https://flower.ai/docs/framework"
"/explanation-flower-architecture.html) page introduces Flower components "
"step-by-step. Check out the `EXPLANATIONS` section of the Flower "
"documentation if you're interested."
msgstr ""

#: ../../source/ref-changelog.md:162
#, fuzzy
msgid ""
"**Introduce FedRep baseline** "
"([#3790](https://github.com/adap/flower/pull/3790))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:164
msgid ""
"FedRep is a federated learning algorithm that learns shared data "
"representations across clients while allowing each to maintain "
"personalized local models, balancing collaboration and individual "
"adaptation. Read all the details in the paper: \"Exploiting Shared "
"Representations for Personalized Federated Learning\" "
"([arxiv](https://arxiv.org/abs/2102.07078))"
msgstr ""

#: ../../source/ref-changelog.md:166
#, fuzzy
msgid ""
"**Improve FlowerTune template and LLM evaluation pipelines** "
"([#4286](https://github.com/adap/flower/pull/4286), "
"[#3769](https://github.com/adap/flower/pull/3769), "
"[#4272](https://github.com/adap/flower/pull/4272), "
"[#4257](https://github.com/adap/flower/pull/4257), "
"[#4220](https://github.com/adap/flower/pull/4220), "
"[#4282](https://github.com/adap/flower/pull/4282), "
"[#4171](https://github.com/adap/flower/pull/4171), "
"[#4228](https://github.com/adap/flower/pull/4228), "
"[#4258](https://github.com/adap/flower/pull/4258), "
"[#4296](https://github.com/adap/flower/pull/4296), "
"[#4287](https://github.com/adap/flower/pull/4287), "
"[#4217](https://github.com/adap/flower/pull/4217), "
"[#4249](https://github.com/adap/flower/pull/4249), "
"[#4324](https://github.com/adap/flower/pull/4324), "
"[#4219](https://github.com/adap/flower/pull/4219), "
"[#4327](https://github.com/adap/flower/pull/4327))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1223](https://github.com/adap/flower/pull/1223), "
"[#1209](https://github.com/adap/flower/pull/1209), "
"[#1251](https://github.com/adap/flower/pull/1251), "
"[#1257](https://github.com/adap/flower/pull/1257), "
"[#1267](https://github.com/adap/flower/pull/1267), "
"[#1268](https://github.com/adap/flower/pull/1268), "
"[#1300](https://github.com/adap/flower/pull/1300), "
"[#1304](https://github.com/adap/flower/pull/1304), "
"[#1305](https://github.com/adap/flower/pull/1305), "
"[#1307](https://github.com/adap/flower/pull/1307))"

#: ../../source/ref-changelog.md:168
msgid ""
"Refined evaluation pipelines, metrics, and documentation for the upcoming"
" FlowerTune LLM Leaderboard across multiple domains including Finance, "
"Medical, and general NLP. Stay tuned for the official launch—we welcome "
"all federated learning and LLM enthusiasts to participate in this "
"exciting challenge!"
msgstr ""

#: ../../source/ref-changelog.md:170
#, fuzzy
msgid ""
"**Enhance Docker Support and Documentation** "
"([#4191](https://github.com/adap/flower/pull/4191), "
"[#4251](https://github.com/adap/flower/pull/4251), "
"[#4190](https://github.com/adap/flower/pull/4190), "
"[#3928](https://github.com/adap/flower/pull/3928), "
"[#4298](https://github.com/adap/flower/pull/4298), "
"[#4192](https://github.com/adap/flower/pull/4192), "
"[#4136](https://github.com/adap/flower/pull/4136), "
"[#4187](https://github.com/adap/flower/pull/4187), "
"[#4261](https://github.com/adap/flower/pull/4261), "
"[#4177](https://github.com/adap/flower/pull/4177), "
"[#4176](https://github.com/adap/flower/pull/4176), "
"[#4189](https://github.com/adap/flower/pull/4189), "
"[#4297](https://github.com/adap/flower/pull/4297), "
"[#4226](https://github.com/adap/flower/pull/4226))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:172
msgid ""
"Upgraded Ubuntu base image to 24.04, added SBOM and gcc to Docker images,"
" and comprehensively updated [Docker "
"documentation](https://flower.ai/docs/framework/docker/index.html) "
"including quickstart guides and distributed Docker Compose instructions."
msgstr ""

#: ../../source/ref-changelog.md:174
#, fuzzy
msgid ""
"**Introduce Flower glossary** "
"([#4165](https://github.com/adap/flower/pull/4165), "
"[#4235](https://github.com/adap/flower/pull/4235))"
msgstr ""
"**Introduction du SDK iOS (aperçu)** "
"([#1621](https://github.com/adap/flower/pull/1621), "
"[#1764](https://github.com/adap/flower/pull/1764))"

#: ../../source/ref-changelog.md:176
msgid ""
"Added the [Federated Learning glossary](https://flower.ai/glossary/) to "
"the Flower repository, located under the `flower/glossary/` directory. "
"This resource aims to provide clear definitions and explanations of key "
"FL concepts. Community contributions are highly welcomed to help expand "
"and refine this knowledge base — this is probably the easiest way to "
"become a Flower contributor!"
msgstr ""

#: ../../source/ref-changelog.md:178
#, fuzzy
msgid ""
"**Implement Message Time-to-Live (TTL)** "
"([#3620](https://github.com/adap/flower/pull/3620), "
"[#3596](https://github.com/adap/flower/pull/3596), "
"[#3615](https://github.com/adap/flower/pull/3615), "
"[#3609](https://github.com/adap/flower/pull/3609), "
"[#3635](https://github.com/adap/flower/pull/3635))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:180
msgid ""
"Added comprehensive TTL support for messages in Flower's SuperLink. "
"Messages are now automatically expired and cleaned up based on "
"configurable TTL values, available through the low-level API (and used by"
" default in the high-level API)."
msgstr ""

#: ../../source/ref-changelog.md:182
#, fuzzy
msgid ""
"**Improve FAB handling** "
"([#4303](https://github.com/adap/flower/pull/4303), "
"[#4264](https://github.com/adap/flower/pull/4264), "
"[#4305](https://github.com/adap/flower/pull/4305), "
"[#4304](https://github.com/adap/flower/pull/4304))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:184
msgid ""
"An 8-character hash is now appended to the FAB file name. The `flwr "
"install` command installs FABs with a more flattened folder structure, "
"reducing it from 3 levels to 1."
msgstr ""

#: ../../source/ref-changelog.md:186
#, fuzzy
msgid ""
"**Update documentation** "
"([#3341](https://github.com/adap/flower/pull/3341), "
"[#3338](https://github.com/adap/flower/pull/3338), "
"[#3927](https://github.com/adap/flower/pull/3927), "
"[#4152](https://github.com/adap/flower/pull/4152), "
"[#4151](https://github.com/adap/flower/pull/4151), "
"[#3993](https://github.com/adap/flower/pull/3993))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:188
msgid ""
"Updated quickstart tutorials (PyTorch Lightning, TensorFlow, Hugging "
"Face, Fastai) to use the new `flwr run` command and removed default title"
" from documentation base template. A new blockchain example has been "
"added to FAQ."
msgstr ""

#: ../../source/ref-changelog.md:190
#, fuzzy
msgid ""
"**Update example projects** "
"([#3716](https://github.com/adap/flower/pull/3716), "
"[#4007](https://github.com/adap/flower/pull/4007), "
"[#4130](https://github.com/adap/flower/pull/4130), "
"[#4234](https://github.com/adap/flower/pull/4234), "
"[#4206](https://github.com/adap/flower/pull/4206), "
"[#4188](https://github.com/adap/flower/pull/4188), "
"[#4247](https://github.com/adap/flower/pull/4247), "
"[#4331](https://github.com/adap/flower/pull/4331))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:192
msgid ""
"Refreshed multiple example projects including vertical FL, PyTorch "
"(advanced), Pandas, Secure Aggregation, and XGBoost examples. Optimized "
"Hugging Face quickstart with a smaller language model and removed legacy "
"simulation examples."
msgstr ""

#: ../../source/ref-changelog.md:194
#, fuzzy
msgid ""
"**Update translations** "
"([#4070](https://github.com/adap/flower/pull/4070), "
"[#4316](https://github.com/adap/flower/pull/4316), "
"[#4252](https://github.com/adap/flower/pull/4252), "
"[#4256](https://github.com/adap/flower/pull/4256), "
"[#4210](https://github.com/adap/flower/pull/4210), "
"[#4263](https://github.com/adap/flower/pull/4263), "
"[#4259](https://github.com/adap/flower/pull/4259))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:196
msgid ""
"**General improvements** "
"([#4239](https://github.com/adap/flower/pull/4239), "
"[4276](https://github.com/adap/flower/pull/4276), "
"[4204](https://github.com/adap/flower/pull/4204), "
"[4184](https://github.com/adap/flower/pull/4184), "
"[4227](https://github.com/adap/flower/pull/4227), "
"[4183](https://github.com/adap/flower/pull/4183), "
"[4202](https://github.com/adap/flower/pull/4202), "
"[4250](https://github.com/adap/flower/pull/4250), "
"[4267](https://github.com/adap/flower/pull/4267), "
"[4246](https://github.com/adap/flower/pull/4246), "
"[4240](https://github.com/adap/flower/pull/4240), "
"[4265](https://github.com/adap/flower/pull/4265), "
"[4238](https://github.com/adap/flower/pull/4238), "
"[4275](https://github.com/adap/flower/pull/4275), "
"[4318](https://github.com/adap/flower/pull/4318), "
"[#4178](https://github.com/adap/flower/pull/4178), "
"[#4315](https://github.com/adap/flower/pull/4315), "
"[#4241](https://github.com/adap/flower/pull/4241), "
"[#4289](https://github.com/adap/flower/pull/4289), "
"[#4290](https://github.com/adap/flower/pull/4290), "
"[#4181](https://github.com/adap/flower/pull/4181), "
"[#4208](https://github.com/adap/flower/pull/4208), "
"[#4225](https://github.com/adap/flower/pull/4225), "
"[#4314](https://github.com/adap/flower/pull/4314), "
"[#4174](https://github.com/adap/flower/pull/4174), "
"[#4203](https://github.com/adap/flower/pull/4203), "
"[#4274](https://github.com/adap/flower/pull/4274), "
"[#3154](https://github.com/adap/flower/pull/3154), "
"[#4201](https://github.com/adap/flower/pull/4201), "
"[#4268](https://github.com/adap/flower/pull/4268), "
"[#4254](https://github.com/adap/flower/pull/4254), "
"[#3990](https://github.com/adap/flower/pull/3990), "
"[#4212](https://github.com/adap/flower/pull/4212), "
"[#2938](https://github.com/adap/flower/pull/2938), "
"[#4205](https://github.com/adap/flower/pull/4205), "
"[#4222](https://github.com/adap/flower/pull/4222), "
"[#4313](https://github.com/adap/flower/pull/4313), "
"[#3936](https://github.com/adap/flower/pull/3936), "
"[#4278](https://github.com/adap/flower/pull/4278), "
"[#4319](https://github.com/adap/flower/pull/4319), "
"[#4332](https://github.com/adap/flower/pull/4332), "
"[#4333](https://github.com/adap/flower/pull/4333))"
msgstr ""

#: ../../source/ref-changelog.md:202
#, fuzzy
msgid ""
"**Drop Python 3.8 support and update minimum version to 3.9** "
"([#4180](https://github.com/adap/flower/pull/4180), "
"[#4213](https://github.com/adap/flower/pull/4213), "
"[#4193](https://github.com/adap/flower/pull/4193), "
"[#4199](https://github.com/adap/flower/pull/4199), "
"[#4196](https://github.com/adap/flower/pull/4196), "
"[#4195](https://github.com/adap/flower/pull/4195), "
"[#4198](https://github.com/adap/flower/pull/4198), "
"[#4194](https://github.com/adap/flower/pull/4194))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:204
msgid ""
"Python 3.8 support was deprecated in Flower 1.9, and this release removes"
" support. Flower now requires Python 3.9 or later (Python 3.11 is "
"recommended). CI and documentation were updated to use Python 3.9 as the "
"minimum supported version. Flower now supports Python 3.9 to 3.12."
msgstr ""

#: ../../source/ref-changelog.md:206
#, fuzzy
msgid "v1.11.1 (2024-09-11)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:212
msgid ""
"`Charles Beauville`, `Chong Shen Ng`, `Daniel J. Beutel`, `Heng Pan`, "
"`Javier`, `Robert Steiner`, `Yan Gao` <!---TOKEN_v1.11.1-->"
msgstr ""

#: ../../source/ref-changelog.md:214
#, fuzzy
msgid "Improvements"
msgstr "Améliorations facultatives"

#: ../../source/ref-changelog.md:216
#, fuzzy
msgid ""
"**Implement** `keys/values/items` **methods for** `TypedDict` "
"([#4146](https://github.com/adap/flower/pull/4146))"
msgstr ""
"**Make** `get_parameters` **configurable** "
"([#1242](https://github.com/adap/flower/pull/1242))"

#: ../../source/ref-changelog.md:218
#, fuzzy
msgid ""
"**Fix parsing of** `--executor-config` **if present** "
"([#4125](https://github.com/adap/flower/pull/4125))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:220
#, fuzzy
msgid ""
"**Adjust framework name in templates docstrings** "
"([#4127](https://github.com/adap/flower/pull/4127))"
msgstr ""
"**Nouvel exemple de code scikit-learn** "
"([#748](https://github.com/adap/flower/pull/748))"

#: ../../source/ref-changelog.md:222
#, fuzzy
msgid ""
"**Update** `flwr new` **Hugging Face template** "
"([#4169](https://github.com/adap/flower/pull/4169))"
msgstr ""
"**Nouvel exemple de code pour les Transformers à visage embrassant** "
"([#863](https://github.com/adap/flower/pull/863))"

#: ../../source/ref-changelog.md:224
#, fuzzy
msgid ""
"**Fix** `flwr new` **FlowerTune template** "
"([#4123](https://github.com/adap/flower/pull/4123))"
msgstr ""
"**Nouvel exemple de code CoreML pour iOS** "
"([#1289](https://github.com/adap/flower/pull/1289))"

#: ../../source/ref-changelog.md:226
#, fuzzy
msgid ""
"**Add buffer time after** `ServerApp` **thread initialization** "
"([#4119](https://github.com/adap/flower/pull/4119))"
msgstr ""
"**Ajouter des mesures de formation à** `History` **objet pendant les "
"simulations** ([#1696](https://github.com/adap/flower/pull/1696))"

#: ../../source/ref-changelog.md:228
#, fuzzy
msgid ""
"**Handle unsuitable resources for simulation** "
"([#4143](https://github.com/adap/flower/pull/4143))"
msgstr ""
"**Ajouter un nouveau guide pratique pour le suivi des simulations** "
"([#1649](https://github.com/adap/flower/pull/1649))"

#: ../../source/ref-changelog.md:230
#, fuzzy
msgid ""
"**Update example READMEs** "
"([#4117](https://github.com/adap/flower/pull/4117))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:232
#, fuzzy
msgid ""
"**Update SuperNode authentication docs** "
"([#4160](https://github.com/adap/flower/pull/4160))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:238
#, fuzzy
msgid "v1.11.0 (2024-08-30)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:244
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. "
"Beutel`, `Daniel Nata Nugraha`, `Danny`, `Edoardo Gabrielli`, `Heng Pan`,"
" `Javier`, `Meng Yan`, `Michal Danilowski`, `Mohammad Naseri`, `Robert "
"Steiner`, `Steve Laskaridis`, `Taner Topal`, `Yan Gao` <!---"
"TOKEN_v1.11.0-->"
msgstr ""

#: ../../source/ref-changelog.md:248
msgid ""
"**Deliver Flower App Bundle (FAB) to SuperLink and SuperNodes** "
"([#4006](https://github.com/adap/flower/pull/4006), "
"[#3945](https://github.com/adap/flower/pull/3945), "
"[#3999](https://github.com/adap/flower/pull/3999), "
"[#4027](https://github.com/adap/flower/pull/4027), "
"[#3851](https://github.com/adap/flower/pull/3851), "
"[#3946](https://github.com/adap/flower/pull/3946), "
"[#4003](https://github.com/adap/flower/pull/4003), "
"[#4029](https://github.com/adap/flower/pull/4029), "
"[#3942](https://github.com/adap/flower/pull/3942), "
"[#3957](https://github.com/adap/flower/pull/3957), "
"[#4020](https://github.com/adap/flower/pull/4020), "
"[#4044](https://github.com/adap/flower/pull/4044), "
"[#3852](https://github.com/adap/flower/pull/3852), "
"[#4019](https://github.com/adap/flower/pull/4019), "
"[#4031](https://github.com/adap/flower/pull/4031), "
"[#4036](https://github.com/adap/flower/pull/4036), "
"[#4049](https://github.com/adap/flower/pull/4049), "
"[#4017](https://github.com/adap/flower/pull/4017), "
"[#3943](https://github.com/adap/flower/pull/3943), "
"[#3944](https://github.com/adap/flower/pull/3944), "
"[#4011](https://github.com/adap/flower/pull/4011), "
"[#3619](https://github.com/adap/flower/pull/3619))"
msgstr ""

#: ../../source/ref-changelog.md:250
msgid ""
"Dynamic code updates are here! `flwr run` can now ship and install the "
"latest version of your `ServerApp` and `ClientApp` to an already-running "
"federation (SuperLink and SuperNodes)."
msgstr ""

#: ../../source/ref-changelog.md:252
msgid ""
"How does it work? `flwr run` bundles your Flower app into a single FAB "
"(Flower App Bundle) file. It then ships this FAB file, via the SuperExec,"
" to both the SuperLink and those SuperNodes that need it. This allows you"
" to keep SuperExec, SuperLink and SuperNodes running as permanent "
"infrastructure, and then ship code updates (including completely new "
"projects!) dynamically."
msgstr ""

#: ../../source/ref-changelog.md:254
msgid "`flwr run` is all you need."
msgstr ""

#: ../../source/ref-changelog.md:256
#, fuzzy
msgid ""
"**Introduce isolated** `ClientApp` **execution** "
"([#3970](https://github.com/adap/flower/pull/3970), "
"[#3976](https://github.com/adap/flower/pull/3976), "
"[#4002](https://github.com/adap/flower/pull/4002), "
"[#4001](https://github.com/adap/flower/pull/4001), "
"[#4034](https://github.com/adap/flower/pull/4034), "
"[#4037](https://github.com/adap/flower/pull/4037), "
"[#3977](https://github.com/adap/flower/pull/3977), "
"[#4042](https://github.com/adap/flower/pull/4042), "
"[#3978](https://github.com/adap/flower/pull/3978), "
"[#4039](https://github.com/adap/flower/pull/4039), "
"[#4033](https://github.com/adap/flower/pull/4033), "
"[#3971](https://github.com/adap/flower/pull/3971), "
"[#4035](https://github.com/adap/flower/pull/4035), "
"[#3973](https://github.com/adap/flower/pull/3973), "
"[#4032](https://github.com/adap/flower/pull/4032))"
msgstr ""
"**Améliorations générales** "
"([#1491](https://github.com/adap/flower/pull/1491), "
"[#1504](https://github.com/adap/flower/pull/1504), "
"[#1506](https://github.com/adap/flower/pull/1506), "
"[#1514](https://github.com/adap/flower/pull/1514), "
"[#1522](https://github.com/adap/flower/pull/1522), "
"[#1523](https://github.com/adap/flower/pull/1523), "
"[#1526](https://github.com/adap/flower/pull/1526), "
"[#1528](https://github.com/adap/flower/pull/1528), "
"[#1547](https://github.com/adap/flower/pull/1547), "
"[#1549](https://github.com/adap/flower/pull/1549), "
"[#1560](https://github.com/adap/flower/pull/1560), "
"[#1564](https://github.com/adap/flower/pull/1564), "
"[#1566](https://github.com/adap/flower/pull/1566))"

#: ../../source/ref-changelog.md:258
msgid ""
"The SuperNode can now run your `ClientApp` in a fully isolated way. In an"
" enterprise deployment, this allows you to set strict limits on what the "
"`ClientApp` can and cannot do."
msgstr ""

#: ../../source/ref-changelog.md:260
msgid "`flower-supernode` supports three `--isolation` modes:"
msgstr ""

#: ../../source/ref-changelog.md:262
msgid ""
"Unset: The SuperNode runs the `ClientApp` in the same process (as in "
"previous versions of Flower). This is the default mode."
msgstr ""

#: ../../source/ref-changelog.md:263
msgid ""
"`--isolation=subprocess`: The SuperNode starts a subprocess to run the "
"`ClientApp`."
msgstr ""

#: ../../source/ref-changelog.md:264
msgid ""
"`--isolation=process`: The SuperNode expects an externally-managed "
"process to run the `ClientApp`. This external process is not managed by "
"the SuperNode, so it has to be started beforehand and terminated "
"manually. The common way to use this isolation mode is via the new "
"`flwr/clientapp` Docker image."
msgstr ""

#: ../../source/ref-changelog.md:266
#, fuzzy
msgid ""
"**Improve Docker support for enterprise deployments** "
"([#4050](https://github.com/adap/flower/pull/4050), "
"[#4090](https://github.com/adap/flower/pull/4090), "
"[#3784](https://github.com/adap/flower/pull/3784), "
"[#3998](https://github.com/adap/flower/pull/3998), "
"[#4094](https://github.com/adap/flower/pull/4094), "
"[#3722](https://github.com/adap/flower/pull/3722))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:268
msgid ""
"Flower 1.11 ships many Docker improvements that are especially useful for"
" enterprise deployments:"
msgstr ""

#: ../../source/ref-changelog.md:270
msgid "`flwr/supernode` comes with a new Alpine Docker image."
msgstr ""

#: ../../source/ref-changelog.md:271
msgid ""
"`flwr/clientapp` is a new image to be used with the `--isolation=process`"
" option. In this mode, SuperNode and `ClientApp` run in two different "
"Docker containers. `flwr/supernode` (preferably the Alpine version) runs "
"the long-running SuperNode with `--isolation=process`. `flwr/clientapp` "
"runs the `ClientApp`. This is the recommended way to deploy Flower in "
"enterprise settings."
msgstr ""

#: ../../source/ref-changelog.md:272
msgid ""
"New all-in-one Docker Compose enables you to easily start a full Flower "
"Deployment Engine on a single machine."
msgstr ""

#: ../../source/ref-changelog.md:273
msgid ""
"Completely new Docker documentation: "
"https://flower.ai/docs/framework/docker/index.html"
msgstr ""

#: ../../source/ref-changelog.md:275
#, fuzzy
msgid ""
"**Improve SuperNode authentication** "
"([#4043](https://github.com/adap/flower/pull/4043), "
"[#4047](https://github.com/adap/flower/pull/4047), "
"[#4074](https://github.com/adap/flower/pull/4074))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:277
msgid ""
"SuperNode auth has been improved in several ways, including improved "
"logging, improved testing, and improved error handling."
msgstr ""

#: ../../source/ref-changelog.md:279
#, fuzzy
msgid ""
"**Update** `flwr new` **templates** "
"([#3933](https://github.com/adap/flower/pull/3933), "
"[#3894](https://github.com/adap/flower/pull/3894), "
"[#3930](https://github.com/adap/flower/pull/3930), "
"[#3931](https://github.com/adap/flower/pull/3931), "
"[#3997](https://github.com/adap/flower/pull/3997), "
"[#3979](https://github.com/adap/flower/pull/3979), "
"[#3965](https://github.com/adap/flower/pull/3965), "
"[#4013](https://github.com/adap/flower/pull/4013), "
"[#4064](https://github.com/adap/flower/pull/4064))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:281
msgid ""
"All `flwr new` templates have been updated to show the latest recommended"
" use of Flower APIs."
msgstr ""

#: ../../source/ref-changelog.md:283
#, fuzzy
msgid ""
"**Improve Simulation Engine** "
"([#4095](https://github.com/adap/flower/pull/4095), "
"[#3913](https://github.com/adap/flower/pull/3913), "
"[#4059](https://github.com/adap/flower/pull/4059), "
"[#3954](https://github.com/adap/flower/pull/3954), "
"[#4071](https://github.com/adap/flower/pull/4071), "
"[#3985](https://github.com/adap/flower/pull/3985), "
"[#3988](https://github.com/adap/flower/pull/3988))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:285
msgid ""
"The Flower Simulation Engine comes with several updates, including "
"improved run config support, verbose logging, simulation backend "
"configuration via `flwr run`, and more."
msgstr ""

#: ../../source/ref-changelog.md:287
#, fuzzy
msgid ""
"**Improve** `RecordSet` "
"([#4052](https://github.com/adap/flower/pull/4052), "
"[#3218](https://github.com/adap/flower/pull/3218), "
"[#4016](https://github.com/adap/flower/pull/4016))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:289
msgid ""
"`RecordSet` is the core object to exchange model parameters, "
"configuration values and metrics between `ClientApp` and `ServerApp`. "
"This release ships several smaller improvements to `RecordSet` and "
"related `*Record` types."
msgstr ""

#: ../../source/ref-changelog.md:291
#, fuzzy
msgid ""
"**Update documentation** "
"([#3972](https://github.com/adap/flower/pull/3972), "
"[#3925](https://github.com/adap/flower/pull/3925), "
"[#4061](https://github.com/adap/flower/pull/4061), "
"[#3984](https://github.com/adap/flower/pull/3984), "
"[#3917](https://github.com/adap/flower/pull/3917), "
"[#3900](https://github.com/adap/flower/pull/3900), "
"[#4066](https://github.com/adap/flower/pull/4066), "
"[#3765](https://github.com/adap/flower/pull/3765), "
"[#4021](https://github.com/adap/flower/pull/4021), "
"[#3906](https://github.com/adap/flower/pull/3906), "
"[#4063](https://github.com/adap/flower/pull/4063), "
"[#4076](https://github.com/adap/flower/pull/4076), "
"[#3920](https://github.com/adap/flower/pull/3920), "
"[#3916](https://github.com/adap/flower/pull/3916))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1223](https://github.com/adap/flower/pull/1223), "
"[#1209](https://github.com/adap/flower/pull/1209), "
"[#1251](https://github.com/adap/flower/pull/1251), "
"[#1257](https://github.com/adap/flower/pull/1257), "
"[#1267](https://github.com/adap/flower/pull/1267), "
"[#1268](https://github.com/adap/flower/pull/1268), "
"[#1300](https://github.com/adap/flower/pull/1300), "
"[#1304](https://github.com/adap/flower/pull/1304), "
"[#1305](https://github.com/adap/flower/pull/1305), "
"[#1307](https://github.com/adap/flower/pull/1307))"

#: ../../source/ref-changelog.md:293
msgid ""
"Many parts of the documentation, including the main tutorial, have been "
"migrated to show new Flower APIs and other new Flower features like the "
"improved Docker support."
msgstr ""

#: ../../source/ref-changelog.md:295
msgid ""
"**Migrate code example to use new Flower APIs** "
"([#3758](https://github.com/adap/flower/pull/3758), "
"[#3701](https://github.com/adap/flower/pull/3701), "
"[#3919](https://github.com/adap/flower/pull/3919), "
"[#3918](https://github.com/adap/flower/pull/3918), "
"[#3934](https://github.com/adap/flower/pull/3934), "
"[#3893](https://github.com/adap/flower/pull/3893), "
"[#3833](https://github.com/adap/flower/pull/3833), "
"[#3922](https://github.com/adap/flower/pull/3922), "
"[#3846](https://github.com/adap/flower/pull/3846), "
"[#3777](https://github.com/adap/flower/pull/3777), "
"[#3874](https://github.com/adap/flower/pull/3874), "
"[#3873](https://github.com/adap/flower/pull/3873), "
"[#3935](https://github.com/adap/flower/pull/3935), "
"[#3754](https://github.com/adap/flower/pull/3754), "
"[#3980](https://github.com/adap/flower/pull/3980), "
"[#4089](https://github.com/adap/flower/pull/4089), "
"[#4046](https://github.com/adap/flower/pull/4046), "
"[#3314](https://github.com/adap/flower/pull/3314), "
"[#3316](https://github.com/adap/flower/pull/3316), "
"[#3295](https://github.com/adap/flower/pull/3295), "
"[#3313](https://github.com/adap/flower/pull/3313))"
msgstr ""

#: ../../source/ref-changelog.md:297
msgid "Many code examples have been migrated to use new Flower APIs."
msgstr ""

#: ../../source/ref-changelog.md:299
msgid ""
"**Update Flower framework, framework internals and quality "
"infrastructure** ([#4018](https://github.com/adap/flower/pull/4018), "
"[#4053](https://github.com/adap/flower/pull/4053), "
"[#4098](https://github.com/adap/flower/pull/4098), "
"[#4067](https://github.com/adap/flower/pull/4067), "
"[#4105](https://github.com/adap/flower/pull/4105), "
"[#4048](https://github.com/adap/flower/pull/4048), "
"[#4107](https://github.com/adap/flower/pull/4107), "
"[#4069](https://github.com/adap/flower/pull/4069), "
"[#3915](https://github.com/adap/flower/pull/3915), "
"[#4101](https://github.com/adap/flower/pull/4101), "
"[#4108](https://github.com/adap/flower/pull/4108), "
"[#3914](https://github.com/adap/flower/pull/3914), "
"[#4068](https://github.com/adap/flower/pull/4068), "
"[#4041](https://github.com/adap/flower/pull/4041), "
"[#4040](https://github.com/adap/flower/pull/4040), "
"[#3986](https://github.com/adap/flower/pull/3986), "
"[#4026](https://github.com/adap/flower/pull/4026), "
"[#3961](https://github.com/adap/flower/pull/3961), "
"[#3975](https://github.com/adap/flower/pull/3975), "
"[#3983](https://github.com/adap/flower/pull/3983), "
"[#4091](https://github.com/adap/flower/pull/4091), "
"[#3982](https://github.com/adap/flower/pull/3982), "
"[#4079](https://github.com/adap/flower/pull/4079), "
"[#4073](https://github.com/adap/flower/pull/4073), "
"[#4060](https://github.com/adap/flower/pull/4060), "
"[#4106](https://github.com/adap/flower/pull/4106), "
"[#4080](https://github.com/adap/flower/pull/4080), "
"[#3974](https://github.com/adap/flower/pull/3974), "
"[#3996](https://github.com/adap/flower/pull/3996), "
"[#3991](https://github.com/adap/flower/pull/3991), "
"[#3981](https://github.com/adap/flower/pull/3981), "
"[#4093](https://github.com/adap/flower/pull/4093), "
"[#4100](https://github.com/adap/flower/pull/4100), "
"[#3939](https://github.com/adap/flower/pull/3939), "
"[#3955](https://github.com/adap/flower/pull/3955), "
"[#3940](https://github.com/adap/flower/pull/3940), "
"[#4038](https://github.com/adap/flower/pull/4038))"
msgstr ""

#: ../../source/ref-changelog.md:305
#, fuzzy
msgid ""
"**Deprecate accessing `Context` via `Client.context`** "
"([#3797](https://github.com/adap/flower/pull/3797))"
msgstr ""
"**Supprimer les installations supplémentaires no-op dépréciées** "
"([#973](https://github.com/adap/flower/pull/973))"

#: ../../source/ref-changelog.md:307
msgid ""
"Now that both `client_fn` and `server_fn` receive a `Context` object, "
"accessing `Context` via `Client.context` is deprecated. `Client.context` "
"will be removed in a future release. If you need to access `Context` in "
"your `Client` implementation, pass it manually when creating the `Client`"
" instance in `client_fn`:"
msgstr ""

#: ../../source/ref-changelog.md:316
#, fuzzy
msgid ""
"**Update CLIs to accept an app directory instead of** `ClientApp` **and**"
" `ServerApp` ([#3952](https://github.com/adap/flower/pull/3952), "
"[#4077](https://github.com/adap/flower/pull/4077), "
"[#3850](https://github.com/adap/flower/pull/3850))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:318
msgid ""
"The CLI commands `flower-supernode` and `flower-server-app` now accept an"
" app directory as argument (instead of references to a `ClientApp` or "
"`ServerApp`). An app directory is any directory containing a "
"`pyproject.toml` file (with the appropriate Flower config fields set). "
"The easiest way to generate a compatible project structure is to use "
"`flwr new`."
msgstr ""

#: ../../source/ref-changelog.md:320
#, fuzzy
msgid ""
"**Disable** `flower-client-app` **CLI command** "
"([#4022](https://github.com/adap/flower/pull/4022))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:322
msgid "`flower-client-app` has been disabled. Use `flower-supernode` instead."
msgstr ""

#: ../../source/ref-changelog.md:324
#, fuzzy
msgid ""
"**Use spaces instead of commas for separating config args** "
"([#4000](https://github.com/adap/flower/pull/4000))"
msgstr ""
"**Métriques personnalisées pour le serveur et les stratégies** "
"([#717](https://github.com/adap/flower/pull/717))"

#: ../../source/ref-changelog.md:326
msgid ""
"When passing configs (run config, node config) to Flower, you now need to"
" separate key-value pairs using spaces instead of commas. For example:"
msgstr ""

#: ../../source/ref-changelog.md:332
msgid "Previously, you could pass configs using commas, like this:"
msgstr ""

#: ../../source/ref-changelog.md:338
#, fuzzy
msgid ""
"**Remove** `flwr example` **CLI command** "
"([#4084](https://github.com/adap/flower/pull/4084))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:340
msgid ""
"The experimental `flwr example` CLI command has been removed. Use `flwr "
"new` to generate a project and then run it using `flwr run`."
msgstr ""

#: ../../source/ref-changelog.md:342
#, fuzzy
msgid "v1.10.0 (2024-07-24)"
msgstr "v1.0.0 (2022-07-28)"

#: ../../source/ref-changelog.md:348
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. "
"Beutel`, `Daniel Nata Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, "
"`Ikko Eltociear Ashimine`, `Javier`, `Jiahao Tan`, `Mohammad Naseri`, "
"`Robert Steiner`, `Sebastian van der Voort`, `Taner Topal`, `Yan Gao` <!"
"---TOKEN_v1.10.0-->"
msgstr ""

#: ../../source/ref-changelog.md:352
#, fuzzy
msgid ""
"**Introduce** `flwr run` **(beta)** "
"([#3810](https://github.com/adap/flower/pull/3810), "
"[#3826](https://github.com/adap/flower/pull/3826), "
"[#3880](https://github.com/adap/flower/pull/3880), "
"[#3807](https://github.com/adap/flower/pull/3807), "
"[#3800](https://github.com/adap/flower/pull/3800), "
"[#3814](https://github.com/adap/flower/pull/3814), "
"[#3811](https://github.com/adap/flower/pull/3811), "
"[#3809](https://github.com/adap/flower/pull/3809), "
"[#3819](https://github.com/adap/flower/pull/3819))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:354
msgid ""
"Flower 1.10 ships the first beta release of the new `flwr run` command. "
"`flwr run` can run different projects using `flwr run path/to/project`, "
"it enables you to easily switch between different federations using `flwr"
" run . federation` and it runs your Flower project using either local "
"simulation or the new (experimental) SuperExec service. This allows "
"Flower to scale federatated learning from fast local simulation to large-"
"scale production deployment, seamlessly. All projects generated with "
"`flwr new` are immediately runnable using `flwr run`. Give it a try: use "
"`flwr new` to generate a project and then run it using `flwr run`."
msgstr ""

#: ../../source/ref-changelog.md:356
#, fuzzy
msgid ""
"**Introduce run config** "
"([#3751](https://github.com/adap/flower/pull/3751), "
"[#3750](https://github.com/adap/flower/pull/3750), "
"[#3845](https://github.com/adap/flower/pull/3845), "
"[#3824](https://github.com/adap/flower/pull/3824), "
"[#3746](https://github.com/adap/flower/pull/3746), "
"[#3728](https://github.com/adap/flower/pull/3728), "
"[#3730](https://github.com/adap/flower/pull/3730), "
"[#3725](https://github.com/adap/flower/pull/3725), "
"[#3729](https://github.com/adap/flower/pull/3729), "
"[#3580](https://github.com/adap/flower/pull/3580), "
"[#3578](https://github.com/adap/flower/pull/3578), "
"[#3576](https://github.com/adap/flower/pull/3576), "
"[#3798](https://github.com/adap/flower/pull/3798), "
"[#3732](https://github.com/adap/flower/pull/3732), "
"[#3815](https://github.com/adap/flower/pull/3815))"
msgstr ""
"**Introduire l'API REST (expérimentale)** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"

#: ../../source/ref-changelog.md:358
msgid ""
"The new run config feature allows you to run your Flower project in "
"different configurations without having to change a single line of code. "
"You can now build a configurable `ServerApp` and `ClientApp` that read "
"configuration values at runtime. This enables you to specify config "
"values like `learning-rate=0.01` in `pyproject.toml` (under the "
"`[tool.flwr.app.config]` key). These config values can then be easily "
"overridden via `flwr run --run-config learning-rate=0.02`, and read from "
"`Context` using `lr = context.run_config[\"learning-rate\"]`. Create a "
"new project using `flwr new` to see run config in action."
msgstr ""

#: ../../source/ref-changelog.md:360
#, fuzzy
msgid ""
"**Generalize** `client_fn` **signature to** `client_fn(context: Context) "
"-> Client` ([#3779](https://github.com/adap/flower/pull/3779), "
"[#3697](https://github.com/adap/flower/pull/3697), "
"[#3694](https://github.com/adap/flower/pull/3694), "
"[#3696](https://github.com/adap/flower/pull/3696))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:362
msgid ""
"The `client_fn` signature has been generalized to `client_fn(context: "
"Context) -> Client`. It now receives a `Context` object instead of the "
"(now depreacated) `cid: str`. `Context` allows accessing `node_id`, "
"`node_config` and `run_config`, among other things. This enables you to "
"build a configurable `ClientApp` that leverages the new run config "
"system."
msgstr ""

#: ../../source/ref-changelog.md:364
msgid ""
"The previous signature `client_fn(cid: str)` is now deprecated and "
"support for it will be removed in a future release. Use "
"`client_fn(context: Context) -> Client` everywhere."
msgstr ""

#: ../../source/ref-changelog.md:366
#, fuzzy
msgid ""
"**Introduce new** `server_fn(context)` "
"([#3773](https://github.com/adap/flower/pull/3773), "
"[#3796](https://github.com/adap/flower/pull/3796), "
"[#3771](https://github.com/adap/flower/pull/3771))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:368
msgid ""
"In addition to the new `client_fn(context:Context)`, a new "
"`server_fn(context: Context) -> ServerAppComponents` can now be passed to"
" `ServerApp` (instead of passing, for example, `Strategy`, directly). "
"This enables you to leverage the full `Context` on the server-side to "
"build a configurable `ServerApp`."
msgstr ""

#: ../../source/ref-changelog.md:370
#, fuzzy
msgid ""
"**Relaunch all** `flwr new` **templates** "
"([#3877](https://github.com/adap/flower/pull/3877), "
"[#3821](https://github.com/adap/flower/pull/3821), "
"[#3587](https://github.com/adap/flower/pull/3587), "
"[#3795](https://github.com/adap/flower/pull/3795), "
"[#3875](https://github.com/adap/flower/pull/3875), "
"[#3859](https://github.com/adap/flower/pull/3859), "
"[#3760](https://github.com/adap/flower/pull/3760))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:372
msgid ""
"All `flwr new` templates have been significantly updated to showcase new "
"Flower features and best practices. This includes using `flwr run` and "
"the new run config feature. You can now easily create a new project using"
" `flwr new` and, after following the instructions to install it, `flwr "
"run` it."
msgstr ""

#: ../../source/ref-changelog.md:374
#, fuzzy
msgid ""
"**Introduce** `flower-supernode` **(preview)** "
"([#3353](https://github.com/adap/flower/pull/3353))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:376
msgid ""
"The new `flower-supernode` CLI is here to replace `flower-client-app`. "
"`flower-supernode` brings full multi-app support to the Flower client-"
"side. It also allows to pass `--node-config` to the SuperNode, which is "
"accessible in your `ClientApp` via `Context` (using the new "
"`client_fn(context: Context)` signature)."
msgstr ""

#: ../../source/ref-changelog.md:378
#, fuzzy
msgid ""
"**Introduce node config** "
"([#3782](https://github.com/adap/flower/pull/3782), "
"[#3780](https://github.com/adap/flower/pull/3780), "
"[#3695](https://github.com/adap/flower/pull/3695), "
"[#3886](https://github.com/adap/flower/pull/3886))"
msgstr ""
"**Introduire une nouvelle fleur Référence : FedProx MNIST** "
"([#1513](https://github.com/adap/flower/pull/1513), "
"[#1680](https://github.com/adap/flower/pull/1680), "
"[#1681](https://github.com/adap/flower/pull/1681), "
"[#1679](https://github.com/adap/flower/pull/1679))"

#: ../../source/ref-changelog.md:380
msgid ""
"A new node config feature allows you to pass a static configuration to "
"the SuperNode. This configuration is read-only and available to every "
"`ClientApp` running on that SuperNode. A `ClientApp` can access the node "
"config via `Context` (`context.node_config`)."
msgstr ""

#: ../../source/ref-changelog.md:382
msgid ""
"**Introduce SuperExec (experimental)** "
"([#3605](https://github.com/adap/flower/pull/3605), "
"[#3723](https://github.com/adap/flower/pull/3723), "
"[#3731](https://github.com/adap/flower/pull/3731), "
"[#3589](https://github.com/adap/flower/pull/3589), "
"[#3604](https://github.com/adap/flower/pull/3604), "
"[#3622](https://github.com/adap/flower/pull/3622), "
"[#3838](https://github.com/adap/flower/pull/3838), "
"[#3720](https://github.com/adap/flower/pull/3720), "
"[#3606](https://github.com/adap/flower/pull/3606), "
"[#3602](https://github.com/adap/flower/pull/3602), "
"[#3603](https://github.com/adap/flower/pull/3603), "
"[#3555](https://github.com/adap/flower/pull/3555), "
"[#3808](https://github.com/adap/flower/pull/3808), "
"[#3724](https://github.com/adap/flower/pull/3724), "
"[#3658](https://github.com/adap/flower/pull/3658), "
"[#3629](https://github.com/adap/flower/pull/3629))"
msgstr ""

#: ../../source/ref-changelog.md:384
msgid ""
"This is the first experimental release of Flower SuperExec, a new service"
" that executes your runs. It's not ready for production deployment just "
"yet, but don't hesitate to give it a try if you're interested."
msgstr ""

#: ../../source/ref-changelog.md:386
#, fuzzy
msgid ""
"**Add new federated learning with tabular data example** "
"([#3568](https://github.com/adap/flower/pull/3568))"
msgstr ""
"**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et "
"Flower** ([#1598](https://github.com/adap/flower/pull/1598))"

#: ../../source/ref-changelog.md:388
msgid ""
"A new code example exemplifies a federated learning setup using the "
"Flower framework on the Adult Census Income tabular dataset."
msgstr ""

#: ../../source/ref-changelog.md:390
#, fuzzy
msgid ""
"**Create generic adapter layer (preview)** "
"([#3538](https://github.com/adap/flower/pull/3538), "
"[#3536](https://github.com/adap/flower/pull/3536), "
"[#3540](https://github.com/adap/flower/pull/3540))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:392
msgid ""
"A new generic gRPC adapter layer allows 3rd-party frameworks to integrate"
" with Flower in a transparent way. This makes Flower more modular and "
"allows for integration into other federated learning solutions and "
"platforms."
msgstr ""

#: ../../source/ref-changelog.md:394
#, fuzzy
msgid ""
"**Refactor Flower Simulation Engine** "
"([#3581](https://github.com/adap/flower/pull/3581), "
"[#3471](https://github.com/adap/flower/pull/3471), "
"[#3804](https://github.com/adap/flower/pull/3804), "
"[#3468](https://github.com/adap/flower/pull/3468), "
"[#3839](https://github.com/adap/flower/pull/3839), "
"[#3806](https://github.com/adap/flower/pull/3806), "
"[#3861](https://github.com/adap/flower/pull/3861), "
"[#3543](https://github.com/adap/flower/pull/3543), "
"[#3472](https://github.com/adap/flower/pull/3472), "
"[#3829](https://github.com/adap/flower/pull/3829), "
"[#3469](https://github.com/adap/flower/pull/3469))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:396
msgid ""
"The Simulation Engine was significantly refactored. This results in "
"faster and more stable simulations. It is also the foundation for "
"upcoming changes that aim to provide the next level of performance and "
"configurability in federated learning simulations."
msgstr ""

#: ../../source/ref-changelog.md:398
#, fuzzy
msgid ""
"**Optimize Docker containers** "
"([#3591](https://github.com/adap/flower/pull/3591))"
msgstr ""
"Nouveau thème de documentation "
"([#551](https://github.com/adap/flower/pull/551))"

#: ../../source/ref-changelog.md:400
msgid ""
"Flower Docker containers were optimized and updated to use that latest "
"Flower framework features."
msgstr ""

#: ../../source/ref-changelog.md:402
#, fuzzy
msgid ""
"**Improve logging** ([#3776](https://github.com/adap/flower/pull/3776), "
"[#3789](https://github.com/adap/flower/pull/3789))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:404
msgid ""
"Improved logging aims to be more concise and helpful to show you the "
"details you actually care about."
msgstr ""

#: ../../source/ref-changelog.md:406
#, fuzzy
msgid ""
"**Refactor framework internals** "
"([#3621](https://github.com/adap/flower/pull/3621), "
"[#3792](https://github.com/adap/flower/pull/3792), "
"[#3772](https://github.com/adap/flower/pull/3772), "
"[#3805](https://github.com/adap/flower/pull/3805), "
"[#3583](https://github.com/adap/flower/pull/3583), "
"[#3825](https://github.com/adap/flower/pull/3825), "
"[#3597](https://github.com/adap/flower/pull/3597), "
"[#3802](https://github.com/adap/flower/pull/3802), "
"[#3569](https://github.com/adap/flower/pull/3569))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:410
#, fuzzy
msgid "Documentation improvements"
msgstr "Améliorations facultatives"

#: ../../source/ref-changelog.md:412
#, fuzzy
msgid ""
"**Add 🇰🇷 Korean translations** "
"([#3680](https://github.com/adap/flower/pull/3680))"
msgstr ""
"**Ouvrir dans le bouton Colab** "
"([#1389](https://github.com/adap/flower/pull/1389))"

#: ../../source/ref-changelog.md:414
#, fuzzy
msgid ""
"**Update translations** "
"([#3586](https://github.com/adap/flower/pull/3586), "
"[#3679](https://github.com/adap/flower/pull/3679), "
"[#3570](https://github.com/adap/flower/pull/3570), "
"[#3681](https://github.com/adap/flower/pull/3681), "
"[#3617](https://github.com/adap/flower/pull/3617), "
"[#3674](https://github.com/adap/flower/pull/3674), "
"[#3671](https://github.com/adap/flower/pull/3671), "
"[#3572](https://github.com/adap/flower/pull/3572), "
"[#3631](https://github.com/adap/flower/pull/3631))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:416
#, fuzzy
msgid ""
"**Update documentation** "
"([#3864](https://github.com/adap/flower/pull/3864), "
"[#3688](https://github.com/adap/flower/pull/3688), "
"[#3562](https://github.com/adap/flower/pull/3562), "
"[#3641](https://github.com/adap/flower/pull/3641), "
"[#3384](https://github.com/adap/flower/pull/3384), "
"[#3634](https://github.com/adap/flower/pull/3634), "
"[#3823](https://github.com/adap/flower/pull/3823), "
"[#3793](https://github.com/adap/flower/pull/3793), "
"[#3707](https://github.com/adap/flower/pull/3707))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:418
msgid ""
"Updated documentation includes new install instructions for different "
"shells, a new Flower Code Examples documentation landing page, new `flwr`"
" CLI docs and an updated federated XGBoost code example."
msgstr ""

#: ../../source/ref-changelog.md:422
msgid "**Deprecate** `client_fn(cid: str)`"
msgstr ""

#: ../../source/ref-changelog.md:424
msgid ""
"`client_fn` used to have a signature `client_fn(cid: str) -> Client`. "
"This signature is now deprecated. Use the new signature "
"`client_fn(context: Context) -> Client` instead. The new argument "
"`context` allows accessing `node_id`, `node_config`, `run_config` and "
"other `Context` features. When running using the simulation engine (or "
"using `flower-supernode` with a custom `--node-config partition-id=...`),"
" `context.node_config[\"partition-id\"]` will return an `int` partition "
"ID that can be used with Flower Datasets to load a different partition of"
" the dataset on each simulated or deployed SuperNode."
msgstr ""

#: ../../source/ref-changelog.md:426
msgid ""
"**Deprecate passing** `Server/ServerConfig/Strategy/ClientManager` **to**"
" `ServerApp` **directly**"
msgstr ""

#: ../../source/ref-changelog.md:428
msgid ""
"Creating `ServerApp` using `ServerApp(config=config, strategy=strategy)` "
"is now deprecated. Instead of passing "
"`Server/ServerConfig/Strategy/ClientManager` to `ServerApp` directly, "
"pass them wrapped in a `server_fn(context: Context) -> "
"ServerAppComponents` function, like this: "
"`ServerApp(server_fn=server_fn)`. `ServerAppComponents` can hold "
"references to `Server/ServerConfig/Strategy/ClientManager`. In addition "
"to that, `server_fn` allows you to access `Context` (for example, to read"
" the `run_config`)."
msgstr ""

#: ../../source/ref-changelog.md:432
#, fuzzy
msgid ""
"**Remove support for `client_ids` in `start_simulation`** "
"([#3699](https://github.com/adap/flower/pull/3699))"
msgstr ""
"**Améliorer la prise en charge des GPU dans les simulations** "
"([#1555](https://github.com/adap/flower/pull/1555))"

#: ../../source/ref-changelog.md:434
msgid ""
"The (rarely used) feature that allowed passing custom `client_ids` to the"
" `start_simulation` function was removed. This removal is part of a "
"bigger effort to refactor the simulation engine and unify how the Flower "
"internals work in simulation and deployment."
msgstr ""

#: ../../source/ref-changelog.md:436
#, fuzzy
msgid ""
"**Remove `flower-driver-api` and `flower-fleet-api`** "
"([#3418](https://github.com/adap/flower/pull/3418))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:438
msgid ""
"The two deprecated CLI commands `flower-driver-api` and `flower-fleet-"
"api` were removed in an effort to streamline the SuperLink developer "
"experience. Use `flower-superlink` instead."
msgstr ""

#: ../../source/ref-changelog.md:440
#, fuzzy
msgid "v1.9.0 (2024-06-10)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:446
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Chong Shen Ng`, `Daniel J. "
"Beutel`, `Daniel Nata Nugraha`, `Heng Pan`, `Javier`, `Mahdi Beitollahi`,"
" `Robert Steiner`, `Taner Topal`, `Yan Gao`, `bapic`, `mohammadnaseri` <!"
"---TOKEN_v1.9.0-->"
msgstr ""

#: ../../source/ref-changelog.md:450
#, fuzzy
msgid ""
"**Introduce built-in authentication (preview)** "
"([#2946](https://github.com/adap/flower/pull/2946), "
"[#3388](https://github.com/adap/flower/pull/3388), "
"[#2948](https://github.com/adap/flower/pull/2948), "
"[#2917](https://github.com/adap/flower/pull/2917), "
"[#3386](https://github.com/adap/flower/pull/3386), "
"[#3308](https://github.com/adap/flower/pull/3308), "
"[#3001](https://github.com/adap/flower/pull/3001), "
"[#3409](https://github.com/adap/flower/pull/3409), "
"[#2999](https://github.com/adap/flower/pull/2999), "
"[#2979](https://github.com/adap/flower/pull/2979), "
"[#3389](https://github.com/adap/flower/pull/3389), "
"[#3503](https://github.com/adap/flower/pull/3503), "
"[#3366](https://github.com/adap/flower/pull/3366), "
"[#3357](https://github.com/adap/flower/pull/3357))"
msgstr ""
"**Documentation mise à jour** "
"([#1494](https://github.com/adap/flower/pull/1494), "
"[#1496](https://github.com/adap/flower/pull/1496), "
"[#1500](https://github.com/adap/flower/pull/1500), "
"[#1503](https://github.com/adap/flower/pull/1503), "
"[#1505](https://github.com/adap/flower/pull/1505), "
"[#1524](https://github.com/adap/flower/pull/1524), "
"[#1518](https://github.com/adap/flower/pull/1518), "
"[#1519](https://github.com/adap/flower/pull/1519), "
"[#1515](https://github.com/adap/flower/pull/1515))"

#: ../../source/ref-changelog.md:452
msgid ""
"Flower 1.9 introduces the first build-in version of client node "
"authentication. In previous releases, users often wrote glue code to "
"connect Flower to external authentication systems. With this release, the"
" SuperLink can authenticate SuperNodes using a built-in authentication "
"system. A new [how-to guide](https://flower.ai/docs/framework/how-to-"
"authenticate-supernodes.html) and a new [code "
"example](https://github.com/adap/flower/tree/main/examples/flower-"
"authentication) help you to get started."
msgstr ""

#: ../../source/ref-changelog.md:454
msgid ""
"This is the first preview release of the Flower-native authentication "
"system. Many additional features are on the roadmap for upcoming Flower "
"releases - stay tuned."
msgstr ""

#: ../../source/ref-changelog.md:456
#, fuzzy
msgid ""
"**Introduce end-to-end Docker support** "
"([#3483](https://github.com/adap/flower/pull/3483), "
"[#3266](https://github.com/adap/flower/pull/3266), "
"[#3390](https://github.com/adap/flower/pull/3390), "
"[#3283](https://github.com/adap/flower/pull/3283), "
"[#3285](https://github.com/adap/flower/pull/3285), "
"[#3391](https://github.com/adap/flower/pull/3391), "
"[#3403](https://github.com/adap/flower/pull/3403), "
"[#3458](https://github.com/adap/flower/pull/3458), "
"[#3533](https://github.com/adap/flower/pull/3533), "
"[#3453](https://github.com/adap/flower/pull/3453), "
"[#3486](https://github.com/adap/flower/pull/3486), "
"[#3290](https://github.com/adap/flower/pull/3290))"
msgstr ""
"**Introduire l'API REST (expérimentale)** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"

#: ../../source/ref-changelog.md:458
msgid ""
"Full Flower Next Docker support is here! With the release of Flower 1.9, "
"Flower provides stable Docker images for the Flower SuperLink, the Flower"
" SuperNode, and the Flower `ServerApp`. This set of images enables you to"
" run all Flower components in Docker. Check out the new [how-to "
"guide](https://flower.ai/docs/framework/how-to-run-flower-using-"
"docker.html) to get stated."
msgstr ""

#: ../../source/ref-changelog.md:460
#, fuzzy
msgid ""
"**Re-architect Flower Next simulation engine** "
"([#3307](https://github.com/adap/flower/pull/3307), "
"[#3355](https://github.com/adap/flower/pull/3355), "
"[#3272](https://github.com/adap/flower/pull/3272), "
"[#3273](https://github.com/adap/flower/pull/3273), "
"[#3417](https://github.com/adap/flower/pull/3417), "
"[#3281](https://github.com/adap/flower/pull/3281), "
"[#3343](https://github.com/adap/flower/pull/3343), "
"[#3326](https://github.com/adap/flower/pull/3326))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:462
msgid ""
"Flower Next simulations now use a new in-memory `Driver` that improves "
"the reliability of simulations, especially in notebook environments. This"
" is a significant step towards a complete overhaul of the Flower Next "
"simulation architecture."
msgstr ""

#: ../../source/ref-changelog.md:464
#, fuzzy
msgid ""
"**Upgrade simulation engine** "
"([#3354](https://github.com/adap/flower/pull/3354), "
"[#3378](https://github.com/adap/flower/pull/3378), "
"[#3262](https://github.com/adap/flower/pull/3262), "
"[#3435](https://github.com/adap/flower/pull/3435), "
"[#3501](https://github.com/adap/flower/pull/3501), "
"[#3482](https://github.com/adap/flower/pull/3482), "
"[#3494](https://github.com/adap/flower/pull/3494))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:466
msgid ""
"The Flower Next simulation engine comes with improved and configurable "
"logging. The Ray-based simulation backend in Flower 1.9 was updated to "
"use Ray 2.10."
msgstr ""

#: ../../source/ref-changelog.md:468
#, fuzzy
msgid ""
"**Introduce FedPFT baseline** "
"([#3268](https://github.com/adap/flower/pull/3268))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:470
msgid ""
"FedPFT allows you to perform one-shot Federated Learning by leveraging "
"widely available foundational models, dramatically reducing communication"
" costs while delivering high performing models. This is work led by Mahdi"
" Beitollahi from Huawei Noah's Ark Lab (Montreal, Canada). Read all the "
"details in their paper: \"Parametric Feature Transfer: One-shot Federated"
" Learning with Foundation Models\" "
"([arxiv](https://arxiv.org/abs/2402.01862))"
msgstr ""

#: ../../source/ref-changelog.md:472
#, fuzzy
msgid ""
"**Launch additional** `flwr new` **templates for Apple MLX, Hugging Face "
"Transformers, scikit-learn and TensorFlow** "
"([#3291](https://github.com/adap/flower/pull/3291), "
"[#3139](https://github.com/adap/flower/pull/3139), "
"[#3284](https://github.com/adap/flower/pull/3284), "
"[#3251](https://github.com/adap/flower/pull/3251), "
"[#3376](https://github.com/adap/flower/pull/3376), "
"[#3287](https://github.com/adap/flower/pull/3287))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:474
msgid ""
"The `flwr` CLI's `flwr new` command is starting to become everone's "
"favorite way of creating new Flower projects. This release introduces "
"additional `flwr new` templates for Apple MLX, Hugging Face Transformers,"
" scikit-learn and TensorFlow. In addition to that, existing templates "
"also received updates."
msgstr ""

#: ../../source/ref-changelog.md:476
#, fuzzy
msgid ""
"**Refine** `RecordSet` **API** "
"([#3209](https://github.com/adap/flower/pull/3209), "
"[#3331](https://github.com/adap/flower/pull/3331), "
"[#3334](https://github.com/adap/flower/pull/3334), "
"[#3335](https://github.com/adap/flower/pull/3335), "
"[#3375](https://github.com/adap/flower/pull/3375), "
"[#3368](https://github.com/adap/flower/pull/3368))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:478
msgid ""
"`RecordSet` is part of the Flower Next low-level API preview release. In "
"Flower 1.9, `RecordSet` received a number of usability improvements that "
"make it easier to build `RecordSet`-based `ServerApp`s and `ClientApp`s."
msgstr ""

#: ../../source/ref-changelog.md:480
#, fuzzy
msgid ""
"**Beautify logging** ([#3379](https://github.com/adap/flower/pull/3379), "
"[#3430](https://github.com/adap/flower/pull/3430), "
"[#3461](https://github.com/adap/flower/pull/3461), "
"[#3360](https://github.com/adap/flower/pull/3360), "
"[#3433](https://github.com/adap/flower/pull/3433))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:482
msgid ""
"Logs received a substantial update. Not only are logs now much nicer to "
"look at, but they are also more configurable."
msgstr ""

#: ../../source/ref-changelog.md:484
#, fuzzy
msgid ""
"**Improve reliability** "
"([#3564](https://github.com/adap/flower/pull/3564), "
"[#3561](https://github.com/adap/flower/pull/3561), "
"[#3566](https://github.com/adap/flower/pull/3566), "
"[#3462](https://github.com/adap/flower/pull/3462), "
"[#3225](https://github.com/adap/flower/pull/3225), "
"[#3514](https://github.com/adap/flower/pull/3514), "
"[#3535](https://github.com/adap/flower/pull/3535), "
"[#3372](https://github.com/adap/flower/pull/3372))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:486
msgid ""
"Flower 1.9 includes reliability improvements across many parts of the "
"system. One example is a much improved SuperNode shutdown procedure."
msgstr ""

#: ../../source/ref-changelog.md:488
#, fuzzy
msgid ""
"**Update Swift and C++ SDKs** "
"([#3321](https://github.com/adap/flower/pull/3321), "
"[#2763](https://github.com/adap/flower/pull/2763))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:490
msgid ""
"In the C++ SDK, communication-related code is now separate from main "
"client logic. A new abstract class `Communicator` has been introduced "
"alongside a gRPC implementation of it."
msgstr ""

#: ../../source/ref-changelog.md:492
msgid ""
"**Improve testing, tooling and CI/CD infrastructure** "
"([#3294](https://github.com/adap/flower/pull/3294), "
"[#3282](https://github.com/adap/flower/pull/3282), "
"[#3311](https://github.com/adap/flower/pull/3311), "
"[#2878](https://github.com/adap/flower/pull/2878), "
"[#3333](https://github.com/adap/flower/pull/3333), "
"[#3255](https://github.com/adap/flower/pull/3255), "
"[#3349](https://github.com/adap/flower/pull/3349), "
"[#3400](https://github.com/adap/flower/pull/3400), "
"[#3401](https://github.com/adap/flower/pull/3401), "
"[#3399](https://github.com/adap/flower/pull/3399), "
"[#3346](https://github.com/adap/flower/pull/3346), "
"[#3398](https://github.com/adap/flower/pull/3398), "
"[#3397](https://github.com/adap/flower/pull/3397), "
"[#3347](https://github.com/adap/flower/pull/3347), "
"[#3502](https://github.com/adap/flower/pull/3502), "
"[#3387](https://github.com/adap/flower/pull/3387), "
"[#3542](https://github.com/adap/flower/pull/3542), "
"[#3396](https://github.com/adap/flower/pull/3396), "
"[#3496](https://github.com/adap/flower/pull/3496), "
"[#3465](https://github.com/adap/flower/pull/3465), "
"[#3473](https://github.com/adap/flower/pull/3473), "
"[#3484](https://github.com/adap/flower/pull/3484), "
"[#3521](https://github.com/adap/flower/pull/3521), "
"[#3363](https://github.com/adap/flower/pull/3363), "
"[#3497](https://github.com/adap/flower/pull/3497), "
"[#3464](https://github.com/adap/flower/pull/3464), "
"[#3495](https://github.com/adap/flower/pull/3495), "
"[#3478](https://github.com/adap/flower/pull/3478), "
"[#3271](https://github.com/adap/flower/pull/3271))"
msgstr ""

#: ../../source/ref-changelog.md:494
msgid ""
"As always, the Flower tooling, testing, and CI/CD infrastructure has "
"received many updates."
msgstr ""

#: ../../source/ref-changelog.md:496
msgid ""
"**Improve documentation** "
"([#3530](https://github.com/adap/flower/pull/3530), "
"[#3539](https://github.com/adap/flower/pull/3539), "
"[#3425](https://github.com/adap/flower/pull/3425), "
"[#3520](https://github.com/adap/flower/pull/3520), "
"[#3286](https://github.com/adap/flower/pull/3286), "
"[#3516](https://github.com/adap/flower/pull/3516), "
"[#3523](https://github.com/adap/flower/pull/3523), "
"[#3545](https://github.com/adap/flower/pull/3545), "
"[#3498](https://github.com/adap/flower/pull/3498), "
"[#3439](https://github.com/adap/flower/pull/3439), "
"[#3440](https://github.com/adap/flower/pull/3440), "
"[#3382](https://github.com/adap/flower/pull/3382), "
"[#3559](https://github.com/adap/flower/pull/3559), "
"[#3432](https://github.com/adap/flower/pull/3432), "
"[#3278](https://github.com/adap/flower/pull/3278), "
"[#3371](https://github.com/adap/flower/pull/3371), "
"[#3519](https://github.com/adap/flower/pull/3519), "
"[#3267](https://github.com/adap/flower/pull/3267), "
"[#3204](https://github.com/adap/flower/pull/3204), "
"[#3274](https://github.com/adap/flower/pull/3274))"
msgstr ""

#: ../../source/ref-changelog.md:498
msgid ""
"As always, the Flower documentation has received many updates. Notable "
"new pages include:"
msgstr ""

#: ../../source/ref-changelog.md:500
msgid ""
"[How-to upgrate to Flower Next (Flower Next migration "
"guide)](https://flower.ai/docs/framework/how-to-upgrade-to-flower-"
"next.html)"
msgstr ""

#: ../../source/ref-changelog.md:502
msgid ""
"[How-to run Flower using Docker](https://flower.ai/docs/framework/how-to-"
"run-flower-using-docker.html)"
msgstr ""

#: ../../source/ref-changelog.md:504
msgid ""
"[Flower Mods reference](https://flower.ai/docs/framework/ref-"
"api/flwr.client.mod.html#module-flwr.client.mod)"
msgstr ""

#: ../../source/ref-changelog.md:506
#, fuzzy
msgid ""
"**General updates to Flower Examples** "
"([#3205](https://github.com/adap/flower/pull/3205), "
"[#3226](https://github.com/adap/flower/pull/3226), "
"[#3211](https://github.com/adap/flower/pull/3211), "
"[#3252](https://github.com/adap/flower/pull/3252), "
"[#3427](https://github.com/adap/flower/pull/3427), "
"[#3410](https://github.com/adap/flower/pull/3410), "
"[#3426](https://github.com/adap/flower/pull/3426), "
"[#3228](https://github.com/adap/flower/pull/3228), "
"[#3342](https://github.com/adap/flower/pull/3342), "
"[#3200](https://github.com/adap/flower/pull/3200), "
"[#3202](https://github.com/adap/flower/pull/3202), "
"[#3394](https://github.com/adap/flower/pull/3394), "
"[#3488](https://github.com/adap/flower/pull/3488), "
"[#3329](https://github.com/adap/flower/pull/3329), "
"[#3526](https://github.com/adap/flower/pull/3526), "
"[#3392](https://github.com/adap/flower/pull/3392), "
"[#3474](https://github.com/adap/flower/pull/3474), "
"[#3269](https://github.com/adap/flower/pull/3269))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1223](https://github.com/adap/flower/pull/1223), "
"[#1209](https://github.com/adap/flower/pull/1209), "
"[#1251](https://github.com/adap/flower/pull/1251), "
"[#1257](https://github.com/adap/flower/pull/1257), "
"[#1267](https://github.com/adap/flower/pull/1267), "
"[#1268](https://github.com/adap/flower/pull/1268), "
"[#1300](https://github.com/adap/flower/pull/1300), "
"[#1304](https://github.com/adap/flower/pull/1304), "
"[#1305](https://github.com/adap/flower/pull/1305), "
"[#1307](https://github.com/adap/flower/pull/1307))"

#: ../../source/ref-changelog.md:508
msgid "As always, Flower code examples have received many updates."
msgstr ""

#: ../../source/ref-changelog.md:510
msgid ""
"**General improvements** "
"([#3532](https://github.com/adap/flower/pull/3532), "
"[#3318](https://github.com/adap/flower/pull/3318), "
"[#3565](https://github.com/adap/flower/pull/3565), "
"[#3296](https://github.com/adap/flower/pull/3296), "
"[#3305](https://github.com/adap/flower/pull/3305), "
"[#3246](https://github.com/adap/flower/pull/3246), "
"[#3224](https://github.com/adap/flower/pull/3224), "
"[#3475](https://github.com/adap/flower/pull/3475), "
"[#3297](https://github.com/adap/flower/pull/3297), "
"[#3317](https://github.com/adap/flower/pull/3317), "
"[#3429](https://github.com/adap/flower/pull/3429), "
"[#3196](https://github.com/adap/flower/pull/3196), "
"[#3534](https://github.com/adap/flower/pull/3534), "
"[#3240](https://github.com/adap/flower/pull/3240), "
"[#3365](https://github.com/adap/flower/pull/3365), "
"[#3407](https://github.com/adap/flower/pull/3407), "
"[#3563](https://github.com/adap/flower/pull/3563), "
"[#3344](https://github.com/adap/flower/pull/3344), "
"[#3330](https://github.com/adap/flower/pull/3330), "
"[#3436](https://github.com/adap/flower/pull/3436), "
"[#3300](https://github.com/adap/flower/pull/3300), "
"[#3327](https://github.com/adap/flower/pull/3327), "
"[#3254](https://github.com/adap/flower/pull/3254), "
"[#3253](https://github.com/adap/flower/pull/3253), "
"[#3419](https://github.com/adap/flower/pull/3419), "
"[#3289](https://github.com/adap/flower/pull/3289), "
"[#3208](https://github.com/adap/flower/pull/3208), "
"[#3245](https://github.com/adap/flower/pull/3245), "
"[#3319](https://github.com/adap/flower/pull/3319), "
"[#3203](https://github.com/adap/flower/pull/3203), "
"[#3423](https://github.com/adap/flower/pull/3423), "
"[#3352](https://github.com/adap/flower/pull/3352), "
"[#3292](https://github.com/adap/flower/pull/3292), "
"[#3261](https://github.com/adap/flower/pull/3261))"
msgstr ""

#: ../../source/ref-changelog.md:514
#, fuzzy
msgid "**Deprecate Python 3.8 support**"
msgstr "**Créer le PR**"

#: ../../source/ref-changelog.md:516
msgid ""
"Python 3.8 will stop receiving security fixes in [October "
"2024](https://devguide.python.org/versions/). Support for Python 3.8 is "
"now deprecated and will be removed in an upcoming release."
msgstr ""

#: ../../source/ref-changelog.md:518
#, fuzzy
msgid ""
"**Deprecate (experimental)** `flower-driver-api` **and** `flower-fleet-"
"api` ([#3416](https://github.com/adap/flower/pull/3416), "
"[#3420](https://github.com/adap/flower/pull/3420))"
msgstr ""
"**Rename** `Weights` **to** `NDArrays` "
"([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"

#: ../../source/ref-changelog.md:520
msgid ""
"Flower 1.9 deprecates the two (experimental) commands `flower-driver-api`"
" and `flower-fleet-api`. Both commands will be removed in an upcoming "
"release. Use `flower-superlink` instead."
msgstr ""

#: ../../source/ref-changelog.md:522
#, fuzzy
msgid ""
"**Deprecate** `--server` **in favor of** `--superlink` "
"([#3518](https://github.com/adap/flower/pull/3518))"
msgstr ""
"**Autoriser le passage d'une **instance `Server` à** `start_simulation` "
"([#1281](https://github.com/adap/flower/pull/1281))"

#: ../../source/ref-changelog.md:524
msgid ""
"The commands `flower-server-app` and `flower-client-app` should use "
"`--superlink` instead of the now deprecated `--server`. Support for "
"`--server` will be removed in a future release."
msgstr ""

#: ../../source/ref-changelog.md:528
msgid ""
"**Replace** `flower-superlink` **CLI option** `--certificates` **with** "
"`--ssl-ca-certfile` **,** `--ssl-certfile` **and** `--ssl-keyfile` "
"([#3512](https://github.com/adap/flower/pull/3512), "
"[#3408](https://github.com/adap/flower/pull/3408))"
msgstr ""

#: ../../source/ref-changelog.md:530
msgid ""
"SSL-related `flower-superlink` CLI arguments were restructured in an "
"incompatible way. Instead of passing a single `--certificates` flag with "
"three values, you now need to pass three flags (`--ssl-ca-certfile`, "
"`--ssl-certfile` and `--ssl-keyfile`) with one value each. Check out the "
"[SSL connections](https://flower.ai/docs/framework/how-to-enable-ssl-"
"connections.html) documentation page for details."
msgstr ""

#: ../../source/ref-changelog.md:532
#, fuzzy
msgid ""
"**Remove SuperLink** `--vce` **option** "
"([#3513](https://github.com/adap/flower/pull/3513))"
msgstr ""
"**Documentation restructurée** "
"([#1387](https://github.com/adap/flower/pull/1387))"

#: ../../source/ref-changelog.md:534
msgid ""
"Instead of separately starting a SuperLink and a `ServerApp` for "
"simulation, simulations must now be started using the single `flower-"
"simulation` command."
msgstr ""

#: ../../source/ref-changelog.md:536
#, fuzzy
msgid ""
"**Merge** `--grpc-rere` **and** `--rest` **SuperLink options** "
"([#3527](https://github.com/adap/flower/pull/3527))"
msgstr ""
"**Rename** `rnd` **to** `server_round` "
"([#1321](https://github.com/adap/flower/pull/1321))"

#: ../../source/ref-changelog.md:538
msgid ""
"To simplify the usage of `flower-superlink`, previously separate sets of "
"CLI options for gRPC and REST were merged into one unified set of "
"options. Consult the [Flower CLI reference "
"documentation](https://flower.ai/docs/framework/ref-api-cli.html) for "
"details."
msgstr ""

#: ../../source/ref-changelog.md:540
#, fuzzy
msgid "v1.8.0 (2024-04-03)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:546
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata "
"Nugraha`, `Danny`, `Gustavo Bertoli`, `Heng Pan`, `Ikko Eltociear "
"Ashimine`, `Jack Cook`, `Javier`, `Raj Parekh`, `Robert Steiner`, "
"`Sebastian van der Voort`, `Taner Topal`, `Yan Gao`, `mohammadnaseri`, "
"`tabdar-khan` <!---TOKEN_v1.8.0-->"
msgstr ""

#: ../../source/ref-changelog.md:550
msgid ""
"**Introduce Flower Next high-level API (stable)** "
"([#3002](https://github.com/adap/flower/pull/3002), "
"[#2934](https://github.com/adap/flower/pull/2934), "
"[#2958](https://github.com/adap/flower/pull/2958), "
"[#3173](https://github.com/adap/flower/pull/3173), "
"[#3174](https://github.com/adap/flower/pull/3174), "
"[#2923](https://github.com/adap/flower/pull/2923), "
"[#2691](https://github.com/adap/flower/pull/2691), "
"[#3079](https://github.com/adap/flower/pull/3079), "
"[#2961](https://github.com/adap/flower/pull/2961), "
"[#2924](https://github.com/adap/flower/pull/2924), "
"[#3166](https://github.com/adap/flower/pull/3166), "
"[#3031](https://github.com/adap/flower/pull/3031), "
"[#3057](https://github.com/adap/flower/pull/3057), "
"[#3000](https://github.com/adap/flower/pull/3000), "
"[#3113](https://github.com/adap/flower/pull/3113), "
"[#2957](https://github.com/adap/flower/pull/2957), "
"[#3183](https://github.com/adap/flower/pull/3183), "
"[#3180](https://github.com/adap/flower/pull/3180), "
"[#3035](https://github.com/adap/flower/pull/3035), "
"[#3189](https://github.com/adap/flower/pull/3189), "
"[#3185](https://github.com/adap/flower/pull/3185), "
"[#3190](https://github.com/adap/flower/pull/3190), "
"[#3191](https://github.com/adap/flower/pull/3191), "
"[#3195](https://github.com/adap/flower/pull/3195), "
"[#3197](https://github.com/adap/flower/pull/3197))"
msgstr ""

#: ../../source/ref-changelog.md:552
msgid ""
"The Flower Next high-level API is stable! Flower Next is the future of "
"Flower - all new features (like Flower Mods) will be built on top of it. "
"You can start to migrate your existing projects to Flower Next by using "
"`ServerApp` and `ClientApp` (check out `quickstart-pytorch` or "
"`quickstart-tensorflow`, a detailed migration guide will follow shortly)."
" Flower Next allows you to run multiple projects concurrently (we call "
"this multi-run) and execute the same project in either simulation "
"environments or deployment environments without having to change a single"
" line of code. The best part? It's fully compatible with existing Flower "
"projects that use `Strategy`, `NumPyClient` & co."
msgstr ""

#: ../../source/ref-changelog.md:554
#, fuzzy
msgid ""
"**Introduce Flower Next low-level API (preview)** "
"([#3062](https://github.com/adap/flower/pull/3062), "
"[#3034](https://github.com/adap/flower/pull/3034), "
"[#3069](https://github.com/adap/flower/pull/3069))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:556
msgid ""
"In addition to the Flower Next *high-level* API that uses `Strategy`, "
"`NumPyClient` & co, Flower 1.8 also comes with a preview version of the "
"new Flower Next *low-level* API. The low-level API allows for granular "
"control of every aspect of the learning process by sending/receiving "
"individual messages to/from client nodes. The new `ServerApp` supports "
"registering a custom `main` function that allows writing custom training "
"loops for methods like async FL, cyclic training, or federated analytics."
" The new `ClientApp` supports registering `train`, `evaluate` and `query`"
" functions that can access the raw message received from the `ServerApp`."
" New abstractions like `RecordSet`, `Message` and `Context` further "
"enable sending multiple models, multiple sets of config values and "
"metrics, stateful computations on the client node and implementations of "
"custom SMPC protocols, to name just a few."
msgstr ""

#: ../../source/ref-changelog.md:558
#, fuzzy
msgid ""
"**Introduce Flower Mods (preview)** "
"([#3054](https://github.com/adap/flower/pull/3054), "
"[#2911](https://github.com/adap/flower/pull/2911), "
"[#3083](https://github.com/adap/flower/pull/3083))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:560
msgid ""
"Flower Modifiers (we call them Mods) can intercept messages and analyze, "
"edit or handle them directly. Mods can be used to develop pluggable "
"modules that work across different projects. Flower 1.8 already includes "
"mods to log the size of a message, the number of parameters sent over the"
" network, differential privacy with fixed clipping and adaptive clipping,"
" local differential privacy and secure aggregation protocols SecAgg and "
"SecAgg+. The Flower Mods API is released as a preview, but researchers "
"can already use it to experiment with arbirtrary SMPC protocols."
msgstr ""

#: ../../source/ref-changelog.md:562
#, fuzzy
msgid ""
"**Fine-tune LLMs with LLM FlowerTune** "
"([#3029](https://github.com/adap/flower/pull/3029), "
"[#3089](https://github.com/adap/flower/pull/3089), "
"[#3092](https://github.com/adap/flower/pull/3092), "
"[#3100](https://github.com/adap/flower/pull/3100), "
"[#3114](https://github.com/adap/flower/pull/3114), "
"[#3162](https://github.com/adap/flower/pull/3162), "
"[#3172](https://github.com/adap/flower/pull/3172))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:564
msgid ""
"We are introducing LLM FlowerTune, an introductory example that "
"demonstrates federated LLM fine-tuning of pre-trained Llama2 models on "
"the Alpaca-GPT4 dataset. The example is built to be easily adapted to use"
" different models and/or datasets. Read our blog post [LLM FlowerTune: "
"Federated LLM Fine-tuning with Flower](https://flower.ai/blog/2024-03-14"
"-llm-flowertune-federated-llm-finetuning-with-flower/) for more details."
msgstr ""

#: ../../source/ref-changelog.md:566
#, fuzzy
msgid ""
"**Introduce built-in Differential Privacy (preview)** "
"([#2798](https://github.com/adap/flower/pull/2798), "
"[#2959](https://github.com/adap/flower/pull/2959), "
"[#3038](https://github.com/adap/flower/pull/3038), "
"[#3147](https://github.com/adap/flower/pull/3147), "
"[#2909](https://github.com/adap/flower/pull/2909), "
"[#2893](https://github.com/adap/flower/pull/2893), "
"[#2892](https://github.com/adap/flower/pull/2892), "
"[#3039](https://github.com/adap/flower/pull/3039), "
"[#3074](https://github.com/adap/flower/pull/3074))"
msgstr ""
"**([#842](https://github.com/adap/flower/pull/842), "
"[#844](https://github.com/adap/flower/pull/844), "
"[#845](https://github.com/adap/flower/pull/845), "
"[#847](https://github.com/adap/flower/pull/847), "
"[#993](https://github.com/adap/flower/pull/993), "
"[#994](https://github.com/adap/flower/pull/994))"

#: ../../source/ref-changelog.md:568
msgid ""
"Built-in Differential Privacy is here! Flower supports both central and "
"local differential privacy (DP). Central DP can be configured with either"
" fixed or adaptive clipping. The clipping can happen either on the "
"server-side or the client-side. Local DP does both clipping and noising "
"on the client-side. A new documentation page [explains Differential "
"Privacy approaches](https://flower.ai/docs/framework/explanation-"
"differential-privacy.html) and a new how-to guide describes [how to use "
"the new Differential Privacy components](https://flower.ai/docs/framework"
"/how-to-use-differential-privacy.html) in Flower."
msgstr ""

#: ../../source/ref-changelog.md:570
#, fuzzy
msgid ""
"**Introduce built-in Secure Aggregation (preview)** "
"([#3120](https://github.com/adap/flower/pull/3120), "
"[#3110](https://github.com/adap/flower/pull/3110), "
"[#3108](https://github.com/adap/flower/pull/3108))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:572
msgid ""
"Built-in Secure Aggregation is here! Flower now supports different secure"
" aggregation protocols out-of-the-box. The best part? You can add secure "
"aggregation to your Flower projects with only a few lines of code. In "
"this initial release, we inlcude support for SecAgg and SecAgg+, but more"
" protocols will be implemented shortly. We'll also add detailed docs that"
" explain secure aggregation and how to use it in Flower. You can already "
"check out the new code example that shows how to use Flower to easily "
"combine Federated Learning, Differential Privacy and Secure Aggregation "
"in the same project."
msgstr ""

#: ../../source/ref-changelog.md:574
#, fuzzy
msgid ""
"**Introduce** `flwr` **CLI (preview)** "
"([#2942](https://github.com/adap/flower/pull/2942), "
"[#3055](https://github.com/adap/flower/pull/3055), "
"[#3111](https://github.com/adap/flower/pull/3111), "
"[#3130](https://github.com/adap/flower/pull/3130), "
"[#3136](https://github.com/adap/flower/pull/3136), "
"[#3094](https://github.com/adap/flower/pull/3094), "
"[#3059](https://github.com/adap/flower/pull/3059), "
"[#3049](https://github.com/adap/flower/pull/3049), "
"[#3142](https://github.com/adap/flower/pull/3142))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:576
msgid ""
"A new `flwr` CLI command allows creating new Flower projects (`flwr new`)"
" and then running them using the Simulation Engine (`flwr run`)."
msgstr ""

#: ../../source/ref-changelog.md:578
#, fuzzy
msgid ""
"**Introduce Flower Next Simulation Engine** "
"([#3024](https://github.com/adap/flower/pull/3024), "
"[#3061](https://github.com/adap/flower/pull/3061), "
"[#2997](https://github.com/adap/flower/pull/2997), "
"[#2783](https://github.com/adap/flower/pull/2783), "
"[#3184](https://github.com/adap/flower/pull/3184), "
"[#3075](https://github.com/adap/flower/pull/3075), "
"[#3047](https://github.com/adap/flower/pull/3047), "
"[#2998](https://github.com/adap/flower/pull/2998), "
"[#3009](https://github.com/adap/flower/pull/3009), "
"[#3008](https://github.com/adap/flower/pull/3008))"
msgstr ""
"**Introduire l'API REST (expérimentale)** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"

#: ../../source/ref-changelog.md:580
msgid ""
"The Flower Simulation Engine can now run Flower Next projects. For "
"notebook environments, there's also a new `run_simulation` function that "
"can run `ServerApp` and `ClientApp`."
msgstr ""

#: ../../source/ref-changelog.md:582
#, fuzzy
msgid ""
"**Handle SuperNode connection errors** "
"([#2969](https://github.com/adap/flower/pull/2969))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:584
msgid ""
"A SuperNode will now try to reconnect indefinitely to the SuperLink in "
"case of connection errors. The arguments `--max-retries` and `--max-wait-"
"time` can now be passed to the `flower-client-app` command. `--max-"
"retries` will define the number of tentatives the client should make "
"before it gives up trying to reconnect to the SuperLink, and, `--max-"
"wait-time` defines the time before the SuperNode gives up trying to "
"reconnect to the SuperLink."
msgstr ""

#: ../../source/ref-changelog.md:586
#, fuzzy
msgid ""
"**General updates to Flower Baselines** "
"([#2904](https://github.com/adap/flower/pull/2904), "
"[#2482](https://github.com/adap/flower/pull/2482), "
"[#2985](https://github.com/adap/flower/pull/2985), "
"[#2968](https://github.com/adap/flower/pull/2968))"
msgstr ""
"**Introduire une nouvelle fleur Référence : FedProx MNIST** "
"([#1513](https://github.com/adap/flower/pull/1513), "
"[#1680](https://github.com/adap/flower/pull/1680), "
"[#1681](https://github.com/adap/flower/pull/1681), "
"[#1679](https://github.com/adap/flower/pull/1679))"

#: ../../source/ref-changelog.md:588
msgid ""
"There's a new [FedStar](https://flower.ai/docs/baselines/fedstar.html) "
"baseline. Several other baselined have been updated as well."
msgstr ""

#: ../../source/ref-changelog.md:590
msgid ""
"**Improve documentation and translations** "
"([#3050](https://github.com/adap/flower/pull/3050), "
"[#3044](https://github.com/adap/flower/pull/3044), "
"[#3043](https://github.com/adap/flower/pull/3043), "
"[#2986](https://github.com/adap/flower/pull/2986), "
"[#3041](https://github.com/adap/flower/pull/3041), "
"[#3046](https://github.com/adap/flower/pull/3046), "
"[#3042](https://github.com/adap/flower/pull/3042), "
"[#2978](https://github.com/adap/flower/pull/2978), "
"[#2952](https://github.com/adap/flower/pull/2952), "
"[#3167](https://github.com/adap/flower/pull/3167), "
"[#2953](https://github.com/adap/flower/pull/2953), "
"[#3045](https://github.com/adap/flower/pull/3045), "
"[#2654](https://github.com/adap/flower/pull/2654), "
"[#3082](https://github.com/adap/flower/pull/3082), "
"[#2990](https://github.com/adap/flower/pull/2990), "
"[#2989](https://github.com/adap/flower/pull/2989))"
msgstr ""

#: ../../source/ref-changelog.md:592
msgid ""
"As usual, we merged many smaller and larger improvements to the "
"documentation. A special thank you goes to [Sebastian van der "
"Voort](https://github.com/svdvoort) for landing a big documentation PR!"
msgstr ""

#: ../../source/ref-changelog.md:594
#, fuzzy
msgid ""
"**General updates to Flower Examples** "
"([3134](https://github.com/adap/flower/pull/3134), "
"[2996](https://github.com/adap/flower/pull/2996), "
"[2930](https://github.com/adap/flower/pull/2930), "
"[2967](https://github.com/adap/flower/pull/2967), "
"[2467](https://github.com/adap/flower/pull/2467), "
"[2910](https://github.com/adap/flower/pull/2910), "
"[#2918](https://github.com/adap/flower/pull/2918), "
"[#2773](https://github.com/adap/flower/pull/2773), "
"[#3063](https://github.com/adap/flower/pull/3063), "
"[#3116](https://github.com/adap/flower/pull/3116), "
"[#3117](https://github.com/adap/flower/pull/3117))"
msgstr ""
"**Documentation mise à jour** "
"([#1494](https://github.com/adap/flower/pull/1494), "
"[#1496](https://github.com/adap/flower/pull/1496), "
"[#1500](https://github.com/adap/flower/pull/1500), "
"[#1503](https://github.com/adap/flower/pull/1503), "
"[#1505](https://github.com/adap/flower/pull/1505), "
"[#1524](https://github.com/adap/flower/pull/1524), "
"[#1518](https://github.com/adap/flower/pull/1518), "
"[#1519](https://github.com/adap/flower/pull/1519), "
"[#1515](https://github.com/adap/flower/pull/1515))"

#: ../../source/ref-changelog.md:596
msgid ""
"Two new examples show federated training of a Vision Transformer (ViT) "
"and federated learning in a medical context using the popular MONAI "
"library. `quickstart-pytorch` and `quickstart-tensorflow` demonstrate the"
" new Flower Next `ServerApp` and `ClientApp`. Many other examples "
"received considerable updates as well."
msgstr ""

#: ../../source/ref-changelog.md:598
msgid ""
"**General improvements** "
"([#3171](https://github.com/adap/flower/pull/3171), "
"[3099](https://github.com/adap/flower/pull/3099), "
"[3003](https://github.com/adap/flower/pull/3003), "
"[3145](https://github.com/adap/flower/pull/3145), "
"[3017](https://github.com/adap/flower/pull/3017), "
"[3085](https://github.com/adap/flower/pull/3085), "
"[3012](https://github.com/adap/flower/pull/3012), "
"[3119](https://github.com/adap/flower/pull/3119), "
"[2991](https://github.com/adap/flower/pull/2991), "
"[2970](https://github.com/adap/flower/pull/2970), "
"[2980](https://github.com/adap/flower/pull/2980), "
"[3086](https://github.com/adap/flower/pull/3086), "
"[2932](https://github.com/adap/flower/pull/2932), "
"[2928](https://github.com/adap/flower/pull/2928), "
"[2941](https://github.com/adap/flower/pull/2941), "
"[2933](https://github.com/adap/flower/pull/2933), "
"[3181](https://github.com/adap/flower/pull/3181), "
"[2973](https://github.com/adap/flower/pull/2973), "
"[2992](https://github.com/adap/flower/pull/2992), "
"[2915](https://github.com/adap/flower/pull/2915), "
"[3040](https://github.com/adap/flower/pull/3040), "
"[3022](https://github.com/adap/flower/pull/3022), "
"[3032](https://github.com/adap/flower/pull/3032), "
"[2902](https://github.com/adap/flower/pull/2902), "
"[2931](https://github.com/adap/flower/pull/2931), "
"[3005](https://github.com/adap/flower/pull/3005), "
"[3132](https://github.com/adap/flower/pull/3132), "
"[3115](https://github.com/adap/flower/pull/3115), "
"[2944](https://github.com/adap/flower/pull/2944), "
"[3064](https://github.com/adap/flower/pull/3064), "
"[3106](https://github.com/adap/flower/pull/3106), "
"[2974](https://github.com/adap/flower/pull/2974), "
"[3178](https://github.com/adap/flower/pull/3178), "
"[2993](https://github.com/adap/flower/pull/2993), "
"[3186](https://github.com/adap/flower/pull/3186), "
"[3091](https://github.com/adap/flower/pull/3091), "
"[3125](https://github.com/adap/flower/pull/3125), "
"[3093](https://github.com/adap/flower/pull/3093), "
"[3013](https://github.com/adap/flower/pull/3013), "
"[3033](https://github.com/adap/flower/pull/3033), "
"[3133](https://github.com/adap/flower/pull/3133), "
"[3068](https://github.com/adap/flower/pull/3068), "
"[2916](https://github.com/adap/flower/pull/2916), "
"[2975](https://github.com/adap/flower/pull/2975), "
"[2984](https://github.com/adap/flower/pull/2984), "
"[2846](https://github.com/adap/flower/pull/2846), "
"[3077](https://github.com/adap/flower/pull/3077), "
"[3143](https://github.com/adap/flower/pull/3143), "
"[2921](https://github.com/adap/flower/pull/2921), "
"[3101](https://github.com/adap/flower/pull/3101), "
"[2927](https://github.com/adap/flower/pull/2927), "
"[2995](https://github.com/adap/flower/pull/2995), "
"[2972](https://github.com/adap/flower/pull/2972), "
"[2912](https://github.com/adap/flower/pull/2912), "
"[3065](https://github.com/adap/flower/pull/3065), "
"[3028](https://github.com/adap/flower/pull/3028), "
"[2922](https://github.com/adap/flower/pull/2922), "
"[2982](https://github.com/adap/flower/pull/2982), "
"[2914](https://github.com/adap/flower/pull/2914), "
"[3179](https://github.com/adap/flower/pull/3179), "
"[3080](https://github.com/adap/flower/pull/3080), "
"[2994](https://github.com/adap/flower/pull/2994), "
"[3187](https://github.com/adap/flower/pull/3187), "
"[2926](https://github.com/adap/flower/pull/2926), "
"[3018](https://github.com/adap/flower/pull/3018), "
"[3144](https://github.com/adap/flower/pull/3144), "
"[3011](https://github.com/adap/flower/pull/3011), "
"[#3152](https://github.com/adap/flower/pull/3152), "
"[#2836](https://github.com/adap/flower/pull/2836), "
"[#2929](https://github.com/adap/flower/pull/2929), "
"[#2943](https://github.com/adap/flower/pull/2943), "
"[#2955](https://github.com/adap/flower/pull/2955), "
"[#2954](https://github.com/adap/flower/pull/2954))"
msgstr ""

#: ../../source/ref-changelog.md:604
#, fuzzy
msgid "v1.7.0 (2024-02-05)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:610
msgid ""
"`Aasheesh Singh`, `Adam Narozniak`, `Aml Hassan Esmil`, `Charles "
"Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo "
"Gabrielli`, `Gustavo Bertoli`, `HelinLin`, `Heng Pan`, `Javier`, `M S "
"Chaitanya Kumar`, `Mohammad Naseri`, `Nikos Vlachakis`, `Pritam Neog`, "
"`Robert Kuska`, `Robert Steiner`, `Taner Topal`, `Yahia Salaheldin "
"Shaaban`, `Yan Gao`, `Yasar Abbas` <!---TOKEN_v1.7.0-->"
msgstr ""

#: ../../source/ref-changelog.md:614
#, fuzzy
msgid ""
"**Introduce stateful clients (experimental)** "
"([#2770](https://github.com/adap/flower/pull/2770), "
"[#2686](https://github.com/adap/flower/pull/2686), "
"[#2696](https://github.com/adap/flower/pull/2696), "
"[#2643](https://github.com/adap/flower/pull/2643), "
"[#2769](https://github.com/adap/flower/pull/2769))"
msgstr ""
"**([#842](https://github.com/adap/flower/pull/842), "
"[#844](https://github.com/adap/flower/pull/844), "
"[#845](https://github.com/adap/flower/pull/845), "
"[#847](https://github.com/adap/flower/pull/847), "
"[#993](https://github.com/adap/flower/pull/993), "
"[#994](https://github.com/adap/flower/pull/994))"

#: ../../source/ref-changelog.md:616
msgid ""
"Subclasses of `Client` and `NumPyClient` can now store local state that "
"remains on the client. Let's start with the highlight first: this new "
"feature is compatible with both simulated clients (via "
"`start_simulation`) and networked clients (via `start_client`). It's also"
" the first preview of new abstractions like `Context` and `RecordSet`. "
"Clients can access state of type `RecordSet` via `state: RecordSet = "
"self.context.state`. Changes to this `RecordSet` are preserved across "
"different rounds of execution to enable stateful computations in a "
"unified way across simulation and deployment."
msgstr ""

#: ../../source/ref-changelog.md:618
#, fuzzy
msgid ""
"**Improve performance** "
"([#2293](https://github.com/adap/flower/pull/2293))"
msgstr ""
"**Supprimer les stratégies expérimentales** "
"([#1280](https://github.com/adap/flower/pull/1280))"

#: ../../source/ref-changelog.md:620
msgid ""
"Flower is faster than ever. All `FedAvg`-derived strategies now use in-"
"place aggregation to reduce memory consumption. The Flower client "
"serialization/deserialization has been rewritten from the ground up, "
"which results in significant speedups, especially when the client-side "
"training time is short."
msgstr ""

#: ../../source/ref-changelog.md:622
#, fuzzy
msgid ""
"**Support Federated Learning with Apple MLX and Flower** "
"([#2693](https://github.com/adap/flower/pull/2693))"
msgstr ""
"**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et "
"Flower** ([#1598](https://github.com/adap/flower/pull/1598))"

#: ../../source/ref-changelog.md:624
msgid ""
"Flower has official support for federated learning using [Apple "
"MLX](https://ml-explore.github.io/mlx) via the new `quickstart-mlx` code "
"example."
msgstr ""

#: ../../source/ref-changelog.md:626
#, fuzzy
msgid ""
"**Introduce new XGBoost cyclic strategy** "
"([#2666](https://github.com/adap/flower/pull/2666), "
"[#2668](https://github.com/adap/flower/pull/2668))"
msgstr ""
"**Introduction du SDK iOS (aperçu)** "
"([#1621](https://github.com/adap/flower/pull/1621), "
"[#1764](https://github.com/adap/flower/pull/1764))"

#: ../../source/ref-changelog.md:628
msgid ""
"A new strategy called `FedXgbCyclic` supports a client-by-client style of"
" training (often called cyclic). The `xgboost-comprehensive` code example"
" shows how to use it in a full project. In addition to that, `xgboost-"
"comprehensive` now also supports simulation mode. With this, Flower "
"offers best-in-class XGBoost support."
msgstr ""

#: ../../source/ref-changelog.md:630
#, fuzzy
msgid ""
"**Support Python 3.11** "
"([#2394](https://github.com/adap/flower/pull/2394))"
msgstr ""
"**Support Python 3.10** "
"([#1320](https://github.com/adap/flower/pull/1320))"

#: ../../source/ref-changelog.md:632
msgid ""
"Framework tests now run on Python 3.8, 3.9, 3.10, and 3.11. This will "
"ensure better support for users using more recent Python versions."
msgstr ""

#: ../../source/ref-changelog.md:634
#, fuzzy
msgid ""
"**Update gRPC and ProtoBuf dependencies** "
"([#2814](https://github.com/adap/flower/pull/2814))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:636
msgid ""
"The `grpcio` and `protobuf` dependencies were updated to their latest "
"versions for improved security and performance."
msgstr ""

#: ../../source/ref-changelog.md:638
#, fuzzy
msgid ""
"**Introduce Docker image for Flower server** "
"([#2700](https://github.com/adap/flower/pull/2700), "
"[#2688](https://github.com/adap/flower/pull/2688), "
"[#2705](https://github.com/adap/flower/pull/2705), "
"[#2695](https://github.com/adap/flower/pull/2695), "
"[#2747](https://github.com/adap/flower/pull/2747), "
"[#2746](https://github.com/adap/flower/pull/2746), "
"[#2680](https://github.com/adap/flower/pull/2680), "
"[#2682](https://github.com/adap/flower/pull/2682), "
"[#2701](https://github.com/adap/flower/pull/2701))"
msgstr ""
"**([#842](https://github.com/adap/flower/pull/842), "
"[#844](https://github.com/adap/flower/pull/844), "
"[#845](https://github.com/adap/flower/pull/845), "
"[#847](https://github.com/adap/flower/pull/847), "
"[#993](https://github.com/adap/flower/pull/993), "
"[#994](https://github.com/adap/flower/pull/994))"

#: ../../source/ref-changelog.md:640
msgid ""
"The Flower server can now be run using an official Docker image. A new "
"how-to guide explains [how to run Flower using "
"Docker](https://flower.ai/docs/framework/how-to-run-flower-using-"
"docker.html). An official Flower client Docker image will follow."
msgstr ""

#: ../../source/ref-changelog.md:642
#, fuzzy
msgid ""
"**Introduce** `flower-via-docker-compose` **example** "
"([#2626](https://github.com/adap/flower/pull/2626))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:644
#, fuzzy
msgid ""
"**Introduce** `quickstart-sklearn-tabular` **example** "
"([#2719](https://github.com/adap/flower/pull/2719))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:646
#, fuzzy
msgid ""
"**Introduce** `custom-metrics` **example** "
"([#1958](https://github.com/adap/flower/pull/1958))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:648
#, fuzzy
msgid ""
"**Update code examples to use Flower Datasets** "
"([#2450](https://github.com/adap/flower/pull/2450), "
"[#2456](https://github.com/adap/flower/pull/2456), "
"[#2318](https://github.com/adap/flower/pull/2318), "
"[#2712](https://github.com/adap/flower/pull/2712))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:650
msgid ""
"Several code examples were updated to use [Flower "
"Datasets](https://flower.ai/docs/datasets/)."
msgstr ""

#: ../../source/ref-changelog.md:652
#, fuzzy
msgid ""
"**General updates to Flower Examples** "
"([#2381](https://github.com/adap/flower/pull/2381), "
"[#2805](https://github.com/adap/flower/pull/2805), "
"[#2782](https://github.com/adap/flower/pull/2782), "
"[#2806](https://github.com/adap/flower/pull/2806), "
"[#2829](https://github.com/adap/flower/pull/2829), "
"[#2825](https://github.com/adap/flower/pull/2825), "
"[#2816](https://github.com/adap/flower/pull/2816), "
"[#2726](https://github.com/adap/flower/pull/2726), "
"[#2659](https://github.com/adap/flower/pull/2659), "
"[#2655](https://github.com/adap/flower/pull/2655))"
msgstr ""
"**Améliorer l'API (expérimentale) du pilote** "
"([#1663](https://github.com/adap/flower/pull/1663), "
"[#1666](https://github.com/adap/flower/pull/1666), "
"[#1667](https://github.com/adap/flower/pull/1667), "
"[#1664](https://github.com/adap/flower/pull/1664), "
"[#1675](https://github.com/adap/flower/pull/1675), "
"[#1676](https://github.com/adap/flower/pull/1676), "
"[#1693](https://github.com/adap/flower/pull/1693), "
"[#1662](https://github.com/adap/flower/pull/1662), "
"[#1794](https://github.com/adap/flower/pull/1794))"

#: ../../source/ref-changelog.md:654
msgid "Many Flower code examples received substantial updates."
msgstr ""

#: ../../source/ref-changelog.md:656 ../../source/ref-changelog.md:749
#, fuzzy
msgid "**Update Flower Baselines**"
msgstr "Demande pour une nouvelle Flower Baseline"

#: ../../source/ref-changelog.md:658
#, fuzzy
msgid ""
"HFedXGBoost ([#2226](https://github.com/adap/flower/pull/2226), "
"[#2771](https://github.com/adap/flower/pull/2771))"
msgstr ""
"**Nouvel exemple de code JAX** "
"([#906](https://github.com/adap/flower/pull/906), "
"[#1143](https://github.com/adap/flower/pull/1143))"

#: ../../source/ref-changelog.md:659
#, fuzzy
msgid "FedVSSL ([#2412](https://github.com/adap/flower/pull/2412))"
msgstr ""
"Amélioration de la documentation sur le serveur gRPC "
"([#841](https://github.com/adap/flower/pull/841))"

#: ../../source/ref-changelog.md:660
#, fuzzy
msgid "FedNova ([#2179](https://github.com/adap/flower/pull/2179))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:661
#, fuzzy
msgid "HeteroFL ([#2439](https://github.com/adap/flower/pull/2439))"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:662
#, fuzzy
msgid "FedAvgM ([#2246](https://github.com/adap/flower/pull/2246))"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:663
#, fuzzy
msgid "FedPara ([#2722](https://github.com/adap/flower/pull/2722))"
msgstr ""
"**Renommé stratégie q-FedAvg** "
"([#802](https://github.com/adap/flower/pull/802))"

#: ../../source/ref-changelog.md:665
#, fuzzy
msgid ""
"**Improve documentation** "
"([#2674](https://github.com/adap/flower/pull/2674), "
"[#2480](https://github.com/adap/flower/pull/2480), "
"[#2826](https://github.com/adap/flower/pull/2826), "
"[#2727](https://github.com/adap/flower/pull/2727), "
"[#2761](https://github.com/adap/flower/pull/2761), "
"[#2900](https://github.com/adap/flower/pull/2900))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:667
msgid ""
"**Improved testing and development infrastructure** "
"([#2797](https://github.com/adap/flower/pull/2797), "
"[#2676](https://github.com/adap/flower/pull/2676), "
"[#2644](https://github.com/adap/flower/pull/2644), "
"[#2656](https://github.com/adap/flower/pull/2656), "
"[#2848](https://github.com/adap/flower/pull/2848), "
"[#2675](https://github.com/adap/flower/pull/2675), "
"[#2735](https://github.com/adap/flower/pull/2735), "
"[#2767](https://github.com/adap/flower/pull/2767), "
"[#2732](https://github.com/adap/flower/pull/2732), "
"[#2744](https://github.com/adap/flower/pull/2744), "
"[#2681](https://github.com/adap/flower/pull/2681), "
"[#2699](https://github.com/adap/flower/pull/2699), "
"[#2745](https://github.com/adap/flower/pull/2745), "
"[#2734](https://github.com/adap/flower/pull/2734), "
"[#2731](https://github.com/adap/flower/pull/2731), "
"[#2652](https://github.com/adap/flower/pull/2652), "
"[#2720](https://github.com/adap/flower/pull/2720), "
"[#2721](https://github.com/adap/flower/pull/2721), "
"[#2717](https://github.com/adap/flower/pull/2717), "
"[#2864](https://github.com/adap/flower/pull/2864), "
"[#2694](https://github.com/adap/flower/pull/2694), "
"[#2709](https://github.com/adap/flower/pull/2709), "
"[#2658](https://github.com/adap/flower/pull/2658), "
"[#2796](https://github.com/adap/flower/pull/2796), "
"[#2692](https://github.com/adap/flower/pull/2692), "
"[#2657](https://github.com/adap/flower/pull/2657), "
"[#2813](https://github.com/adap/flower/pull/2813), "
"[#2661](https://github.com/adap/flower/pull/2661), "
"[#2398](https://github.com/adap/flower/pull/2398))"
msgstr ""

#: ../../source/ref-changelog.md:669
msgid ""
"The Flower testing and development infrastructure has received "
"substantial updates. This makes Flower 1.7 the most tested release ever."
msgstr ""

#: ../../source/ref-changelog.md:671
msgid ""
"**Update dependencies** "
"([#2753](https://github.com/adap/flower/pull/2753), "
"[#2651](https://github.com/adap/flower/pull/2651), "
"[#2739](https://github.com/adap/flower/pull/2739), "
"[#2837](https://github.com/adap/flower/pull/2837), "
"[#2788](https://github.com/adap/flower/pull/2788), "
"[#2811](https://github.com/adap/flower/pull/2811), "
"[#2774](https://github.com/adap/flower/pull/2774), "
"[#2790](https://github.com/adap/flower/pull/2790), "
"[#2751](https://github.com/adap/flower/pull/2751), "
"[#2850](https://github.com/adap/flower/pull/2850), "
"[#2812](https://github.com/adap/flower/pull/2812), "
"[#2872](https://github.com/adap/flower/pull/2872), "
"[#2736](https://github.com/adap/flower/pull/2736), "
"[#2756](https://github.com/adap/flower/pull/2756), "
"[#2857](https://github.com/adap/flower/pull/2857), "
"[#2757](https://github.com/adap/flower/pull/2757), "
"[#2810](https://github.com/adap/flower/pull/2810), "
"[#2740](https://github.com/adap/flower/pull/2740), "
"[#2789](https://github.com/adap/flower/pull/2789))"
msgstr ""

#: ../../source/ref-changelog.md:673
msgid ""
"**General improvements** "
"([#2803](https://github.com/adap/flower/pull/2803), "
"[#2847](https://github.com/adap/flower/pull/2847), "
"[#2877](https://github.com/adap/flower/pull/2877), "
"[#2690](https://github.com/adap/flower/pull/2690), "
"[#2889](https://github.com/adap/flower/pull/2889), "
"[#2874](https://github.com/adap/flower/pull/2874), "
"[#2819](https://github.com/adap/flower/pull/2819), "
"[#2689](https://github.com/adap/flower/pull/2689), "
"[#2457](https://github.com/adap/flower/pull/2457), "
"[#2870](https://github.com/adap/flower/pull/2870), "
"[#2669](https://github.com/adap/flower/pull/2669), "
"[#2876](https://github.com/adap/flower/pull/2876), "
"[#2885](https://github.com/adap/flower/pull/2885), "
"[#2858](https://github.com/adap/flower/pull/2858), "
"[#2867](https://github.com/adap/flower/pull/2867), "
"[#2351](https://github.com/adap/flower/pull/2351), "
"[#2886](https://github.com/adap/flower/pull/2886), "
"[#2860](https://github.com/adap/flower/pull/2860), "
"[#2828](https://github.com/adap/flower/pull/2828), "
"[#2869](https://github.com/adap/flower/pull/2869), "
"[#2875](https://github.com/adap/flower/pull/2875), "
"[#2733](https://github.com/adap/flower/pull/2733), "
"[#2488](https://github.com/adap/flower/pull/2488), "
"[#2646](https://github.com/adap/flower/pull/2646), "
"[#2879](https://github.com/adap/flower/pull/2879), "
"[#2821](https://github.com/adap/flower/pull/2821), "
"[#2855](https://github.com/adap/flower/pull/2855), "
"[#2800](https://github.com/adap/flower/pull/2800), "
"[#2807](https://github.com/adap/flower/pull/2807), "
"[#2801](https://github.com/adap/flower/pull/2801), "
"[#2804](https://github.com/adap/flower/pull/2804), "
"[#2851](https://github.com/adap/flower/pull/2851), "
"[#2787](https://github.com/adap/flower/pull/2787), "
"[#2852](https://github.com/adap/flower/pull/2852), "
"[#2672](https://github.com/adap/flower/pull/2672), "
"[#2759](https://github.com/adap/flower/pull/2759))"
msgstr ""

#: ../../source/ref-changelog.md:677
#, fuzzy
msgid ""
"**Deprecate** `start_numpy_client` "
"([#2563](https://github.com/adap/flower/pull/2563), "
"[#2718](https://github.com/adap/flower/pull/2718))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:679
msgid ""
"Until now, clients of type `NumPyClient` needed to be started via "
"`start_numpy_client`. In our efforts to consolidate framework APIs, we "
"have introduced changes, and now all client types should start via "
"`start_client`. To continue using `NumPyClient` clients, you simply need "
"to first call the `.to_client()` method and then pass returned `Client` "
"object to `start_client`. The examples and the documentation have been "
"updated accordingly."
msgstr ""

#: ../../source/ref-changelog.md:681
#, fuzzy
msgid ""
"**Deprecate legacy DP wrappers** "
"([#2749](https://github.com/adap/flower/pull/2749))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:683
msgid ""
"Legacy DP wrapper classes are deprecated, but still functional. This is "
"in preparation for an all-new pluggable version of differential privacy "
"support in Flower."
msgstr ""

#: ../../source/ref-changelog.md:685
#, fuzzy
msgid ""
"**Make optional arg** `--callable` **in** `flower-client` **a required "
"positional arg** ([#2673](https://github.com/adap/flower/pull/2673))"
msgstr ""
"**Log** `Client` **exceptions dans le moteur de client virtuel** "
"([#1493](https://github.com/adap/flower/pull/1493))"

#: ../../source/ref-changelog.md:687
#, fuzzy
msgid ""
"**Rename** `certificates` **to** `root_certificates` **in** `Driver` "
"([#2890](https://github.com/adap/flower/pull/2890))"
msgstr ""
"**Rename** `rnd` **to** `server_round` "
"([#1321](https://github.com/adap/flower/pull/1321))"

#: ../../source/ref-changelog.md:689
#, fuzzy
msgid ""
"**Drop experimental** `Task` **fields** "
"([#2866](https://github.com/adap/flower/pull/2866), "
"[#2865](https://github.com/adap/flower/pull/2865))"
msgstr ""
"**Rename** `Weights` **to** `NDArrays` "
"([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"

#: ../../source/ref-changelog.md:691
msgid ""
"Experimental fields `sa`, `legacy_server_message` and "
"`legacy_client_message` were removed from `Task` message. The removed "
"fields are superseded by the new `RecordSet` abstraction."
msgstr ""

#: ../../source/ref-changelog.md:693
#, fuzzy
msgid ""
"**Retire MXNet examples** "
"([#2724](https://github.com/adap/flower/pull/2724))"
msgstr ""
"**Nouvel exemple de code scikit-learn** "
"([#748](https://github.com/adap/flower/pull/748))"

#: ../../source/ref-changelog.md:695
msgid ""
"The development of the MXNet fremework has ended and the project is now "
"[archived on GitHub](https://github.com/apache/mxnet). Existing MXNet "
"examples won't receive updates."
msgstr ""

#: ../../source/ref-changelog.md:697
#, fuzzy
msgid "v1.6.0 (2023-11-28)"
msgstr "v1.4.0 (2023-04-21)"

#: ../../source/ref-changelog.md:703
msgid ""
"`Aashish Kolluri`, `Adam Narozniak`, `Alessio Mora`, `Barathwaja S`, "
"`Charles Beauville`, `Daniel J. Beutel`, `Daniel Nata Nugraha`, `Gabriel "
"Mota`, `Heng Pan`, `Ivan Agarský`, `JS.KIM`, `Javier`, `Marius Schlegel`,"
" `Navin Chandra`, `Nic Lane`, `Peterpan828`, `Qinbin Li`, `Shaz-hash`, "
"`Steve Laskaridis`, `Taner Topal`, `William Lindskog`, `Yan Gao`, "
"`cnxdeveloper`, `k3nfalt` <!---TOKEN_v1.6.0-->"
msgstr ""

#: ../../source/ref-changelog.md:707
#, fuzzy
msgid ""
"**Add experimental support for Python 3.12** "
"([#2565](https://github.com/adap/flower/pull/2565))"
msgstr ""
"**Ajouter la prise en charge expérimentale de Python 3.10 et Python "
"3.11** ([#1135](https://github.com/adap/flower/pull/1135))"

#: ../../source/ref-changelog.md:709
#, fuzzy
msgid ""
"**Add new XGBoost examples** "
"([#2612](https://github.com/adap/flower/pull/2612), "
"[#2554](https://github.com/adap/flower/pull/2554), "
"[#2617](https://github.com/adap/flower/pull/2617), "
"[#2618](https://github.com/adap/flower/pull/2618), "
"[#2619](https://github.com/adap/flower/pull/2619), "
"[#2567](https://github.com/adap/flower/pull/2567))"
msgstr ""
"**([#1520](https://github.com/adap/flower/pull/1520), "
"[#1525](https://github.com/adap/flower/pull/1525), "
"[#1545](https://github.com/adap/flower/pull/1545), "
"[#1546](https://github.com/adap/flower/pull/1546), "
"[#1550](https://github.com/adap/flower/pull/1550), "
"[#1551](https://github.com/adap/flower/pull/1551), "
"[#1567](https://github.com/adap/flower/pull/1567))"

#: ../../source/ref-changelog.md:711
msgid ""
"We have added a new `xgboost-quickstart` example alongside a new "
"`xgboost-comprehensive` example that goes more in-depth."
msgstr ""

#: ../../source/ref-changelog.md:713
#, fuzzy
msgid ""
"**Add Vertical FL example** "
"([#2598](https://github.com/adap/flower/pull/2598))"
msgstr ""
"**Nouvel exemple de code CoreML pour iOS** "
"([#1289](https://github.com/adap/flower/pull/1289))"

#: ../../source/ref-changelog.md:715
msgid ""
"We had many questions about Vertical Federated Learning using Flower, so "
"we decided to add an simple example for it on the [Titanic "
"dataset](https://www.kaggle.com/competitions/titanic/data) alongside a "
"tutorial (in the README)."
msgstr ""

#: ../../source/ref-changelog.md:717
#, fuzzy
msgid ""
"**Support custom** `ClientManager` **in** `start_driver()` "
"([#2292](https://github.com/adap/flower/pull/2292))"
msgstr ""
"Ajout de la prise en charge d'un `ClientManager` personnalisé comme "
"paramètre de `start_simulation` "
"([#1171](https://github.com/adap/flower/pull/1171))"

#: ../../source/ref-changelog.md:719
#, fuzzy
msgid ""
"**Update REST API to support create and delete nodes** "
"([#2283](https://github.com/adap/flower/pull/2283))"
msgstr ""
"**Nouvelle stratégie expérimentale TensorBoard** "
"([#789](https://github.com/adap/flower/pull/789))"

#: ../../source/ref-changelog.md:721
#, fuzzy
msgid ""
"**Update the Android SDK** "
"([#2187](https://github.com/adap/flower/pull/2187))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:723
msgid "Add gRPC request-response capability to the Android SDK."
msgstr ""

#: ../../source/ref-changelog.md:725
#, fuzzy
msgid ""
"**Update the C++ SDK** "
"([#2537](https://github.com/adap/flower/pull/2537), "
"[#2528](https://github.com/adap/flower/pull/2528), "
"[#2523](https://github.com/adap/flower/pull/2523), "
"[#2522](https://github.com/adap/flower/pull/2522))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:727
msgid "Add gRPC request-response capability to the C++ SDK."
msgstr ""

#: ../../source/ref-changelog.md:729
#, fuzzy
msgid ""
"**Make HTTPS the new default** "
"([#2591](https://github.com/adap/flower/pull/2591), "
"[#2636](https://github.com/adap/flower/pull/2636))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:731
msgid ""
"Flower is moving to HTTPS by default. The new `flower-server` requires "
"passing `--certificates`, but users can enable `--insecure` to use HTTP "
"for prototyping. The same applies to `flower-client`, which can either "
"use user-provided credentials or gRPC-bundled certificates to connect to "
"an HTTPS-enabled server or requires opt-out via passing `--insecure` to "
"enable insecure HTTP connections."
msgstr ""

#: ../../source/ref-changelog.md:733
msgid ""
"For backward compatibility, `start_client()` and `start_numpy_client()` "
"will still start in insecure mode by default. In a future release, "
"insecure connections will require user opt-in by passing `insecure=True`."
msgstr ""

#: ../../source/ref-changelog.md:735
#, fuzzy
msgid ""
"**Unify client API** ([#2303](https://github.com/adap/flower/pull/2303), "
"[#2390](https://github.com/adap/flower/pull/2390), "
"[#2493](https://github.com/adap/flower/pull/2493))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:737
msgid ""
"Using the `client_fn`, Flower clients can interchangeably run as "
"standalone processes (i.e. via `start_client`) or in simulation (i.e. via"
" `start_simulation`) without requiring changes to how the client class is"
" defined and instantiated. The `to_client()` function is introduced to "
"convert a `NumPyClient` to a `Client`."
msgstr ""

#: ../../source/ref-changelog.md:739
#, fuzzy
msgid ""
"**Add new** `Bulyan` **strategy** "
"([#1817](https://github.com/adap/flower/pull/1817), "
"[#1891](https://github.com/adap/flower/pull/1891))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:741
#, fuzzy
msgid ""
"The new `Bulyan` strategy implements Bulyan by [El Mhamdi et al., "
"2018](https://arxiv.org/abs/1802.07927)"
msgstr ""
"La nouvelle stratégie `FedMedian` met en œuvre Federated Median "
"(FedMedian) par [Yin et al., 2018] "
"(https://arxiv.org/pdf/1803.01498v1.pdf)."

#: ../../source/ref-changelog.md:743
#, fuzzy
msgid ""
"**Add new** `XGB Bagging` **strategy** "
"([#2611](https://github.com/adap/flower/pull/2611))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:745 ../../source/ref-changelog.md:747
#, fuzzy
msgid ""
"**Introduce `WorkloadState`** "
"([#2564](https://github.com/adap/flower/pull/2564), "
"[#2632](https://github.com/adap/flower/pull/2632))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:751
#, fuzzy
msgid ""
"FedProx ([#2210](https://github.com/adap/flower/pull/2210), "
"[#2286](https://github.com/adap/flower/pull/2286), "
"[#2509](https://github.com/adap/flower/pull/2509))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:753
#, fuzzy
msgid ""
"Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290), "
"[#2400](https://github.com/adap/flower/pull/2400))"
msgstr ""
"**Nouvel exemple de code JAX** "
"([#906](https://github.com/adap/flower/pull/906), "
"[#1143](https://github.com/adap/flower/pull/1143))"

#: ../../source/ref-changelog.md:755
#, fuzzy
msgid ""
"FedMLB ([#2340](https://github.com/adap/flower/pull/2340), "
"[#2507](https://github.com/adap/flower/pull/2507))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:757
#, fuzzy
msgid ""
"TAMUNA ([#2254](https://github.com/adap/flower/pull/2254), "
"[#2508](https://github.com/adap/flower/pull/2508))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:759
#, fuzzy
msgid "FedMeta [#2438](https://github.com/adap/flower/pull/2438)"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:761
#, fuzzy
msgid "FjORD [#2431](https://github.com/adap/flower/pull/2431)"
msgstr ""
"Amélioration de la documentation sur le serveur gRPC "
"([#841](https://github.com/adap/flower/pull/841))"

#: ../../source/ref-changelog.md:763
#, fuzzy
msgid "MOON [#2421](https://github.com/adap/flower/pull/2421)"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:765
#, fuzzy
msgid "DepthFL [#2295](https://github.com/adap/flower/pull/2295)"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:767
#, fuzzy
msgid "FedPer [#2266](https://github.com/adap/flower/pull/2266)"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:769
#, fuzzy
msgid "FedWav2vec [#2551](https://github.com/adap/flower/pull/2551)"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:771
#, fuzzy
msgid "niid-Bench [#2428](https://github.com/adap/flower/pull/2428)"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:773
#, fuzzy
msgid ""
"FedBN ([#2608](https://github.com/adap/flower/pull/2608), "
"[#2615](https://github.com/adap/flower/pull/2615))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:775
#, fuzzy
msgid ""
"**General updates to Flower Examples** "
"([#2384](https://github.com/adap/flower/pull/2384), "
"[#2425](https://github.com/adap/flower/pull/2425), "
"[#2526](https://github.com/adap/flower/pull/2526), "
"[#2302](https://github.com/adap/flower/pull/2302), "
"[#2545](https://github.com/adap/flower/pull/2545))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:777
#, fuzzy
msgid ""
"**General updates to Flower Baselines** "
"([#2301](https://github.com/adap/flower/pull/2301), "
"[#2305](https://github.com/adap/flower/pull/2305), "
"[#2307](https://github.com/adap/flower/pull/2307), "
"[#2327](https://github.com/adap/flower/pull/2327), "
"[#2435](https://github.com/adap/flower/pull/2435), "
"[#2462](https://github.com/adap/flower/pull/2462), "
"[#2463](https://github.com/adap/flower/pull/2463), "
"[#2461](https://github.com/adap/flower/pull/2461), "
"[#2469](https://github.com/adap/flower/pull/2469), "
"[#2466](https://github.com/adap/flower/pull/2466), "
"[#2471](https://github.com/adap/flower/pull/2471), "
"[#2472](https://github.com/adap/flower/pull/2472), "
"[#2470](https://github.com/adap/flower/pull/2470))"
msgstr ""
"**Améliorations générales** "
"([#1491](https://github.com/adap/flower/pull/1491), "
"[#1504](https://github.com/adap/flower/pull/1504), "
"[#1506](https://github.com/adap/flower/pull/1506), "
"[#1514](https://github.com/adap/flower/pull/1514), "
"[#1522](https://github.com/adap/flower/pull/1522), "
"[#1523](https://github.com/adap/flower/pull/1523), "
"[#1526](https://github.com/adap/flower/pull/1526), "
"[#1528](https://github.com/adap/flower/pull/1528), "
"[#1547](https://github.com/adap/flower/pull/1547), "
"[#1549](https://github.com/adap/flower/pull/1549), "
"[#1560](https://github.com/adap/flower/pull/1560), "
"[#1564](https://github.com/adap/flower/pull/1564), "
"[#1566](https://github.com/adap/flower/pull/1566))"

#: ../../source/ref-changelog.md:779
#, fuzzy
msgid ""
"**General updates to the simulation engine** "
"([#2331](https://github.com/adap/flower/pull/2331), "
"[#2447](https://github.com/adap/flower/pull/2447), "
"[#2448](https://github.com/adap/flower/pull/2448), "
"[#2294](https://github.com/adap/flower/pull/2294))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:781
#, fuzzy
msgid ""
"**General updates to Flower SDKs** "
"([#2288](https://github.com/adap/flower/pull/2288), "
"[#2429](https://github.com/adap/flower/pull/2429), "
"[#2555](https://github.com/adap/flower/pull/2555), "
"[#2543](https://github.com/adap/flower/pull/2543), "
"[#2544](https://github.com/adap/flower/pull/2544), "
"[#2597](https://github.com/adap/flower/pull/2597), "
"[#2623](https://github.com/adap/flower/pull/2623))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:783
msgid ""
"**General improvements** "
"([#2309](https://github.com/adap/flower/pull/2309), "
"[#2310](https://github.com/adap/flower/pull/2310), "
"[#2313](https://github.com/adap/flower/pull/2313), "
"[#2316](https://github.com/adap/flower/pull/2316), "
"[#2317](https://github.com/adap/flower/pull/2317), "
"[#2349](https://github.com/adap/flower/pull/2349), "
"[#2360](https://github.com/adap/flower/pull/2360), "
"[#2402](https://github.com/adap/flower/pull/2402), "
"[#2446](https://github.com/adap/flower/pull/2446), "
"[#2561](https://github.com/adap/flower/pull/2561), "
"[#2273](https://github.com/adap/flower/pull/2273), "
"[#2267](https://github.com/adap/flower/pull/2267), "
"[#2274](https://github.com/adap/flower/pull/2274), "
"[#2275](https://github.com/adap/flower/pull/2275), "
"[#2432](https://github.com/adap/flower/pull/2432), "
"[#2251](https://github.com/adap/flower/pull/2251), "
"[#2321](https://github.com/adap/flower/pull/2321), "
"[#1936](https://github.com/adap/flower/pull/1936), "
"[#2408](https://github.com/adap/flower/pull/2408), "
"[#2413](https://github.com/adap/flower/pull/2413), "
"[#2401](https://github.com/adap/flower/pull/2401), "
"[#2531](https://github.com/adap/flower/pull/2531), "
"[#2534](https://github.com/adap/flower/pull/2534), "
"[#2535](https://github.com/adap/flower/pull/2535), "
"[#2521](https://github.com/adap/flower/pull/2521), "
"[#2553](https://github.com/adap/flower/pull/2553), "
"[#2596](https://github.com/adap/flower/pull/2596))"
msgstr ""

#: ../../source/ref-changelog.md:785 ../../source/ref-changelog.md:875
#: ../../source/ref-changelog.md:939 ../../source/ref-changelog.md:993
#: ../../source/ref-changelog.md:1060
msgid "Flower received many improvements under the hood, too many to list here."
msgstr ""
"Flower a reçu de nombreuses améliorations sous le capot, trop nombreuses "
"pour être énumérées ici."

#: ../../source/ref-changelog.md:789
#, fuzzy
msgid ""
"**Remove support for Python 3.7** "
"([#2280](https://github.com/adap/flower/pull/2280), "
"[#2299](https://github.com/adap/flower/pull/2299), "
"[#2304](https://github.com/adap/flower/pull/2304), "
"[#2306](https://github.com/adap/flower/pull/2306), "
"[#2355](https://github.com/adap/flower/pull/2355), "
"[#2356](https://github.com/adap/flower/pull/2356))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:791
msgid ""
"Python 3.7 support was deprecated in Flower 1.5, and this release removes"
" support. Flower now requires Python 3.8."
msgstr ""

#: ../../source/ref-changelog.md:793
#, fuzzy
msgid ""
"**Remove experimental argument** `rest` **from** `start_client` "
"([#2324](https://github.com/adap/flower/pull/2324))"
msgstr ""
"**Supprimer les stratégies expérimentales** "
"([#1280](https://github.com/adap/flower/pull/1280))"

#: ../../source/ref-changelog.md:795
msgid ""
"The (still experimental) argument `rest` was removed from `start_client` "
"and `start_numpy_client`. Use `transport=\"rest\"` to opt into the "
"experimental REST API instead."
msgstr ""

#: ../../source/ref-changelog.md:797
#, fuzzy
msgid "v1.5.0 (2023-08-31)"
msgstr "v1.4.0 (2023-04-21)"

#: ../../source/ref-changelog.md:803
msgid ""
"`Adam Narozniak`, `Anass Anhari`, `Charles Beauville`, `Dana-Farber`, "
"`Daniel J. Beutel`, `Daniel Nata Nugraha`, `Edoardo Gabrielli`, `Gustavo "
"Bertoli`, `Heng Pan`, `Javier`, `Mahdi`, `Steven Hé (Sīchàng)`, `Taner "
"Topal`, `achiverram28`, `danielnugraha`, `eunchung`, `ruthgal` <!---"
"TOKEN_v1.5.0-->"
msgstr ""

#: ../../source/ref-changelog.md:807
#, fuzzy
msgid ""
"**Introduce new simulation engine** "
"([#1969](https://github.com/adap/flower/pull/1969), "
"[#2221](https://github.com/adap/flower/pull/2221), "
"[#2248](https://github.com/adap/flower/pull/2248))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:809
msgid ""
"The new simulation engine has been rewritten from the ground up, yet it "
"remains fully backwards compatible. It offers much improved stability and"
" memory handling, especially when working with GPUs. Simulations "
"transparently adapt to different settings to scale simulation in CPU-"
"only, CPU+GPU, multi-GPU, or multi-node multi-GPU environments."
msgstr ""

#: ../../source/ref-changelog.md:811
msgid ""
"Comprehensive documentation includes a new [how-to run "
"simulations](https://flower.ai/docs/framework/how-to-run-"
"simulations.html) guide, new [simulation-"
"pytorch](https://flower.ai/docs/examples/simulation-pytorch.html) and "
"[simulation-tensorflow](https://flower.ai/docs/examples/simulation-"
"tensorflow.html) notebooks, and a new [YouTube tutorial "
"series](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)."
msgstr ""

#: ../../source/ref-changelog.md:813
msgid ""
"**Restructure Flower Docs** "
"([#1824](https://github.com/adap/flower/pull/1824), "
"[#1865](https://github.com/adap/flower/pull/1865), "
"[#1884](https://github.com/adap/flower/pull/1884), "
"[#1887](https://github.com/adap/flower/pull/1887), "
"[#1919](https://github.com/adap/flower/pull/1919), "
"[#1922](https://github.com/adap/flower/pull/1922), "
"[#1920](https://github.com/adap/flower/pull/1920), "
"[#1923](https://github.com/adap/flower/pull/1923), "
"[#1924](https://github.com/adap/flower/pull/1924), "
"[#1962](https://github.com/adap/flower/pull/1962), "
"[#2006](https://github.com/adap/flower/pull/2006), "
"[#2133](https://github.com/adap/flower/pull/2133), "
"[#2203](https://github.com/adap/flower/pull/2203), "
"[#2215](https://github.com/adap/flower/pull/2215), "
"[#2122](https://github.com/adap/flower/pull/2122), "
"[#2223](https://github.com/adap/flower/pull/2223), "
"[#2219](https://github.com/adap/flower/pull/2219), "
"[#2232](https://github.com/adap/flower/pull/2232), "
"[#2233](https://github.com/adap/flower/pull/2233), "
"[#2234](https://github.com/adap/flower/pull/2234), "
"[#2235](https://github.com/adap/flower/pull/2235), "
"[#2237](https://github.com/adap/flower/pull/2237), "
"[#2238](https://github.com/adap/flower/pull/2238), "
"[#2242](https://github.com/adap/flower/pull/2242), "
"[#2231](https://github.com/adap/flower/pull/2231), "
"[#2243](https://github.com/adap/flower/pull/2243), "
"[#2227](https://github.com/adap/flower/pull/2227))"
msgstr ""

#: ../../source/ref-changelog.md:815
msgid ""
"Much effort went into a completely restructured Flower docs experience. "
"The documentation on [flower.ai/docs](https://flower.ai/docs) is now "
"divided into Flower Framework, Flower Baselines, Flower Android SDK, "
"Flower iOS SDK, and code example projects."
msgstr ""

#: ../../source/ref-changelog.md:817
#, fuzzy
msgid ""
"**Introduce Flower Swift SDK** "
"([#1858](https://github.com/adap/flower/pull/1858), "
"[#1897](https://github.com/adap/flower/pull/1897))"
msgstr ""
"**Introduction du SDK iOS (aperçu)** "
"([#1621](https://github.com/adap/flower/pull/1621), "
"[#1764](https://github.com/adap/flower/pull/1764))"

#: ../../source/ref-changelog.md:819
msgid ""
"This is the first preview release of the Flower Swift SDK. Flower support"
" on iOS is improving, and alongside the Swift SDK and code example, there"
" is now also an iOS quickstart tutorial."
msgstr ""

#: ../../source/ref-changelog.md:821
#, fuzzy
msgid ""
"**Introduce Flower Android SDK** "
"([#2131](https://github.com/adap/flower/pull/2131))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:823
msgid ""
"This is the first preview release of the Flower Kotlin SDK. Flower "
"support on Android is improving, and alongside the Kotlin SDK and code "
"example, there is now also an Android quickstart tutorial."
msgstr ""

#: ../../source/ref-changelog.md:825
#, fuzzy
msgid ""
"**Introduce new end-to-end testing infrastructure** "
"([#1842](https://github.com/adap/flower/pull/1842), "
"[#2071](https://github.com/adap/flower/pull/2071), "
"[#2072](https://github.com/adap/flower/pull/2072), "
"[#2068](https://github.com/adap/flower/pull/2068), "
"[#2067](https://github.com/adap/flower/pull/2067), "
"[#2069](https://github.com/adap/flower/pull/2069), "
"[#2073](https://github.com/adap/flower/pull/2073), "
"[#2070](https://github.com/adap/flower/pull/2070), "
"[#2074](https://github.com/adap/flower/pull/2074), "
"[#2082](https://github.com/adap/flower/pull/2082), "
"[#2084](https://github.com/adap/flower/pull/2084), "
"[#2093](https://github.com/adap/flower/pull/2093), "
"[#2109](https://github.com/adap/flower/pull/2109), "
"[#2095](https://github.com/adap/flower/pull/2095), "
"[#2140](https://github.com/adap/flower/pull/2140), "
"[#2137](https://github.com/adap/flower/pull/2137), "
"[#2165](https://github.com/adap/flower/pull/2165))"
msgstr ""
"**Améliorer l'API (expérimentale) du pilote** "
"([#1663](https://github.com/adap/flower/pull/1663), "
"[#1666](https://github.com/adap/flower/pull/1666), "
"[#1667](https://github.com/adap/flower/pull/1667), "
"[#1664](https://github.com/adap/flower/pull/1664), "
"[#1675](https://github.com/adap/flower/pull/1675), "
"[#1676](https://github.com/adap/flower/pull/1676), "
"[#1693](https://github.com/adap/flower/pull/1693), "
"[#1662](https://github.com/adap/flower/pull/1662), "
"[#1794](https://github.com/adap/flower/pull/1794))"

#: ../../source/ref-changelog.md:827
msgid ""
"A new testing infrastructure ensures that new changes stay compatible "
"with existing framework integrations or strategies."
msgstr ""

#: ../../source/ref-changelog.md:829
#, fuzzy
msgid "**Deprecate Python 3.7**"
msgstr "**Créer le PR**"

#: ../../source/ref-changelog.md:831
msgid ""
"Since Python 3.7 reached its end of life (EOL) on 2023-06-27, support for"
" Python 3.7 is now deprecated and will be removed in an upcoming release."
msgstr ""

#: ../../source/ref-changelog.md:833
#, fuzzy
msgid ""
"**Add new** `FedTrimmedAvg` **strategy** "
"([#1769](https://github.com/adap/flower/pull/1769), "
"[#1853](https://github.com/adap/flower/pull/1853))"
msgstr ""
"**Ajouter un nouvel exemple de Federated Analytics avec Pandas** "
"([#1469](https://github.com/adap/flower/pull/1469), "
"[#1535](https://github.com/adap/flower/pull/1535))"

#: ../../source/ref-changelog.md:835
#, fuzzy
msgid ""
"The new `FedTrimmedAvg` strategy implements Trimmed Mean by [Dong Yin, "
"2018](https://arxiv.org/abs/1803.01498)."
msgstr ""
"La nouvelle stratégie `FedMedian` met en œuvre Federated Median "
"(FedMedian) par [Yin et al., 2018] "
"(https://arxiv.org/pdf/1803.01498v1.pdf)."

#: ../../source/ref-changelog.md:837
#, fuzzy
msgid ""
"**Introduce start_driver** "
"([#1697](https://github.com/adap/flower/pull/1697))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:839
msgid ""
"In addition to `start_server` and using the raw Driver API, there is a "
"new `start_driver` function that allows for running `start_server` "
"scripts as a Flower driver with only a single-line code change. Check out"
" the `mt-pytorch` code example to see a working example using "
"`start_driver`."
msgstr ""

#: ../../source/ref-changelog.md:841
#, fuzzy
msgid ""
"**Add parameter aggregation to** `mt-pytorch` **code example** "
"([#1785](https://github.com/adap/flower/pull/1785))"
msgstr ""
"**Nouvel exemple de code PyTorch avancé** "
"([#1007](https://github.com/adap/flower/pull/1007))"

#: ../../source/ref-changelog.md:843
msgid ""
"The `mt-pytorch` example shows how to aggregate parameters when writing a"
" driver script. The included `driver.py` and `server.py` have been "
"aligned to demonstrate both the low-level way and the high-level way of "
"building server-side logic."
msgstr ""

#: ../../source/ref-changelog.md:845
#, fuzzy
msgid ""
"**Migrate experimental REST API to Starlette** "
"([2171](https://github.com/adap/flower/pull/2171))"
msgstr ""
"**Nouvelle stratégie expérimentale TensorBoard** "
"([#789](https://github.com/adap/flower/pull/789))"

#: ../../source/ref-changelog.md:847
msgid ""
"The (experimental) REST API used to be implemented in "
"[FastAPI](https://fastapi.tiangolo.com/), but it has now been migrated to"
" use [Starlette](https://www.starlette.io/) directly."
msgstr ""

#: ../../source/ref-changelog.md:849
#, fuzzy
msgid ""
"Please note: The REST request-response API is still experimental and will"
" likely change significantly over time."
msgstr ""
"Remarque : l'API REST est encore expérimentale et est susceptible de "
"changer de manière significative au fil du temps."

#: ../../source/ref-changelog.md:851
#, fuzzy
msgid ""
"**Introduce experimental gRPC request-response API** "
"([#1867](https://github.com/adap/flower/pull/1867), "
"[#1901](https://github.com/adap/flower/pull/1901))"
msgstr ""
"**Introduire les enveloppes de confidentialité différentielle (aperçu)** "
"([#1357](https://github.com/adap/flower/pull/1357), "
"[#1460](https://github.com/adap/flower/pull/1460))"

#: ../../source/ref-changelog.md:853
msgid ""
"In addition to the existing gRPC API (based on bidirectional streaming) "
"and the experimental REST API, there is now a new gRPC API that uses a "
"request-response model to communicate with client nodes."
msgstr ""

#: ../../source/ref-changelog.md:855
#, fuzzy
msgid ""
"Please note: The gRPC request-response API is still experimental and will"
" likely change significantly over time."
msgstr ""
"Remarque : l'API REST est encore expérimentale et est susceptible de "
"changer de manière significative au fil du temps."

#: ../../source/ref-changelog.md:857
#, fuzzy
msgid ""
"**Replace the experimental** `start_client(rest=True)` **with the new** "
"`start_client(transport=\"rest\")` "
"([#1880](https://github.com/adap/flower/pull/1880))"
msgstr ""
"**Initialise** `start_simulation` **avec une liste d'ID de clients** "
"([#860](https://github.com/adap/flower/pull/860))"

#: ../../source/ref-changelog.md:859
msgid ""
"The (experimental) `start_client` argument `rest` was deprecated in "
"favour of a new argument `transport`. `start_client(transport=\"rest\")` "
"will yield the same behaviour as `start_client(rest=True)` did before. "
"All code should migrate to the new argument `transport`. The deprecated "
"argument `rest` will be removed in a future release."
msgstr ""

#: ../../source/ref-changelog.md:861
#, fuzzy
msgid ""
"**Add a new gRPC option** "
"([#2197](https://github.com/adap/flower/pull/2197))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:863
msgid ""
"We now start a gRPC server with the `grpc.keepalive_permit_without_calls`"
" option set to 0 by default. This prevents the clients from sending "
"keepalive pings when there is no outstanding stream."
msgstr ""

#: ../../source/ref-changelog.md:865
#, fuzzy
msgid ""
"**Improve example notebooks** "
"([#2005](https://github.com/adap/flower/pull/2005))"
msgstr ""
"**Supprimer les stratégies expérimentales** "
"([#1280](https://github.com/adap/flower/pull/1280))"

#: ../../source/ref-changelog.md:867
#, fuzzy
msgid "There's a new 30min Federated Learning PyTorch tutorial!"
msgstr "Bienvenue au tutoriel sur l'apprentissage fédéré de la fleur !"

#: ../../source/ref-changelog.md:869
msgid ""
"**Example updates** ([#1772](https://github.com/adap/flower/pull/1772), "
"[#1873](https://github.com/adap/flower/pull/1873), "
"[#1981](https://github.com/adap/flower/pull/1981), "
"[#1988](https://github.com/adap/flower/pull/1988), "
"[#1984](https://github.com/adap/flower/pull/1984), "
"[#1982](https://github.com/adap/flower/pull/1982), "
"[#2112](https://github.com/adap/flower/pull/2112), "
"[#2144](https://github.com/adap/flower/pull/2144), "
"[#2174](https://github.com/adap/flower/pull/2174), "
"[#2225](https://github.com/adap/flower/pull/2225), "
"[#2183](https://github.com/adap/flower/pull/2183))"
msgstr ""

#: ../../source/ref-changelog.md:871
msgid ""
"Many examples have received significant updates, including simplified "
"advanced-tensorflow and advanced-pytorch examples, improved macOS "
"compatibility of TensorFlow examples, and code examples for simulation. A"
" major upgrade is that all code examples now have a `requirements.txt` "
"(in addition to `pyproject.toml`)."
msgstr ""

#: ../../source/ref-changelog.md:873
#, fuzzy
msgid ""
"**General improvements** "
"([#1872](https://github.com/adap/flower/pull/1872), "
"[#1866](https://github.com/adap/flower/pull/1866), "
"[#1884](https://github.com/adap/flower/pull/1884), "
"[#1837](https://github.com/adap/flower/pull/1837), "
"[#1477](https://github.com/adap/flower/pull/1477), "
"[#2171](https://github.com/adap/flower/pull/2171))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:881
msgid "v1.4.0 (2023-04-21)"
msgstr "v1.4.0 (2023-04-21)"

#: ../../source/ref-changelog.md:887
msgid ""
"`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, "
"`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, "
"`Iacob-Alexandru-Andrei`, `JDRanpariya`, `Jean Charle Yaacoub`, `Kunal "
"Sarkhel`, `L. Jiang`, `Lennart Behme`, `Max Kapsecker`, `Michał`, `Nic "
"Lane`, `Nikolaos Episkopos`, `Ragy`, `Saurav Maheshkar`, `Semo Yang`, "
"`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`"
msgstr ""
"`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, "
"`Chenyang Ma (Danny)`, `Daniel J. Beutel`, `Edoardo`, `Gautam Jajoo`, "
"`Iacob-Alexandru-Andrei`, `JDRanpariya`, `Jean Charle Yaacoub`, `Kunal "
"Sarkhel`, `L. Jiang`, `Lennart Behme`, `Max Kapsecker`, `Michał`, `Nic "
"Lane`, `Nikolaos Episkopos`, `Ragy`, `Saurav Maheshkar`, `Semo Yang`, "
"`Steve Laskaridis`, `Steven Hé (Sīchàng)`, `Taner Topal`"

#: ../../source/ref-changelog.md:891
msgid ""
"**Introduce support for XGBoost (**`FedXgbNnAvg` **strategy and "
"example)** ([#1694](https://github.com/adap/flower/pull/1694), "
"[#1709](https://github.com/adap/flower/pull/1709), "
"[#1715](https://github.com/adap/flower/pull/1715), "
"[#1717](https://github.com/adap/flower/pull/1717), "
"[#1763](https://github.com/adap/flower/pull/1763), "
"[#1795](https://github.com/adap/flower/pull/1795))"
msgstr ""
"**Introduire la prise en charge de XGBoost (**`FedXgbNnAvg` **stratégie "
"et exemple)** ([#1694](https://github.com/adap/flower/pull/1694), "
"[#1709](https://github.com/adap/flower/pull/1709), "
"[#1715](https://github.com/adap/flower/pull/1715), "
"[#1717](https://github.com/adap/flower/pull/1717), "
"[#1763](https://github.com/adap/flower/pull/1763), "
"[#1795](https://github.com/adap/flower/pull/1795))"

#: ../../source/ref-changelog.md:893
msgid ""
"XGBoost is a tree-based ensemble machine learning algorithm that uses "
"gradient boosting to improve model accuracy. We added a new `FedXgbNnAvg`"
" "
"[strategy](https://github.com/adap/flower/tree/main/src/py/flwr/server/strategy/fedxgb_nn_avg.py),"
" and a [code example](https://github.com/adap/flower/tree/main/examples"
"/xgboost-quickstart) that demonstrates the usage of this new strategy in "
"an XGBoost project."
msgstr ""
"Nous avons ajouté une nouvelle [stratégie] `FedXgbNnAvg` "
"(https://github.com/adap/flower/tree/main/src/py/flwr/server/strategy/fedxgb_nn_avg.py),"
" et un [exemple de code] "
"(https://github.com/adap/flower/tree/main/examples/xgboost-quickstart) "
"qui démontre l'utilisation de cette nouvelle stratégie dans un projet "
"XGBoost."

#: ../../source/ref-changelog.md:895
msgid ""
"**Introduce iOS SDK (preview)** "
"([#1621](https://github.com/adap/flower/pull/1621), "
"[#1764](https://github.com/adap/flower/pull/1764))"
msgstr ""
"**Introduction du SDK iOS (aperçu)** "
"([#1621](https://github.com/adap/flower/pull/1621), "
"[#1764](https://github.com/adap/flower/pull/1764))"

#: ../../source/ref-changelog.md:897
msgid ""
"This is a major update for anyone wanting to implement Federated Learning"
" on iOS mobile devices. We now have a swift iOS SDK present under "
"[src/swift/flwr](https://github.com/adap/flower/tree/main/src/swift/flwr)"
" that will facilitate greatly the app creating process. To showcase its "
"use, the [iOS "
"example](https://github.com/adap/flower/tree/main/examples/ios) has also "
"been updated!"
msgstr ""
"Il s'agit d'une mise à jour majeure pour tous ceux qui souhaitent mettre "
"en œuvre l'apprentissage fédéré sur les appareils mobiles iOS. Nous "
"disposons désormais d'un SDK swift iOS présent sous "
"[src/swift/flwr](https://github.com/adap/flower/tree/main/src/swift/flwr)"
" qui facilitera grandement le processus de création d'applications. Pour "
"présenter son utilisation, l'[exemple "
"iOS](https://github.com/adap/flower/tree/main/examples/ios) a également "
"été mis à jour !"

#: ../../source/ref-changelog.md:899
msgid ""
"**Introduce new \"What is Federated Learning?\" tutorial** "
"([#1657](https://github.com/adap/flower/pull/1657), "
"[#1721](https://github.com/adap/flower/pull/1721))"
msgstr ""
"**Introduire un nouveau tutoriel \"Qu'est-ce que l'apprentissage fédéré ?"
" \"** ([#1657](https://github.com/adap/flower/pull/1657), "
"[#1721](https://github.com/adap/flower/pull/1721))"

#: ../../source/ref-changelog.md:901
#, fuzzy
msgid ""
"A new [entry-level tutorial](https://flower.ai/docs/framework/tutorial-"
"what-is-federated-learning.html) in our documentation explains the basics"
" of Fedetated Learning. It enables anyone who's unfamiliar with Federated"
" Learning to start their journey with Flower. Forward it to anyone who's "
"interested in Federated Learning!"
msgstr ""
"Un nouveau [tutoriel d'entrée de gamme] "
"(https://flower.ai/docs/tutorial/Flower-0-What-is-FL.html) dans notre "
"documentation explique les bases de l'apprentissage fédéré. Il permet à "
"tous ceux qui ne connaissent pas l'apprentissage fédéré de commencer leur"
" voyage avec Flower. Fais-le suivre à tous ceux qui s'intéressent à "
"l'apprentissage fédéré !"

#: ../../source/ref-changelog.md:903
msgid ""
"**Introduce new Flower Baseline: FedProx MNIST** "
"([#1513](https://github.com/adap/flower/pull/1513), "
"[#1680](https://github.com/adap/flower/pull/1680), "
"[#1681](https://github.com/adap/flower/pull/1681), "
"[#1679](https://github.com/adap/flower/pull/1679))"
msgstr ""
"**Introduire une nouvelle fleur Référence : FedProx MNIST** "
"([#1513](https://github.com/adap/flower/pull/1513), "
"[#1680](https://github.com/adap/flower/pull/1680), "
"[#1681](https://github.com/adap/flower/pull/1681), "
"[#1679](https://github.com/adap/flower/pull/1679))"

#: ../../source/ref-changelog.md:905
msgid ""
"This new baseline replicates the MNIST+CNN task from the paper [Federated"
" Optimization in Heterogeneous Networks (Li et al., "
"2018)](https://arxiv.org/abs/1812.06127). It uses the `FedProx` strategy,"
" which aims at making convergence more robust in heterogeneous settings."
msgstr ""
"Cette nouvelle ligne de base reproduit la tâche MNIST+CNN de l'article "
"[Federated Optimization in Heterogeneous Networks (Li et al., 2018)] "
"(https://arxiv.org/abs/1812.06127). Elle utilise la stratégie `FedProx`, "
"qui vise à rendre la convergence plus robuste dans des contextes "
"hétérogènes."

#: ../../source/ref-changelog.md:907
msgid ""
"**Introduce new Flower Baseline: FedAvg FEMNIST** "
"([#1655](https://github.com/adap/flower/pull/1655))"
msgstr ""
"**Introduire une nouvelle ligne de base pour les fleurs : FedAvg "
"FEMNIST** ([#1655](https://github.com/adap/flower/pull/1655))"

#: ../../source/ref-changelog.md:909
msgid ""
"This new baseline replicates an experiment evaluating the performance of "
"the FedAvg algorithm on the FEMNIST dataset from the paper [LEAF: A "
"Benchmark for Federated Settings (Caldas et al., "
"2018)](https://arxiv.org/abs/1812.01097)."
msgstr ""
"Cette nouvelle ligne de base reproduit une expérience évaluant les "
"performances de l'algorithme FedAvg sur le jeu de données FEMNIST tiré de"
" l'article [LEAF : A Benchmark for Federated Settings (Caldas et al., "
"2018)] (https://arxiv.org/abs/1812.01097)."

#: ../../source/ref-changelog.md:911
msgid ""
"**Introduce (experimental) REST API** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"
msgstr ""
"**Introduire l'API REST (expérimentale)** "
"([#1594](https://github.com/adap/flower/pull/1594), "
"[#1690](https://github.com/adap/flower/pull/1690), "
"[#1695](https://github.com/adap/flower/pull/1695), "
"[#1712](https://github.com/adap/flower/pull/1712), "
"[#1802](https://github.com/adap/flower/pull/1802), "
"[#1770](https://github.com/adap/flower/pull/1770), "
"[#1733](https://github.com/adap/flower/pull/1733))"

#: ../../source/ref-changelog.md:913
msgid ""
"A new REST API has been introduced as an alternative to the gRPC-based "
"communication stack. In this initial version, the REST API only supports "
"anonymous clients."
msgstr ""
"Une nouvelle API REST a été introduite comme alternative à la pile de "
"communication basée sur gRPC. Dans cette version initiale, l'API REST ne "
"prend en charge que les clients anonymes."

#: ../../source/ref-changelog.md:915
msgid ""
"Please note: The REST API is still experimental and will likely change "
"significantly over time."
msgstr ""
"Remarque : l'API REST est encore expérimentale et est susceptible de "
"changer de manière significative au fil du temps."

#: ../../source/ref-changelog.md:917
msgid ""
"**Improve the (experimental) Driver API** "
"([#1663](https://github.com/adap/flower/pull/1663), "
"[#1666](https://github.com/adap/flower/pull/1666), "
"[#1667](https://github.com/adap/flower/pull/1667), "
"[#1664](https://github.com/adap/flower/pull/1664), "
"[#1675](https://github.com/adap/flower/pull/1675), "
"[#1676](https://github.com/adap/flower/pull/1676), "
"[#1693](https://github.com/adap/flower/pull/1693), "
"[#1662](https://github.com/adap/flower/pull/1662), "
"[#1794](https://github.com/adap/flower/pull/1794))"
msgstr ""
"**Améliorer l'API (expérimentale) du pilote** "
"([#1663](https://github.com/adap/flower/pull/1663), "
"[#1666](https://github.com/adap/flower/pull/1666), "
"[#1667](https://github.com/adap/flower/pull/1667), "
"[#1664](https://github.com/adap/flower/pull/1664), "
"[#1675](https://github.com/adap/flower/pull/1675), "
"[#1676](https://github.com/adap/flower/pull/1676), "
"[#1693](https://github.com/adap/flower/pull/1693), "
"[#1662](https://github.com/adap/flower/pull/1662), "
"[#1794](https://github.com/adap/flower/pull/1794))"

#: ../../source/ref-changelog.md:919
msgid ""
"The Driver API is still an experimental feature, but this release "
"introduces some major upgrades. One of the main improvements is the "
"introduction of an SQLite database to store server state on disk (instead"
" of in-memory). Another improvement is that tasks (instructions or "
"results) that have been delivered will now be deleted. This greatly "
"improves the memory efficiency of a long-running Flower server."
msgstr ""
"L'API du pilote est encore une fonction expérimentale, mais cette version"
" introduit quelques améliorations majeures. L'une des principales "
"améliorations est l'introduction d'une base de données SQLite pour "
"stocker l'état du serveur sur le disque (au lieu de la mémoire). Une "
"autre amélioration est que les tâches (instructions ou résultats) qui ont"
" été livrées seront désormais supprimées, ce qui améliore "
"considérablement l'efficacité de la mémoire d'un serveur Flower "
"fonctionnant depuis longtemps."

#: ../../source/ref-changelog.md:921
msgid ""
"**Fix spilling issues related to Ray during simulations** "
"([#1698](https://github.com/adap/flower/pull/1698))"
msgstr ""
"**Répare les problèmes de déversement liés à Ray pendant les "
"simulations** ([#1698](https://github.com/adap/flower/pull/1698))"

#: ../../source/ref-changelog.md:923
#, fuzzy
msgid ""
"While running long simulations, `ray` was sometimes spilling huge amounts"
" of data that would make the training unable to continue. This is now "
"fixed! 🎉"
msgstr ""
"Lors de l'exécution de longues simulations, `ray` déversait parfois "
"d'énormes quantités de données qui rendaient l'entraînement incapable de "
"continuer. ce problème est maintenant corrigé ! 🎉"

#: ../../source/ref-changelog.md:925
msgid ""
"**Add new example using** `TabNet` **and Flower** "
"([#1725](https://github.com/adap/flower/pull/1725))"
msgstr ""
"**Ajouter un nouvel exemple utilisant** `TabNet` **et Flower** "
"([#1725](https://github.com/adap/flower/pull/1725))"

#: ../../source/ref-changelog.md:927
msgid ""
"TabNet is a powerful and flexible framework for training machine learning"
" models on tabular data. We now have a federated example using Flower: "
"[quickstart-tabnet](https://github.com/adap/flower/tree/main/examples"
"/quickstart-tabnet)."
msgstr ""
"TabNet est un cadre puissant et flexible pour former des modèles "
"d'apprentissage automatique sur des données tabulaires. Nous avons "
"maintenant un exemple fédéré utilisant Flower : [quickstart-"
"tabnet](https://github.com/adap/flower/tree/main/examples/quickstart-"
"tabnet)."

#: ../../source/ref-changelog.md:929
msgid ""
"**Add new how-to guide for monitoring simulations** "
"([#1649](https://github.com/adap/flower/pull/1649))"
msgstr ""
"**Ajouter un nouveau guide pratique pour le suivi des simulations** "
"([#1649](https://github.com/adap/flower/pull/1649))"

#: ../../source/ref-changelog.md:931
msgid ""
"We now have a documentation guide to help users monitor their performance"
" during simulations."
msgstr ""
"Nous avons maintenant un guide de documentation pour aider les "
"utilisateurs à surveiller leurs performances pendant les simulations."

#: ../../source/ref-changelog.md:933
msgid ""
"**Add training metrics to** `History` **object during simulations** "
"([#1696](https://github.com/adap/flower/pull/1696))"
msgstr ""
"**Ajouter des mesures de formation à** `History` **objet pendant les "
"simulations** ([#1696](https://github.com/adap/flower/pull/1696))"

#: ../../source/ref-changelog.md:935
msgid ""
"The `fit_metrics_aggregation_fn` can be used to aggregate training "
"metrics, but previous releases did not save the results in the `History` "
"object. This is now the case!"
msgstr ""
"La fonction `fit_metrics_aggregation_fn` peut être utilisée pour agréger "
"les mesures d'entraînement, mais les versions précédentes "
"n'enregistraient pas les résultats dans l'objet `History`. c'est "
"désormais le cas !"

#: ../../source/ref-changelog.md:937
msgid ""
"**General improvements** "
"([#1659](https://github.com/adap/flower/pull/1659), "
"[#1646](https://github.com/adap/flower/pull/1646), "
"[#1647](https://github.com/adap/flower/pull/1647), "
"[#1471](https://github.com/adap/flower/pull/1471), "
"[#1648](https://github.com/adap/flower/pull/1648), "
"[#1651](https://github.com/adap/flower/pull/1651), "
"[#1652](https://github.com/adap/flower/pull/1652), "
"[#1653](https://github.com/adap/flower/pull/1653), "
"[#1659](https://github.com/adap/flower/pull/1659), "
"[#1665](https://github.com/adap/flower/pull/1665), "
"[#1670](https://github.com/adap/flower/pull/1670), "
"[#1672](https://github.com/adap/flower/pull/1672), "
"[#1677](https://github.com/adap/flower/pull/1677), "
"[#1684](https://github.com/adap/flower/pull/1684), "
"[#1683](https://github.com/adap/flower/pull/1683), "
"[#1686](https://github.com/adap/flower/pull/1686), "
"[#1682](https://github.com/adap/flower/pull/1682), "
"[#1685](https://github.com/adap/flower/pull/1685), "
"[#1692](https://github.com/adap/flower/pull/1692), "
"[#1705](https://github.com/adap/flower/pull/1705), "
"[#1708](https://github.com/adap/flower/pull/1708), "
"[#1711](https://github.com/adap/flower/pull/1711), "
"[#1713](https://github.com/adap/flower/pull/1713), "
"[#1714](https://github.com/adap/flower/pull/1714), "
"[#1718](https://github.com/adap/flower/pull/1718), "
"[#1716](https://github.com/adap/flower/pull/1716), "
"[#1723](https://github.com/adap/flower/pull/1723), "
"[#1735](https://github.com/adap/flower/pull/1735), "
"[#1678](https://github.com/adap/flower/pull/1678), "
"[#1750](https://github.com/adap/flower/pull/1750), "
"[#1753](https://github.com/adap/flower/pull/1753), "
"[#1736](https://github.com/adap/flower/pull/1736), "
"[#1766](https://github.com/adap/flower/pull/1766), "
"[#1760](https://github.com/adap/flower/pull/1760), "
"[#1775](https://github.com/adap/flower/pull/1775), "
"[#1776](https://github.com/adap/flower/pull/1776), "
"[#1777](https://github.com/adap/flower/pull/1777), "
"[#1779](https://github.com/adap/flower/pull/1779), "
"[#1784](https://github.com/adap/flower/pull/1784), "
"[#1773](https://github.com/adap/flower/pull/1773), "
"[#1755](https://github.com/adap/flower/pull/1755), "
"[#1789](https://github.com/adap/flower/pull/1789), "
"[#1788](https://github.com/adap/flower/pull/1788), "
"[#1798](https://github.com/adap/flower/pull/1798), "
"[#1799](https://github.com/adap/flower/pull/1799), "
"[#1739](https://github.com/adap/flower/pull/1739), "
"[#1800](https://github.com/adap/flower/pull/1800), "
"[#1804](https://github.com/adap/flower/pull/1804), "
"[#1805](https://github.com/adap/flower/pull/1805))"
msgstr ""
"**General improvements** "
"([#1659](https://github.com/adap/flower/pull/1659), "
"[#1646](https://github.com/adap/flower/pull/1646), "
"[#1647](https://github.com/adap/flower/pull/1647), "
"[#1471](https://github.com/adap/flower/pull/1471), "
"[#1648](https://github.com/adap/flower/pull/1648), "
"[#1651](https://github.com/adap/flower/pull/1651), "
"[#1652](https://github.com/adap/flower/pull/1652), "
"[#1653](https://github.com/adap/flower/pull/1653), "
"[#1659](https://github.com/adap/flower/pull/1659), "
"[#1665](https://github.com/adap/flower/pull/1665), "
"[#1670](https://github.com/adap/flower/pull/1670), "
"[#1672](https://github.com/adap/flower/pull/1672), "
"[#1677](https://github.com/adap/flower/pull/1677), "
"[#1684](https://github.com/adap/flower/pull/1684), "
"[#1683](https://github.com/adap/flower/pull/1683), "
"[#1686](https://github.com/adap/flower/pull/1686), "
"[#1682](https://github.com/adap/flower/pull/1682), "
"[#1685](https://github.com/adap/flower/pull/1685), "
"[#1692](https://github.com/adap/flower/pull/1692), "
"[#1705](https://github.com/ada"

#: ../../source/ref-changelog.md:945
msgid "v1.3.0 (2023-02-06)"
msgstr "v1.3.0 (2023-02-06)"

#: ../../source/ref-changelog.md:951
msgid ""
"`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, "
"`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`"
msgstr ""
"`Adam Narozniak`, `Alexander Viala Bellander`, `Charles Beauville`, "
"`Daniel J. Beutel`, `JDRanpariya`, `Lennart Behme`, `Taner Topal`"

#: ../../source/ref-changelog.md:955
msgid ""
"**Add support for** `workload_id` **and** `group_id` **in Driver API** "
"([#1595](https://github.com/adap/flower/pull/1595))"
msgstr ""
"**Ajouter la prise en charge de** `workload_id` **et** `group_id` **dans "
"l'API du pilote** ([#1595](https://github.com/adap/flower/pull/1595))"

#: ../../source/ref-changelog.md:957
msgid ""
"The (experimental) Driver API now supports a `workload_id` that can be "
"used to identify which workload a task belongs to. It also supports a new"
" `group_id` that can be used, for example, to indicate the current "
"training round. Both the `workload_id` and `group_id` enable client nodes"
" to decide whether they want to handle a task or not."
msgstr ""
"L'API (expérimentale) Driver prend désormais en charge un `workload_id` "
"qui peut être utilisé pour identifier la charge de travail à laquelle une"
" tâche appartient. Elle prend également en charge un nouveau `group_id` "
"qui peut être utilisé, par exemple, pour indiquer le cycle de formation "
"en cours. Le `workload_id` et le `group_id` permettent tous deux aux "
"nœuds clients de décider s'ils veulent traiter une tâche ou non."

#: ../../source/ref-changelog.md:959
msgid ""
"**Make Driver API and Fleet API address configurable** "
"([#1637](https://github.com/adap/flower/pull/1637))"
msgstr ""
"**Faire en sorte que l'adresse de l'API du conducteur et de l'API de la "
"flotte soit configurable** "
"([#1637](https://github.com/adap/flower/pull/1637))"

#: ../../source/ref-changelog.md:961
msgid ""
"The (experimental) long-running Flower server (Driver API and Fleet API) "
"can now configure the server address of both Driver API (via `--driver-"
"api-address`) and Fleet API (via `--fleet-api-address`) when starting:"
msgstr ""
"Le serveur Flower (expérimental) de longue durée (Driver API et Fleet "
"API) peut maintenant configurer l'adresse du serveur de Driver API (via "
"`--driver-api-address`) et de Fleet API (via `--fleet-api-address`) lors "
"de son démarrage :"

#: ../../source/ref-changelog.md:963
#, fuzzy
msgid ""
"`flower-server --driver-api-address \"0.0.0.0:8081\" --fleet-api-address "
"\"0.0.0.0:8086\"`"
msgstr ""
"``flower-superlink --driver-api-address \"0.0.0.0:8081\" --fleet-api-"
"address \"0.0.0.0:8086\" ``"

#: ../../source/ref-changelog.md:965
msgid "Both IPv4 and IPv6 addresses are supported."
msgstr "Les adresses IPv4 et IPv6 sont toutes deux prises en charge."

#: ../../source/ref-changelog.md:967
msgid ""
"**Add new example of Federated Learning using fastai and Flower** "
"([#1598](https://github.com/adap/flower/pull/1598))"
msgstr ""
"**Ajouter un nouvel exemple d'apprentissage fédéré utilisant fastai et "
"Flower** ([#1598](https://github.com/adap/flower/pull/1598))"

#: ../../source/ref-changelog.md:969
msgid ""
"A new code example (`quickstart-fastai`) demonstrates federated learning "
"with [fastai](https://www.fast.ai/) and Flower. You can find it here: "
"[quickstart-fastai](https://github.com/adap/flower/tree/main/examples"
"/quickstart-fastai)."
msgstr ""
"Un nouvel exemple de code (`quickstart-fastai`) démontre l'apprentissage "
"fédéré avec [fastai](https://www.fast.ai/) et Flower. Tu peux le trouver "
"ici : [quickstart-"
"fastai](https://github.com/adap/flower/tree/main/examples/quickstart-"
"fastai)."

#: ../../source/ref-changelog.md:971
msgid ""
"**Make Android example compatible with** `flwr >= 1.0.0` **and the latest"
" versions of Android** "
"([#1603](https://github.com/adap/flower/pull/1603))"
msgstr ""
"**Rendre l'exemple Android compatible avec** `flwr >= 1.0.0` **et les "
"dernières versions d'Android** "
"([#1603](https://github.com/adap/flower/pull/1603))"

#: ../../source/ref-changelog.md:973
#, fuzzy
msgid ""
"The Android code example has received a substantial update: the project "
"is compatible with Flower 1.0 (and later), the UI received a full "
"refresh, and the project is updated to be compatible with newer Android "
"tooling."
msgstr ""
"L'exemple de code Android a reçu une mise à jour substantielle : le "
"projet est compatible avec Flower 1.0 et les versions ultérieures, "
"l'interface utilisateur a reçu un rafraîchissement complet, et le projet "
"est mis à jour pour être compatible avec les outils Android les plus "
"récents."

#: ../../source/ref-changelog.md:975
msgid ""
"**Add new `FedProx` strategy** "
"([#1619](https://github.com/adap/flower/pull/1619))"
msgstr ""
"**Ajouter une nouvelle stratégie `FedProx`** "
"([#1619](https://github.com/adap/flower/pull/1619))"

#: ../../source/ref-changelog.md:977
msgid ""
"This "
"[strategy](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)"
" is almost identical to "
"[`FedAvg`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedavg.py),"
" but helps users replicate what is described in this "
"[paper](https://arxiv.org/abs/1812.06127). It essentially adds a "
"parameter called `proximal_mu` to regularize the local models with "
"respect to the global models."
msgstr ""
"Cette "
"[stratégie](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedprox.py)"
" est presque identique à "
"[`FedAvg`](https://github.com/adap/flower/blob/main/src/py/flwr/server/strategy/fedavg.py),"
" mais aide les utilisateurs à reproduire ce qui est décrit dans cet "
"[article](https://arxiv.org/abs/1812.06127). Elle ajoute essentiellement "
"un paramètre appelé `proximal_mu` pour régulariser les modèles locaux par"
" rapport aux modèles globaux."

#: ../../source/ref-changelog.md:979
msgid ""
"**Add new metrics to telemetry events** "
"([#1640](https://github.com/adap/flower/pull/1640))"
msgstr ""
"**Ajouter de nouvelles métriques aux événements de télémétrie** "
"([#1640](https://github.com/adap/flower/pull/1640))"

#: ../../source/ref-changelog.md:981
msgid ""
"An updated event structure allows, for example, the clustering of events "
"within the same workload."
msgstr ""
"Une structure d'événements mise à jour permet, par exemple, de regrouper "
"des événements au sein d'une même charge de travail."

#: ../../source/ref-changelog.md:983
msgid ""
"**Add new custom strategy tutorial section** "
"[#1623](https://github.com/adap/flower/pull/1623)"
msgstr ""
"**Ajouter une nouvelle section de tutoriel sur les stratégies "
"personnalisées** [#1623](https://github.com/adap/flower/pull/1623)"

#: ../../source/ref-changelog.md:985
#, fuzzy
msgid ""
"The Flower tutorial now has a new section that covers implementing a "
"custom strategy from scratch: [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source"
"/tutorial-build-a-strategy-from-scratch-pytorch.ipynb)"
msgstr ""
"Le tutoriel sur les fleurs comporte désormais une nouvelle section qui "
"traite de la mise en œuvre d'une stratégie personnalisée à partir de zéro"
" : [Ouvrir dans "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source/tutorial/Flower-3-Building-a"
"-Strategy-PyTorch.ipynb)"

#: ../../source/ref-changelog.md:987
msgid ""
"**Add new custom serialization tutorial section** "
"([#1622](https://github.com/adap/flower/pull/1622))"
msgstr ""
"**Ajouter une nouvelle section de tutoriel sur la sérialisation "
"personnalisée** ([#1622](https://github.com/adap/flower/pull/1622))"

#: ../../source/ref-changelog.md:989
#, fuzzy
msgid ""
"The Flower tutorial now has a new section that covers custom "
"serialization: [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source"
"/tutorial-customize-the-client-pytorch.ipynb)"
msgstr ""
"Le tutoriel sur les fleurs comporte désormais une nouvelle section qui "
"traite de la sérialisation personnalisée : [Ouvrir dans "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/doc/source/tutorial/Flower-4"
"-Client-and-NumPyClient-PyTorch.ipynb)"

#: ../../source/ref-changelog.md:991
msgid ""
"**General improvements** "
"([#1638](https://github.com/adap/flower/pull/1638), "
"[#1634](https://github.com/adap/flower/pull/1634), "
"[#1636](https://github.com/adap/flower/pull/1636), "
"[#1635](https://github.com/adap/flower/pull/1635), "
"[#1633](https://github.com/adap/flower/pull/1633), "
"[#1632](https://github.com/adap/flower/pull/1632), "
"[#1631](https://github.com/adap/flower/pull/1631), "
"[#1630](https://github.com/adap/flower/pull/1630), "
"[#1627](https://github.com/adap/flower/pull/1627), "
"[#1593](https://github.com/adap/flower/pull/1593), "
"[#1616](https://github.com/adap/flower/pull/1616), "
"[#1615](https://github.com/adap/flower/pull/1615), "
"[#1607](https://github.com/adap/flower/pull/1607), "
"[#1609](https://github.com/adap/flower/pull/1609), "
"[#1608](https://github.com/adap/flower/pull/1608), "
"[#1603](https://github.com/adap/flower/pull/1603), "
"[#1590](https://github.com/adap/flower/pull/1590), "
"[#1580](https://github.com/adap/flower/pull/1580), "
"[#1599](https://github.com/adap/flower/pull/1599), "
"[#1600](https://github.com/adap/flower/pull/1600), "
"[#1601](https://github.com/adap/flower/pull/1601), "
"[#1597](https://github.com/adap/flower/pull/1597), "
"[#1595](https://github.com/adap/flower/pull/1595), "
"[#1591](https://github.com/adap/flower/pull/1591), "
"[#1588](https://github.com/adap/flower/pull/1588), "
"[#1589](https://github.com/adap/flower/pull/1589), "
"[#1587](https://github.com/adap/flower/pull/1587), "
"[#1573](https://github.com/adap/flower/pull/1573), "
"[#1581](https://github.com/adap/flower/pull/1581), "
"[#1578](https://github.com/adap/flower/pull/1578), "
"[#1574](https://github.com/adap/flower/pull/1574), "
"[#1572](https://github.com/adap/flower/pull/1572), "
"[#1586](https://github.com/adap/flower/pull/1586))"
msgstr ""
"**General improvements** "
"([#1638](https://github.com/adap/flower/pull/1638), "
"[#1634](https://github.com/adap/flower/pull/1634), "
"[#1636](https://github.com/adap/flower/pull/1636), "
"[#1635](https://github.com/adap/flower/pull/1635), "
"[#1633](https://github.com/adap/flower/pull/1633), "
"[#1632](https://github.com/adap/flower/pull/1632), "
"[#1631](https://github.com/adap/flower/pull/1631), "
"[#1630](https://github.com/adap/flower/pull/1630), "
"[#1627](https://github.com/adap/flower/pull/1627), "
"[#1593](https://github.com/adap/flower/pull/1593), "
"[#1616](https://github.com/adap/flower/pull/1616), "
"[#1615](https://github.com/adap/flower/pull/1615), "
"[#1607](https://github.com/adap/flower/pull/1607), "
"[#1609](https://github.com/adap/flower/pull/1609), "
"[#1608](https://github.com/adap/flower/pull/1608), "
"[#1603](https://github.com/adap/flower/pull/1603), "
"[#1590](https://github.com/adap/flower/pull/1590), "
"[#1580](https://github.com/adap/flower/pull/1580), "
"[#1599](https://github.com/adap/flower/pull/1599), "
"[#1600](https://github.com/ada"

#: ../../source/ref-changelog.md:995
msgid ""
"**Updated documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1629](https://github.com/adap/flower/pull/1629), "
"[#1628](https://github.com/adap/flower/pull/1628), "
"[#1620](https://github.com/adap/flower/pull/1620), "
"[#1618](https://github.com/adap/flower/pull/1618), "
"[#1617](https://github.com/adap/flower/pull/1617), "
"[#1613](https://github.com/adap/flower/pull/1613), "
"[#1614](https://github.com/adap/flower/pull/1614))"

#: ../../source/ref-changelog.md:997 ../../source/ref-changelog.md:1064
msgid ""
"As usual, the documentation has improved quite a bit. It is another step "
"in our effort to make the Flower documentation the best documentation of "
"any project. Stay tuned and as always, feel free to provide feedback!"
msgstr ""
"Comme d'habitude, la documentation s'est beaucoup améliorée. C'est une "
"autre étape dans notre effort pour faire de la documentation de Flower la"
" meilleure documentation de tout projet. Reste à l'écoute et comme "
"toujours, n'hésite pas à nous faire part de tes commentaires !"

#: ../../source/ref-changelog.md:1003
msgid "v1.2.0 (2023-01-13)"
msgstr "v1.2.0 (2023-01-13)"

#: ../../source/ref-changelog.md:1009
msgid ""
"`Adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L."
" Jiang`, `Ragy`, `Taner Topal`, `dannymcy`"
msgstr ""
"adam Narozniak`, `Charles Beauville`, `Daniel J. Beutel`, `Edoardo`, `L. "
"Jiang`, `Ragy`, `Taner Topal`, `dannymcy`"

#: ../../source/ref-changelog.md:1013
msgid ""
"**Introduce new Flower Baseline: FedAvg MNIST** "
"([#1497](https://github.com/adap/flower/pull/1497), "
"[#1552](https://github.com/adap/flower/pull/1552))"
msgstr ""
"**Introduire une nouvelle fleur Référence : FedAvg MNIST** "
"([#1497](https://github.com/adap/flower/pull/1497), "
"[#1552](https://github.com/adap/flower/pull/1552))"

#: ../../source/ref-changelog.md:1015
msgid ""
"Over the coming weeks, we will be releasing a number of new reference "
"implementations useful especially to FL newcomers. They will typically "
"revisit well known papers from the literature, and be suitable for "
"integration in your own application or for experimentation, in order to "
"deepen your knowledge of FL in general. Today's release is the first in "
"this series. [Read more.](https://flower.ai/blog/2023-01-12-fl-starter-"
"pack-fedavg-mnist-cnn/)"
msgstr ""
"Au cours des prochaines semaines, nous publierons un certain nombre de "
"nouvelles implémentations de référence utiles en particulier pour les "
"nouveaux venus en FL. Elles revisiteront généralement des articles bien "
"connus de la littérature, et seront adaptées à l'intégration dans votre "
"propre application ou à l'expérimentation, afin d'approfondir votre "
"connaissance de FL en général. La publication d'aujourd'hui est la "
"première de cette série. [Lire la "
"suite.](https://flower.ai/blog/2023-01-12-fl-starter-pack-fedavg-mnist-"
"cnn/)"

#: ../../source/ref-changelog.md:1017
msgid ""
"**Improve GPU support in simulations** "
"([#1555](https://github.com/adap/flower/pull/1555))"
msgstr ""
"**Améliorer la prise en charge des GPU dans les simulations** "
"([#1555](https://github.com/adap/flower/pull/1555))"

#: ../../source/ref-changelog.md:1019
msgid ""
"The Ray-based Virtual Client Engine (`start_simulation`) has been updated"
" to improve GPU support. The update includes some of the hard-earned "
"lessons from scaling simulations in GPU cluster environments. New "
"defaults make running GPU-based simulations substantially more robust."
msgstr ""
"Le moteur client virtuel basé sur Ray (`start_simulation`) a été mis à "
"jour pour améliorer la prise en charge des GPU. La mise à jour inclut "
"certaines des leçons durement apprises lors de la mise à l'échelle des "
"simulations dans des environnements de grappes de GPU. De nouveaux "
"paramètres par défaut rendent l'exécution des simulations basées sur les "
"GPU beaucoup plus robuste."

#: ../../source/ref-changelog.md:1021
msgid ""
"**Improve GPU support in Jupyter Notebook tutorials** "
"([#1527](https://github.com/adap/flower/pull/1527), "
"[#1558](https://github.com/adap/flower/pull/1558))"
msgstr ""
"**Améliorer la prise en charge du GPU dans les tutoriels Jupyter "
"Notebook** ([#1527](https://github.com/adap/flower/pull/1527), "
"[#1558](https://github.com/adap/flower/pull/1558))"

#: ../../source/ref-changelog.md:1023
msgid ""
"Some users reported that Jupyter Notebooks have not always been easy to "
"use on GPU instances. We listened and made improvements to all of our "
"Jupyter notebooks! Check out the updated notebooks here:"
msgstr ""
"Certains utilisateurs ont signalé que les carnets Jupyter n'ont pas "
"toujours été faciles à utiliser sur les instances GPU. Nous les avons "
"écoutés et avons apporté des améliorations à tous nos carnets Jupyter ! "
"Découvre les carnets mis à jour ici :"

#: ../../source/ref-changelog.md:1025
#, fuzzy
msgid ""
"[An Introduction to Federated Learning](https://flower.ai/docs/framework"
"/tutorial-get-started-with-flower-pytorch.html)"
msgstr ""
"[Une introduction à l'apprentissage fédéré] "
"(https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html)"

#: ../../source/ref-changelog.md:1026
#, fuzzy
msgid ""
"[Strategies in Federated Learning](https://flower.ai/docs/framework"
"/tutorial-use-a-federated-learning-strategy-pytorch.html)"
msgstr ""
"[Stratégies d'apprentissage fédéré] "
"(https://flower.ai/docs/tutorial/Flower-2-Strategies-in-FL-PyTorch.html)"

#: ../../source/ref-changelog.md:1027
#, fuzzy
msgid ""
"[Building a Strategy](https://flower.ai/docs/framework/tutorial-build-a"
"-strategy-from-scratch-pytorch.html)"
msgstr ""
"[Construire une stratégie] "
"(https://flower.ai/docs/tutorial/Flower-3-Building-a-Strategy-"
"PyTorch.html)"

#: ../../source/ref-changelog.md:1028
#, fuzzy
msgid ""
"[Client and NumPyClient](https://flower.ai/docs/framework/tutorial-"
"customize-the-client-pytorch.html)"
msgstr ""
"[Client et NumPyClient] (https://flower.ai/docs/tutorial/Flower-4-Client-"
"and-NumPyClient-PyTorch.html)"

#: ../../source/ref-changelog.md:1030
msgid ""
"**Introduce optional telemetry** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"
msgstr ""
"**Introduire la télémétrie optionnelle** "
"([#1533](https://github.com/adap/flower/pull/1533), "
"[#1544](https://github.com/adap/flower/pull/1544), "
"[#1584](https://github.com/adap/flower/pull/1584))"

#: ../../source/ref-changelog.md:1032
msgid ""
"After a [request for "
"feedback](https://github.com/adap/flower/issues/1534) from the community,"
" the Flower open-source project introduces optional collection of "
"*anonymous* usage metrics to make well-informed decisions to improve "
"Flower. Doing this enables the Flower team to understand how Flower is "
"used and what challenges users might face."
msgstr ""
"À la suite d'une [demande de commentaires] "
"(https://github.com/adap/flower/issues/1534) de la part de la communauté,"
" le projet open-source Flower introduit la collecte optionnelle de "
"mesures d'utilisation *anonymes* afin de prendre des décisions éclairées "
"pour améliorer Flower. Cela permet à l'équipe de Flower de comprendre "
"comment Flower est utilisé et quels sont les défis auxquels les "
"utilisateurs peuvent être confrontés."

#: ../../source/ref-changelog.md:1034
#, fuzzy
msgid ""
"**Flower is a friendly framework for collaborative AI and data science.**"
" Staying true to this statement, Flower makes it easy to disable "
"telemetry for users who do not want to share anonymous usage metrics. "
"[Read more.](https://flower.ai/docs/telemetry.html)."
msgstr ""
"**Flower est un cadre convivial pour l'IA collaborative et la science des"
" données.** Restant fidèle à cette déclaration, Flower permet de "
"désactiver facilement la télémétrie pour les utilisateurs qui ne "
"souhaitent pas partager des métriques d'utilisation anonymes.[Lire la "
"suite.](https://flower.ai/docs/telemetry.html)."

#: ../../source/ref-changelog.md:1036
msgid ""
"**Introduce (experimental) Driver API** "
"([#1520](https://github.com/adap/flower/pull/1520), "
"[#1525](https://github.com/adap/flower/pull/1525), "
"[#1545](https://github.com/adap/flower/pull/1545), "
"[#1546](https://github.com/adap/flower/pull/1546), "
"[#1550](https://github.com/adap/flower/pull/1550), "
"[#1551](https://github.com/adap/flower/pull/1551), "
"[#1567](https://github.com/adap/flower/pull/1567))"
msgstr ""
"**([#1520](https://github.com/adap/flower/pull/1520), "
"[#1525](https://github.com/adap/flower/pull/1525), "
"[#1545](https://github.com/adap/flower/pull/1545), "
"[#1546](https://github.com/adap/flower/pull/1546), "
"[#1550](https://github.com/adap/flower/pull/1550), "
"[#1551](https://github.com/adap/flower/pull/1551), "
"[#1567](https://github.com/adap/flower/pull/1567))"

#: ../../source/ref-changelog.md:1038
msgid ""
"Flower now has a new (experimental) Driver API which will enable fully "
"programmable, async, and multi-tenant Federated Learning and Federated "
"Analytics applications. Phew, that's a lot! Going forward, the Driver API"
" will be the abstraction that many upcoming features will be built on - "
"and you can start building those things now, too."
msgstr ""
"Flower dispose désormais d'une nouvelle API de pilote (expérimentale) qui"
" permettra de créer des applications Federated Learning et Federated "
"Analytics entièrement programmables, asynchrones et multi-tenant. Ouf, "
"c'est beaucoup ! À l'avenir, l'API de pilote sera l'abstraction sur "
"laquelle de nombreuses fonctionnalités à venir seront construites - et tu"
" peux commencer à construire ces choses dès maintenant, aussi."

#: ../../source/ref-changelog.md:1040
msgid ""
"The Driver API also enables a new execution mode in which the server runs"
" indefinitely. Multiple individual workloads can run concurrently and "
"start and stop their execution independent of the server. This is "
"especially useful for users who want to deploy Flower in production."
msgstr ""
"L'API du pilote permet également un nouveau mode d'exécution dans lequel "
"le serveur s'exécute indéfiniment. Plusieurs charges de travail "
"individuelles peuvent s'exécuter simultanément et démarrer et arrêter "
"leur exécution indépendamment du serveur. Ceci est particulièrement utile"
" pour les utilisateurs qui souhaitent déployer Flower en production."

#: ../../source/ref-changelog.md:1042
msgid ""
"To learn more, check out the `mt-pytorch` code example. We look forward "
"to you feedback!"
msgstr ""
"Pour en savoir plus, consulte l'exemple de code `mt-pytorch`. Nous "
"attendons tes commentaires avec impatience !"

#: ../../source/ref-changelog.md:1044
msgid ""
"Please note: *The Driver API is still experimental and will likely change"
" significantly over time.*"
msgstr ""
"Remarque : *L'API du pilote est encore expérimentale et est susceptible "
"de changer de manière significative au fil du temps.*"

#: ../../source/ref-changelog.md:1046
msgid ""
"**Add new Federated Analytics with Pandas example** "
"([#1469](https://github.com/adap/flower/pull/1469), "
"[#1535](https://github.com/adap/flower/pull/1535))"
msgstr ""
"**Ajouter un nouvel exemple de Federated Analytics avec Pandas** "
"([#1469](https://github.com/adap/flower/pull/1469), "
"[#1535](https://github.com/adap/flower/pull/1535))"

#: ../../source/ref-changelog.md:1048
msgid ""
"A new code example (`quickstart-pandas`) demonstrates federated analytics"
" with Pandas and Flower. You can find it here: [quickstart-"
"pandas](https://github.com/adap/flower/tree/main/examples/quickstart-"
"pandas)."
msgstr ""
"Un nouvel exemple de code (`quickstart-pandas`) démontre l'analyse "
"fédérée avec Pandas et Flower. Tu peux le trouver ici : [quickstart-"
"pandas](https://github.com/adap/flower/tree/main/examples/quickstart-"
"pandas)."

#: ../../source/ref-changelog.md:1050
msgid ""
"**Add new strategies: Krum and MultiKrum** "
"([#1481](https://github.com/adap/flower/pull/1481))"
msgstr ""
"**Ajouter de nouvelles stratégies : Krum et MultiKrum** "
"([#1481](https://github.com/adap/flower/pull/1481))"

#: ../../source/ref-changelog.md:1052
msgid ""
"Edoardo, a computer science student at the Sapienza University of Rome, "
"contributed a new `Krum` strategy that enables users to easily use Krum "
"and MultiKrum in their workloads."
msgstr ""
"Edoardo, étudiant en informatique à l'Université Sapienza de Rome, a "
"contribué à une nouvelle stratégie `Krum` qui permet aux utilisateurs "
"d'utiliser facilement Krum et MultiKrum dans leurs charges de travail."

#: ../../source/ref-changelog.md:1054
msgid ""
"**Update C++ example to be compatible with Flower v1.2.0** "
"([#1495](https://github.com/adap/flower/pull/1495))"
msgstr ""
"**Mettre à jour l'exemple C++ pour qu'il soit compatible avec Flower "
"v1.2.0** ([#1495](https://github.com/adap/flower/pull/1495))"

#: ../../source/ref-changelog.md:1056
msgid ""
"The C++ code example has received a substantial update to make it "
"compatible with the latest version of Flower."
msgstr ""
"L'exemple de code C++ a reçu une mise à jour substantielle pour le rendre"
" compatible avec la dernière version de Flower."

#: ../../source/ref-changelog.md:1058
msgid ""
"**General improvements** "
"([#1491](https://github.com/adap/flower/pull/1491), "
"[#1504](https://github.com/adap/flower/pull/1504), "
"[#1506](https://github.com/adap/flower/pull/1506), "
"[#1514](https://github.com/adap/flower/pull/1514), "
"[#1522](https://github.com/adap/flower/pull/1522), "
"[#1523](https://github.com/adap/flower/pull/1523), "
"[#1526](https://github.com/adap/flower/pull/1526), "
"[#1528](https://github.com/adap/flower/pull/1528), "
"[#1547](https://github.com/adap/flower/pull/1547), "
"[#1549](https://github.com/adap/flower/pull/1549), "
"[#1560](https://github.com/adap/flower/pull/1560), "
"[#1564](https://github.com/adap/flower/pull/1564), "
"[#1566](https://github.com/adap/flower/pull/1566))"
msgstr ""
"**Améliorations générales** "
"([#1491](https://github.com/adap/flower/pull/1491), "
"[#1504](https://github.com/adap/flower/pull/1504), "
"[#1506](https://github.com/adap/flower/pull/1506), "
"[#1514](https://github.com/adap/flower/pull/1514), "
"[#1522](https://github.com/adap/flower/pull/1522), "
"[#1523](https://github.com/adap/flower/pull/1523), "
"[#1526](https://github.com/adap/flower/pull/1526), "
"[#1528](https://github.com/adap/flower/pull/1528), "
"[#1547](https://github.com/adap/flower/pull/1547), "
"[#1549](https://github.com/adap/flower/pull/1549), "
"[#1560](https://github.com/adap/flower/pull/1560), "
"[#1564](https://github.com/adap/flower/pull/1564), "
"[#1566](https://github.com/adap/flower/pull/1566))"

#: ../../source/ref-changelog.md:1062
msgid ""
"**Updated documentation** "
"([#1494](https://github.com/adap/flower/pull/1494), "
"[#1496](https://github.com/adap/flower/pull/1496), "
"[#1500](https://github.com/adap/flower/pull/1500), "
"[#1503](https://github.com/adap/flower/pull/1503), "
"[#1505](https://github.com/adap/flower/pull/1505), "
"[#1524](https://github.com/adap/flower/pull/1524), "
"[#1518](https://github.com/adap/flower/pull/1518), "
"[#1519](https://github.com/adap/flower/pull/1519), "
"[#1515](https://github.com/adap/flower/pull/1515))"
msgstr ""
"**Documentation mise à jour** "
"([#1494](https://github.com/adap/flower/pull/1494), "
"[#1496](https://github.com/adap/flower/pull/1496), "
"[#1500](https://github.com/adap/flower/pull/1500), "
"[#1503](https://github.com/adap/flower/pull/1503), "
"[#1505](https://github.com/adap/flower/pull/1505), "
"[#1524](https://github.com/adap/flower/pull/1524), "
"[#1518](https://github.com/adap/flower/pull/1518), "
"[#1519](https://github.com/adap/flower/pull/1519), "
"[#1515](https://github.com/adap/flower/pull/1515))"

#: ../../source/ref-changelog.md:1066
msgid ""
"One highlight is the new [first time contributor "
"guide](https://flower.ai/docs/first-time-contributors.html): if you've "
"never contributed on GitHub before, this is the perfect place to start!"
msgstr ""
"L'un des points forts est le nouveau [guide du premier contributeur] "
"(https://flower.ai/docs/first-time-contributors.html) : si tu n'as jamais"
" contribué sur GitHub auparavant, c'est l'endroit idéal pour commencer !"

#: ../../source/ref-changelog.md:1072
msgid "v1.1.0 (2022-10-31)"
msgstr "v1.1.0 (2022-10-31)"

#: ../../source/ref-changelog.md:1076
msgid ""
"We would like to give our **special thanks** to all the contributors who "
"made the new version of Flower possible (in `git shortlog` order):"
msgstr ""
"Nous aimerions **remercier tout particulièrement** tous les contributeurs"
" qui ont rendu possible la nouvelle version de Flower (dans l'ordre `git "
"shortlog`) :"

#: ../../source/ref-changelog.md:1078
msgid ""
"`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan "
"Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp "
"Wiesner`, `Rob Luke`, `Taner Topal`, `VasundharaAgarwal`, "
"`danielnugraha`, `edogab33`"
msgstr ""
"`Akis Linardos`, `Christopher S`, `Daniel J. Beutel`, `George`, `Jan "
"Schlicht`, `Mohammad Fares`, `Pedro Porto Buarque de Gusmão`, `Philipp "
"Wiesner`, `Rob Luke`, `Taner Topal`, `VasundharaAgarwal`, "
"`danielnugraha`, `edogab33`"

#: ../../source/ref-changelog.md:1082
msgid ""
"**Introduce Differential Privacy wrappers (preview)** "
"([#1357](https://github.com/adap/flower/pull/1357), "
"[#1460](https://github.com/adap/flower/pull/1460))"
msgstr ""
"**Introduire les enveloppes de confidentialité différentielle (aperçu)** "
"([#1357](https://github.com/adap/flower/pull/1357), "
"[#1460](https://github.com/adap/flower/pull/1460))"

#: ../../source/ref-changelog.md:1084
msgid ""
"The first (experimental) preview of pluggable Differential Privacy "
"wrappers enables easy configuration and usage of differential privacy "
"(DP). The pluggable DP wrappers enable framework-agnostic **and** "
"strategy-agnostic usage of both client-side DP and server-side DP. Head "
"over to the Flower docs, a new explainer goes into more detail."
msgstr ""
"Le premier aperçu (expérimental) des wrappers enfichables de "
"confidentialité différentielle permet de configurer et d'utiliser "
"facilement la confidentialité différentielle (DP). Les wrappers DP "
"enfichables permettent une utilisation agnostique du cadre **et** de la "
"stratégie à la fois de la DP côté client et de la DP côté serveur. Va "
"voir les documents de Flower, un nouvel explicatif va plus loin dans les "
"détails."

#: ../../source/ref-changelog.md:1086
msgid ""
"**New iOS CoreML code example** "
"([#1289](https://github.com/adap/flower/pull/1289))"
msgstr ""
"**Nouvel exemple de code CoreML pour iOS** "
"([#1289](https://github.com/adap/flower/pull/1289))"

#: ../../source/ref-changelog.md:1088
msgid ""
"Flower goes iOS! A massive new code example shows how Flower clients can "
"be built for iOS. The code example contains both Flower iOS SDK "
"components that can be used for many tasks, and one task example running "
"on CoreML."
msgstr ""
"Flower passe à iOS ! Un nouvel exemple de code massif montre comment les "
"clients Flower peuvent être construits pour iOS. L'exemple de code "
"contient à la fois des composants Flower iOS SDK qui peuvent être "
"utilisés pour de nombreuses tâches, et un exemple de tâche fonctionnant "
"sur CoreML."

#: ../../source/ref-changelog.md:1090
msgid ""
"**New FedMedian strategy** "
"([#1461](https://github.com/adap/flower/pull/1461))"
msgstr ""
"**Nouvelle stratégie de FedMedian** "
"([#1461](https://github.com/adap/flower/pull/1461))"

#: ../../source/ref-changelog.md:1092
msgid ""
"The new `FedMedian` strategy implements Federated Median (FedMedian) by "
"[Yin et al., 2018](https://arxiv.org/pdf/1803.01498v1.pdf)."
msgstr ""
"La nouvelle stratégie `FedMedian` met en œuvre Federated Median "
"(FedMedian) par [Yin et al., 2018] "
"(https://arxiv.org/pdf/1803.01498v1.pdf)."

#: ../../source/ref-changelog.md:1094
msgid ""
"**Log** `Client` **exceptions in Virtual Client Engine** "
"([#1493](https://github.com/adap/flower/pull/1493))"
msgstr ""
"**Log** `Client` **exceptions dans le moteur de client virtuel** "
"([#1493](https://github.com/adap/flower/pull/1493))"

#: ../../source/ref-changelog.md:1096
msgid ""
"All `Client` exceptions happening in the VCE are now logged by default "
"and not just exposed to the configured `Strategy` (via the `failures` "
"argument)."
msgstr ""
"Toutes les exceptions `Client` qui se produisent dans le VCE sont "
"maintenant enregistrées par défaut et ne sont pas seulement exposées à la"
" `Stratégie` configurée (via l'argument `failures`)."

#: ../../source/ref-changelog.md:1098
msgid ""
"**Improve Virtual Client Engine internals** "
"([#1401](https://github.com/adap/flower/pull/1401), "
"[#1453](https://github.com/adap/flower/pull/1453))"
msgstr ""
"**Améliorer le moteur du client virtuel** "
"([#1401](https://github.com/adap/flower/pull/1401), "
"[#1453](https://github.com/adap/flower/pull/1453))"

#: ../../source/ref-changelog.md:1100
msgid ""
"Some internals of the Virtual Client Engine have been revamped. The VCE "
"now uses Ray 2.0 under the hood, the value type of the `client_resources`"
" dictionary changed to `float` to allow fractions of resources to be "
"allocated."
msgstr ""
"Le VCE utilise maintenant Ray 2.0 sous le capot, le type de valeur du "
"dictionnaire `client_resources` a été remplacé par `float` pour permettre"
" l'allocation de fractions de ressources."

#: ../../source/ref-changelog.md:1102
msgid ""
"**Support optional** `Client`**/**`NumPyClient` **methods in Virtual "
"Client Engine**"
msgstr ""
"**Support optional** `Client`**/**`NumPyClient` **methods in Virtual "
"Client Engine**"

#: ../../source/ref-changelog.md:1104
msgid ""
"The Virtual Client Engine now has full support for optional `Client` (and"
" `NumPyClient`) methods."
msgstr ""
"Le moteur de client virtuel prend désormais en charge les méthodes "
"optionnelles `Client` (et `NumPyClient`)."

#: ../../source/ref-changelog.md:1106
msgid ""
"**Provide type information to packages using** `flwr` "
"([#1377](https://github.com/adap/flower/pull/1377))"
msgstr ""
"**Fournir des informations de type aux paquets en utilisant** `flwr` "
"([#1377](https://github.com/adap/flower/pull/1377))"

#: ../../source/ref-changelog.md:1108
msgid ""
"The package `flwr` is now bundled with a `py.typed` file indicating that "
"the package is typed. This enables typing support for projects or "
"packages that use `flwr` by enabling them to improve their code using "
"static type checkers like `mypy`."
msgstr ""
"Le paquet `flwr` est maintenant accompagné d'un fichier `py.typed` "
"indiquant que le paquet est typé. Cela permet de prendre en charge le "
"typage pour les projets ou les paquets qui utilisent `flwr` en leur "
"permettant d'améliorer leur code à l'aide de vérificateurs de types "
"statiques comme `mypy`."

#: ../../source/ref-changelog.md:1110
msgid ""
"**Updated code example** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"
msgstr ""
"**Exemple de code mis à jour** "
"([#1344](https://github.com/adap/flower/pull/1344), "
"[#1347](https://github.com/adap/flower/pull/1347))"

#: ../../source/ref-changelog.md:1112
msgid ""
"The code examples covering scikit-learn and PyTorch Lightning have been "
"updated to work with the latest version of Flower."
msgstr ""
"Les exemples de code couvrant scikit-learn et PyTorch Lightning ont été "
"mis à jour pour fonctionner avec la dernière version de Flower."

#: ../../source/ref-changelog.md:1114
msgid ""
"**Updated documentation** "
"([#1355](https://github.com/adap/flower/pull/1355), "
"[#1558](https://github.com/adap/flower/pull/1558), "
"[#1379](https://github.com/adap/flower/pull/1379), "
"[#1380](https://github.com/adap/flower/pull/1380), "
"[#1381](https://github.com/adap/flower/pull/1381), "
"[#1332](https://github.com/adap/flower/pull/1332), "
"[#1391](https://github.com/adap/flower/pull/1391), "
"[#1403](https://github.com/adap/flower/pull/1403), "
"[#1364](https://github.com/adap/flower/pull/1364), "
"[#1409](https://github.com/adap/flower/pull/1409), "
"[#1419](https://github.com/adap/flower/pull/1419), "
"[#1444](https://github.com/adap/flower/pull/1444), "
"[#1448](https://github.com/adap/flower/pull/1448), "
"[#1417](https://github.com/adap/flower/pull/1417), "
"[#1449](https://github.com/adap/flower/pull/1449), "
"[#1465](https://github.com/adap/flower/pull/1465), "
"[#1467](https://github.com/adap/flower/pull/1467))"
msgstr ""
"**Documentation mise à jour** "
"([#1355](https://github.com/adap/flower/pull/1355), "
"[#1558](https://github.com/adap/flower/pull/1558), "
"[#1379](https://github.com/adap/flower/pull/1379), "
"[#1380](https://github.com/adap/flower/pull/1380), "
"[#1381](https://github.com/adap/flower/pull/1381), "
"[#1332](https://github.com/adap/flower/pull/1332), "
"[#1391](https://github.com/adap/flower/pull/1391), "
"[#1403](https://github.com/adap/flower/pull/1403), "
"[#1364](https://github.com/adap/flower/pull/1364), "
"[#1409](https://github.com/adap/flower/pull/1409), "
"[#1419](https://github.com/adap/flower/pull/1419), "
"[#1444](https://github.com/adap/flower/pull/1444), "
"[#1448](https://github.com/adap/flower/pull/1448), "
"[#1417](https://github.com/adap/flower/pull/1417), "
"[#1449](https://github.com/adap/flower/pull/1449), "
"[#1465](https://github.com/adap/flower/pull/1465), "
"[#1467](https://github.com/adap/flower/pull/1467))"

#: ../../source/ref-changelog.md:1116
msgid ""
"There have been so many documentation updates that it doesn't even make "
"sense to list them individually."
msgstr ""
"Il y a eu tellement de mises à jour de la documentation que cela n'a même"
" pas de sens de les énumérer individuellement."

#: ../../source/ref-changelog.md:1118
msgid ""
"**Restructured documentation** "
"([#1387](https://github.com/adap/flower/pull/1387))"
msgstr ""
"**Documentation restructurée** "
"([#1387](https://github.com/adap/flower/pull/1387))"

#: ../../source/ref-changelog.md:1120
msgid ""
"The documentation has been restructured to make it easier to navigate. "
"This is just the first step in a larger effort to make the Flower "
"documentation the best documentation of any project ever. Stay tuned!"
msgstr ""
"La documentation a été restructurée pour faciliter la navigation. Ce "
"n'est que la première étape d'un effort plus important visant à faire de "
"la documentation de Flower la meilleure documentation de tous les projets"

#: ../../source/ref-changelog.md:1122
msgid ""
"**Open in Colab button** "
"([#1389](https://github.com/adap/flower/pull/1389))"
msgstr ""
"**Ouvrir dans le bouton Colab** "
"([#1389](https://github.com/adap/flower/pull/1389))"

#: ../../source/ref-changelog.md:1124
msgid ""
"The four parts of the Flower Federated Learning Tutorial now come with a "
"new `Open in Colab` button. No need to install anything on your local "
"machine, you can now use and learn about Flower in your browser, it's "
"only a single click away."
msgstr ""
"Les quatre parties du didacticiel d'apprentissage fédéré Flower sont "
"maintenant accompagnées d'un nouveau bouton \"Ouvrir dans Colab\". Pas "
"besoin d'installer quoi que ce soit sur ta machine locale, tu peux "
"maintenant utiliser et apprendre à connaître Flower dans ton navigateur, "
"il te suffit d'un simple clic."

#: ../../source/ref-changelog.md:1126
msgid ""
"**Improved tutorial** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"
msgstr ""
"**Tutoriel amélioré** ([#1468](https://github.com/adap/flower/pull/1468),"
" [#1470](https://github.com/adap/flower/pull/1470), "
"[#1472](https://github.com/adap/flower/pull/1472), "
"[#1473](https://github.com/adap/flower/pull/1473), "
"[#1474](https://github.com/adap/flower/pull/1474), "
"[#1475](https://github.com/adap/flower/pull/1475))"

#: ../../source/ref-changelog.md:1128
msgid ""
"The Flower Federated Learning Tutorial has two brand-new parts covering "
"custom strategies (still WIP) and the distinction between `Client` and "
"`NumPyClient`. The existing parts one and two have also been improved "
"(many small changes and fixes)."
msgstr ""
"Le tutoriel sur l'apprentissage fédéré des fleurs a deux toutes nouvelles"
" parties couvrant les stratégies personnalisées (encore WIP) et la "
"distinction entre `Client` et `NumPyClient`. Les parties un et deux "
"existantes ont également été améliorées (beaucoup de petits changements "
"et de corrections)."

#: ../../source/ref-changelog.md:1134
msgid "v1.0.0 (2022-07-28)"
msgstr "v1.0.0 (2022-07-28)"

#: ../../source/ref-changelog.md:1136
msgid "Highlights"
msgstr "Points forts"

#: ../../source/ref-changelog.md:1138
msgid "Stable **Virtual Client Engine** (accessible via `start_simulation`)"
msgstr "Moteur de client virtuel stable** (accessible via `start_simulation`)"

#: ../../source/ref-changelog.md:1139
msgid "All `Client`/`NumPyClient` methods are now optional"
msgstr "Toutes les méthodes `Client`/`NumPyClient` sont maintenant optionnelles"

#: ../../source/ref-changelog.md:1140
msgid "Configurable `get_parameters`"
msgstr "`get_parameters` configurable"

#: ../../source/ref-changelog.md:1141
msgid ""
"Tons of small API cleanups resulting in a more coherent developer "
"experience"
msgstr ""
"Des tonnes de petits nettoyages d'API résultant en une expérience plus "
"cohérente pour les développeurs"

#: ../../source/ref-changelog.md:1145
msgid ""
"We would like to give our **special thanks** to all the contributors who "
"made Flower 1.0 possible (in reverse [GitHub "
"Contributors](https://github.com/adap/flower/graphs/contributors) order):"
msgstr ""
"Nous tenons à remercier **particulièrement** tous les contributeurs qui "
"ont rendu Flower 1.0 possible (dans l'ordre inverse de [GitHub "
"Contributors](https://github.com/adap/flower/graphs/contributors)) :"

#: ../../source/ref-changelog.md:1147
msgid ""
"[@rtaiello](https://github.com/rtaiello), "
"[@g-pichler](https://github.com/g-pichler), [@rob-"
"luke](https://github.com/rob-luke), [@andreea-zaharia](https://github.com"
"/andreea-zaharia), [@kinshukdua](https://github.com/kinshukdua), "
"[@nfnt](https://github.com/nfnt), "
"[@tatiana-s](https://github.com/tatiana-s), "
"[@TParcollet](https://github.com/TParcollet), "
"[@vballoli](https://github.com/vballoli), "
"[@negedng](https://github.com/negedng), "
"[@RISHIKESHAVAN](https://github.com/RISHIKESHAVAN), "
"[@hei411](https://github.com/hei411), "
"[@SebastianSpeitel](https://github.com/SebastianSpeitel), "
"[@AmitChaulwar](https://github.com/AmitChaulwar), "
"[@Rubiel1](https://github.com/Rubiel1), [@FANTOME-PAN](https://github.com"
"/FANTOME-PAN), [@Rono-BC](https://github.com/Rono-BC), "
"[@lbhm](https://github.com/lbhm), "
"[@sishtiaq](https://github.com/sishtiaq), "
"[@remde](https://github.com/remde), [@Jueun-Park](https://github.com"
"/Jueun-Park), [@architjen](https://github.com/architjen), "
"[@PratikGarai](https://github.com/PratikGarai), "
"[@mrinaald](https://github.com/mrinaald), "
"[@zliel](https://github.com/zliel), "
"[@MeiruiJiang](https://github.com/MeiruiJiang), "
"[@sancarlim](https://github.com/sancarlim), "
"[@gubertoli](https://github.com/gubertoli), "
"[@Vingt100](https://github.com/Vingt100), "
"[@MakGulati](https://github.com/MakGulati), "
"[@cozek](https://github.com/cozek), "
"[@jafermarq](https://github.com/jafermarq), "
"[@sisco0](https://github.com/sisco0), "
"[@akhilmathurs](https://github.com/akhilmathurs), "
"[@CanTuerk](https://github.com/CanTuerk), "
"[@mariaboerner1987](https://github.com/mariaboerner1987), "
"[@pedropgusmao](https://github.com/pedropgusmao), "
"[@tanertopal](https://github.com/tanertopal), "
"[@danieljanes](https://github.com/danieljanes)."
msgstr ""
"[@rtaiello](https://github.com/rtaiello), "
"[@g-pichler](https://github.com/g-pichler), [@rob-"
"luke](https://github.com/rob-luke), [@andreea-zaharia](https://github.com"
"/andreea-zaharia), [@kinshukdua](https://github.com/kinshukdua), "
"[@nfnt](https://github.com/nfnt), "
"[@tatiana-s](https://github.com/tatiana-s), "
"[@TParcollet](https://github.com/TParcollet), "
"[@vballoli](https://github.com/vballoli), "
"[@negedng](https://github.com/negedng), "
"[@RISHIKESHAVAN](https://github.com/RISHIKESHAVAN), "
"[@hei411](https://github.com/hei411), "
"[@SebastianSpeitel](https://github.com/SebastianSpeitel), "
"[@AmitChaulwar](https://github.com/AmitChaulwar), "
"[@Rubiel1](https://github.com/Rubiel1), [@FANTOME-PAN](https://github.com"
"/FANTOME-PAN), [@Rono-BC](https://github.com/Rono-BC), "
"[@lbhm](https://github.com/lbhm), "
"[@sishtiaq](https://github.com/sishtiaq), "
"[@remde](https://github.com/remde), [@Jueun-Park](https://github.com"
"/Jueun-Park), [@architjen](https://github.com/architjen), "
"[@PratikGarai](https://github.com/PratikGarai), [@mrinaald]("

#: ../../source/ref-changelog.md:1151
msgid ""
"**All arguments must be passed as keyword arguments** "
"([#1338](https://github.com/adap/flower/pull/1338))"
msgstr ""
"**Tous les arguments doivent être passés comme des arguments de mot-clé**"
" ([#1338](https://github.com/adap/flower/pull/1338))"

#: ../../source/ref-changelog.md:1153
#, fuzzy
msgid ""
"Pass all arguments as keyword arguments, positional arguments are not "
"longer supported. Code that uses positional arguments (e.g., "
"`start_client(\"127.0.0.1:8080\", FlowerClient())`) must add the keyword "
"for each positional argument (e.g., "
"`start_client(server_address=\"127.0.0.1:8080\", "
"client=FlowerClient())`)."
msgstr ""
"Le code qui utilise des arguments positionnels (par exemple, "
"``start_client(\"127.0.0.1:8080\", FlowerClient())`) doit ajouter le mot-"
"clé pour chaque argument positionnel (par exemple, "
"``start_client(server_address=\"127.0.0.1:8080\", "
"client=FlowerClient())`)."

#: ../../source/ref-changelog.md:1155
msgid ""
"**Introduce configuration object** `ServerConfig` **in** `start_server` "
"**and** `start_simulation` "
"([#1317](https://github.com/adap/flower/pull/1317))"
msgstr ""
"**Introduire l'objet de configuration** `ServerConfig` **dans** "
"`start_server` **et** `start_simulation` "
"([#1317](https://github.com/adap/flower/pull/1317))"

#: ../../source/ref-changelog.md:1157
msgid ""
"Instead of a config dictionary `{\"num_rounds\": 3, \"round_timeout\": "
"600.0}`, `start_server` and `start_simulation` now expect a configuration"
" object of type `flwr.server.ServerConfig`. `ServerConfig` takes the same"
" arguments that as the previous config dict, but it makes writing type-"
"safe code easier and the default parameters values more transparent."
msgstr ""
"Au lieu d'un dictionnaire de configuration `{\"num_rounds\" : 3, "
"\"round_timeout\" : 600.0}`, `start_server` et `start_simulation` "
"attendent maintenant un objet de configuration de type "
"`flwr.server.ServerConfig`. `ServerConfig` prend les mêmes arguments que "
"le dict de configuration précédent, mais il rend l'écriture de code "
"sécurisé plus facile et les valeurs des paramètres par défaut plus "
"transparentes."

#: ../../source/ref-changelog.md:1159
msgid ""
"**Rename built-in strategy parameters for clarity** "
"([#1334](https://github.com/adap/flower/pull/1334))"
msgstr ""
"**Renommer les paramètres de la stratégie intégrée pour plus de clarté** "
"([#1334](https://github.com/adap/flower/pull/1334))"

#: ../../source/ref-changelog.md:1161
msgid ""
"The following built-in strategy parameters were renamed to improve "
"readability and consistency with other API's:"
msgstr ""
"Les paramètres de stratégie intégrés suivants ont été renommés pour "
"améliorer la lisibilité et la cohérence avec d'autres API :"

#: ../../source/ref-changelog.md:1163
msgid "`fraction_eval` --> `fraction_evaluate`"
msgstr "`fraction_eval` --> `fraction_evaluate`"

#: ../../source/ref-changelog.md:1164
msgid "`min_eval_clients` --> `min_evaluate_clients`"
msgstr "`min_eval_clients` --> `min_evaluate_clients`"

#: ../../source/ref-changelog.md:1165
msgid "`eval_fn` --> `evaluate_fn`"
msgstr "`eval_fn` --> `evaluate_fn`"

#: ../../source/ref-changelog.md:1167
msgid ""
"**Update default arguments of built-in strategies** "
"([#1278](https://github.com/adap/flower/pull/1278))"
msgstr ""
"**Mettre à jour les arguments par défaut des stratégies intégrées** "
"([#1278](https://github.com/adap/flower/pull/1278))"

#: ../../source/ref-changelog.md:1169
msgid ""
"All built-in strategies now use `fraction_fit=1.0` and "
"`fraction_evaluate=1.0`, which means they select *all* currently "
"available clients for training and evaluation. Projects that relied on "
"the previous default values can get the previous behaviour by "
"initializing the strategy in the following way:"
msgstr ""
"Toutes les stratégies intégrées utilisent désormais `fraction_fit=1.0` et"
" `fraction_evaluate=1.0`, ce qui signifie qu'elles sélectionnent *tous* "
"les clients actuellement disponibles pour l'entraînement et l'évaluation."
" Les projets qui s'appuyaient sur les valeurs par défaut précédentes "
"peuvent retrouver le comportement antérieur en initialisant la stratégie "
"de la manière suivante :"

#: ../../source/ref-changelog.md:1171
msgid "`strategy = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`"
msgstr "`stratégie = FedAvg(fraction_fit=0.1, fraction_evaluate=0.1)`"

#: ../../source/ref-changelog.md:1173
msgid ""
"**Add** `server_round` **to** `Strategy.evaluate` "
"([#1334](https://github.com/adap/flower/pull/1334))"
msgstr ""
"**Ajouter** `server_round` **à** `Strategy.evaluate` "
"([#1334](https://github.com/adap/flower/pull/1334))"

#: ../../source/ref-changelog.md:1175
msgid ""
"The `Strategy` method `evaluate` now receives the current round of "
"federated learning/evaluation as the first parameter."
msgstr ""
"La méthode `Stratégie` `évaluer` reçoit maintenant le cycle actuel "
"d'apprentissage/évaluation fédéré comme premier paramètre."

#: ../../source/ref-changelog.md:1177
msgid ""
"**Add** `server_round` **and** `config` **parameters to** `evaluate_fn` "
"([#1334](https://github.com/adap/flower/pull/1334))"
msgstr ""
"**Ajouter** `server_round` **et** `config` **paramètres à** `evaluate_fn`"
" ([#1334](https://github.com/adap/flower/pull/1334))"

#: ../../source/ref-changelog.md:1179
msgid ""
"The `evaluate_fn` passed to built-in strategies like `FedAvg` now takes "
"three parameters: (1) The current round of federated learning/evaluation "
"(`server_round`), (2) the model parameters to evaluate (`parameters`), "
"and (3) a config dictionary (`config`)."
msgstr ""
"Le `evaluate_fn` passé aux stratégies intégrées comme `FedAvg` prend "
"maintenant trois paramètres : (1) le cycle actuel "
"d'apprentissage/évaluation fédéré (`server_round`), (2) les paramètres du"
" modèle à évaluer (`parameters`), et (3) un dictionnaire de configuration"
" (`config`)."

#: ../../source/ref-changelog.md:1181
msgid ""
"**Rename** `rnd` **to** `server_round` "
"([#1321](https://github.com/adap/flower/pull/1321))"
msgstr ""
"**Rename** `rnd` **to** `server_round` "
"([#1321](https://github.com/adap/flower/pull/1321))"

#: ../../source/ref-changelog.md:1183
msgid ""
"Several Flower methods and functions (`evaluate_fn`, `configure_fit`, "
"`aggregate_fit`, `configure_evaluate`, `aggregate_evaluate`) receive the "
"current round of federated learning/evaluation as their first parameter. "
"To improve reaability and avoid confusion with *random*, this parameter "
"has been renamed from `rnd` to `server_round`."
msgstr ""
"Plusieurs méthodes et fonctions de Flower (`evaluate_fn`, "
"`configure_fit`, `aggregate_fit`, `configure_evaluate`, "
"`aggregate_evaluate`) reçoivent le cycle actuel "
"d'apprentissage/évaluation fédéré comme premier paramètre. Pour améliorer"
" la fiabilité et éviter la confusion avec *random*, ce paramètre a été "
"renommé de `rnd` à `server_round`."

#: ../../source/ref-changelog.md:1185
msgid ""
"**Move** `flwr.dataset` **to** `flwr_baselines` "
"([#1273](https://github.com/adap/flower/pull/1273))"
msgstr ""
"**Déplacer** `flwr.dataset` **vers** `flwr_baselines` "
"([#1273](https://github.com/adap/flower/pull/1273))"

#: ../../source/ref-changelog.md:1187
msgid "The experimental package `flwr.dataset` was migrated to Flower Baselines."
msgstr "Le paquet expérimental `flwr.dataset` a été migré vers Flower Baselines."

#: ../../source/ref-changelog.md:1189
msgid ""
"**Remove experimental strategies** "
"([#1280](https://github.com/adap/flower/pull/1280))"
msgstr ""
"**Supprimer les stratégies expérimentales** "
"([#1280](https://github.com/adap/flower/pull/1280))"

#: ../../source/ref-changelog.md:1191
msgid ""
"Remove unmaintained experimental strategies (`FastAndSlow`, `FedFSv0`, "
"`FedFSv1`)."
msgstr ""
"Supprimer les stratégies expérimentales non maintenues (`FastAndSlow`, "
"`FedFSv0`, `FedFSv1`)."

#: ../../source/ref-changelog.md:1193
msgid ""
"**Rename** `Weights` **to** `NDArrays` "
"([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"
msgstr ""
"**Rename** `Weights` **to** `NDArrays` "
"([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"

#: ../../source/ref-changelog.md:1195
msgid ""
"`flwr.common.Weights` was renamed to `flwr.common.NDArrays` to better "
"capture what this type is all about."
msgstr ""
"`flwr.common.Weights` a été renommé en `flwr.common.NDArys` pour mieux "
"rendre compte de la nature de ce type."

#: ../../source/ref-changelog.md:1197
msgid ""
"**Remove antiquated** `force_final_distributed_eval` **from** "
"`start_server` ([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"
msgstr ""
"**Supprimez l'ancien** `force_final_distributed_eval` **de** "
"`start_server` ([#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"

#: ../../source/ref-changelog.md:1199
msgid ""
"The `start_server` parameter `force_final_distributed_eval` has long been"
" a historic artefact, in this release it is finally gone for good."
msgstr ""
"Le paramètre `start_server` `force_final_distributed_eval` a longtemps "
"été un artefact historique, dans cette version il a finalement disparu "
"pour de bon."

#: ../../source/ref-changelog.md:1201
msgid ""
"**Make** `get_parameters` **configurable** "
"([#1242](https://github.com/adap/flower/pull/1242))"
msgstr ""
"**Make** `get_parameters` **configurable** "
"([#1242](https://github.com/adap/flower/pull/1242))"

#: ../../source/ref-changelog.md:1203
msgid ""
"The `get_parameters` method now accepts a configuration dictionary, just "
"like `get_properties`, `fit`, and `evaluate`."
msgstr ""
"La méthode `get_parameters` accepte maintenant un dictionnaire de "
"configuration, tout comme `get_properties`, `fit`, et `evaluate`."

#: ../../source/ref-changelog.md:1205
msgid ""
"**Replace** `num_rounds` **in** `start_simulation` **with new** `config` "
"**parameter** ([#1281](https://github.com/adap/flower/pull/1281))"
msgstr ""
"**Remplace** `num_rounds` **dans** `start_simulation` **avec le nouveau**"
" `config` **paramètre** "
"([#1281](https://github.com/adap/flower/pull/1281))"

#: ../../source/ref-changelog.md:1207
msgid ""
"The `start_simulation` function now accepts a configuration dictionary "
"`config` instead of the `num_rounds` integer. This improves the "
"consistency between `start_simulation` and `start_server` and makes "
"transitioning between the two easier."
msgstr ""
"La fonction `start_simulation` accepte maintenant un dictionnaire de "
"configuration `config` au lieu de l'entier `num_rounds`. Cela améliore la"
" cohérence entre `start_simulation` et `start_server` et facilite la "
"transition entre les deux."

#: ../../source/ref-changelog.md:1211
msgid ""
"**Support Python 3.10** "
"([#1320](https://github.com/adap/flower/pull/1320))"
msgstr ""
"**Support Python 3.10** "
"([#1320](https://github.com/adap/flower/pull/1320))"

#: ../../source/ref-changelog.md:1213
msgid ""
"The previous Flower release introduced experimental support for Python "
"3.10, this release declares Python 3.10 support as stable."
msgstr ""
"La version précédente de Flower a introduit la prise en charge "
"expérimentale de Python 3.10, cette version déclare la prise en charge de"
" Python 3.10 comme stable."

#: ../../source/ref-changelog.md:1215
msgid ""
"**Make all** `Client` **and** `NumPyClient` **methods optional** "
"([#1260](https://github.com/adap/flower/pull/1260), "
"[#1277](https://github.com/adap/flower/pull/1277))"
msgstr ""
"**Rendre toutes les **méthodes `Client` **et** `NumPyClient` "
"**facultatives** ([#1260](https://github.com/adap/flower/pull/1260), "
"[#1277](https://github.com/adap/flower/pull/1277))"

#: ../../source/ref-changelog.md:1217
msgid ""
"The `Client`/`NumPyClient` methods `get_properties`, `get_parameters`, "
"`fit`, and `evaluate` are all optional. This enables writing clients that"
" implement, for example, only `fit`, but no other method. No need to "
"implement `evaluate` when using centralized evaluation!"
msgstr ""
"Les méthodes `Client`/`NumPyClient` `get_properties`, `get_parameters`, "
"`fit`, et `evaluate` sont toutes optionnelles. Cela permet d'écrire des "
"clients qui n'implémentent, par exemple, que `fit`, mais aucune autre "
"méthode. Pas besoin d'implémenter `evaluate` quand on utilise "
"l'évaluation centralisée !"

#: ../../source/ref-changelog.md:1219
msgid ""
"**Enable passing a** `Server` **instance to** `start_simulation` "
"([#1281](https://github.com/adap/flower/pull/1281))"
msgstr ""
"**Autoriser le passage d'une **instance `Server` à** `start_simulation` "
"([#1281](https://github.com/adap/flower/pull/1281))"

#: ../../source/ref-changelog.md:1221
msgid ""
"Similar to `start_server`, `start_simulation` now accepts a full `Server`"
" instance. This enables users to heavily customize the execution of "
"eperiments and opens the door to running, for example, async FL using the"
" Virtual Client Engine."
msgstr ""
"Comme pour `start_server`, `start_simulation` accepte maintenant une "
"instance complète de `Server`. Cela permet aux utilisateurs de "
"personnaliser fortement l'exécution des expériences et ouvre la porte à "
"l'exécution, par exemple, de FL asynchrones à l'aide du moteur de client "
"virtuel."

#: ../../source/ref-changelog.md:1223
msgid ""
"**Update code examples** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"
msgstr ""
"**Mettre à jour les exemples de code** "
"([#1291](https://github.com/adap/flower/pull/1291), "
"[#1286](https://github.com/adap/flower/pull/1286), "
"[#1282](https://github.com/adap/flower/pull/1282))"

#: ../../source/ref-changelog.md:1225
msgid ""
"Many code examples received small or even large maintenance updates, "
"among them are"
msgstr ""
"De nombreux exemples de code ont reçu de petites ou même de grandes mises"
" à jour de maintenance"

#: ../../source/ref-changelog.md:1227
msgid "`scikit-learn`"
msgstr "`scikit-learn`"

#: ../../source/ref-changelog.md:1228
msgid "`simulation_pytorch`"
msgstr "`simulation_pytorch`"

#: ../../source/ref-changelog.md:1229
msgid "`quickstart_pytorch`"
msgstr "`quickstart_pytorch` (démarrage rapide)"

#: ../../source/ref-changelog.md:1230
msgid "`quickstart_simulation`"
msgstr "`quickstart_simulation`"

#: ../../source/ref-changelog.md:1231
msgid "`quickstart_tensorflow`"
msgstr "`quickstart_tensorflow`"

#: ../../source/ref-changelog.md:1232
msgid "`advanced_tensorflow`"
msgstr "`advanced_tensorflow` (en anglais)"

#: ../../source/ref-changelog.md:1234
msgid ""
"**Remove the obsolete simulation example** "
"([#1328](https://github.com/adap/flower/pull/1328))"
msgstr ""
"**Supprime l'exemple de simulation obsolète** "
"([#1328](https://github.com/adap/flower/pull/1328))"

#: ../../source/ref-changelog.md:1236
msgid ""
"Removes the obsolete `simulation` example and renames "
"`quickstart_simulation` to `simulation_tensorflow` so it fits withs the "
"naming of `simulation_pytorch`"
msgstr ""
"Supprime l'exemple obsolète `simulation` et renomme "
"`quickstart_simulation` en `simulation_tensorflow` pour qu'il corresponde"
" au nom de `simulation_pytorch`"

#: ../../source/ref-changelog.md:1238
msgid ""
"**Update documentation** "
"([#1223](https://github.com/adap/flower/pull/1223), "
"[#1209](https://github.com/adap/flower/pull/1209), "
"[#1251](https://github.com/adap/flower/pull/1251), "
"[#1257](https://github.com/adap/flower/pull/1257), "
"[#1267](https://github.com/adap/flower/pull/1267), "
"[#1268](https://github.com/adap/flower/pull/1268), "
"[#1300](https://github.com/adap/flower/pull/1300), "
"[#1304](https://github.com/adap/flower/pull/1304), "
"[#1305](https://github.com/adap/flower/pull/1305), "
"[#1307](https://github.com/adap/flower/pull/1307))"
msgstr ""
"**Mise à jour de la documentation** "
"([#1223](https://github.com/adap/flower/pull/1223), "
"[#1209](https://github.com/adap/flower/pull/1209), "
"[#1251](https://github.com/adap/flower/pull/1251), "
"[#1257](https://github.com/adap/flower/pull/1257), "
"[#1267](https://github.com/adap/flower/pull/1267), "
"[#1268](https://github.com/adap/flower/pull/1268), "
"[#1300](https://github.com/adap/flower/pull/1300), "
"[#1304](https://github.com/adap/flower/pull/1304), "
"[#1305](https://github.com/adap/flower/pull/1305), "
"[#1307](https://github.com/adap/flower/pull/1307))"

#: ../../source/ref-changelog.md:1240
msgid ""
"One substantial documentation update fixes multiple smaller rendering "
"issues, makes titles more succinct to improve navigation, removes a "
"deprecated library, updates documentation dependencies, includes the "
"`flwr.common` module in the API reference, includes support for markdown-"
"based documentation, migrates the changelog from `.rst` to `.md`, and "
"fixes a number of smaller details!"
msgstr ""
"Une mise à jour substantielle de la documentation corrige plusieurs "
"petits problèmes de rendu, rend les titres plus succincts pour améliorer "
"la navigation, supprime une bibliothèque obsolète, met à jour les "
"dépendances de la documentation, inclut le module `flwr.common` dans la "
"référence de l'API, inclut le support de la documentation basée sur le "
"markdown, migre le changelog de `.rst` vers `.md`, et corrige un certain "
"nombre de détails plus petits !"

#: ../../source/ref-changelog.md:1242 ../../source/ref-changelog.md:1297
#: ../../source/ref-changelog.md:1366 ../../source/ref-changelog.md:1405
msgid "**Minor updates**"
msgstr "**Mises à jour mineures**"

#: ../../source/ref-changelog.md:1244
msgid ""
"Add round number to fit and evaluate log messages "
"([#1266](https://github.com/adap/flower/pull/1266))"
msgstr ""
"Ajoute un chiffre rond pour ajuster et évaluer les messages du journal "
"([#1266](https://github.com/adap/flower/pull/1266))"

#: ../../source/ref-changelog.md:1245
msgid ""
"Add secure gRPC connection to the `advanced_tensorflow` code example "
"([#847](https://github.com/adap/flower/pull/847))"
msgstr ""
"Ajouter une connexion gRPC sécurisée à l'exemple de code "
"`advanced_tensorflow` ([#847](https://github.com/adap/flower/pull/847))"

#: ../../source/ref-changelog.md:1246
msgid ""
"Update developer tooling "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"
msgstr ""
"Mettre à jour les outils de développement "
"([#1231](https://github.com/adap/flower/pull/1231), "
"[#1276](https://github.com/adap/flower/pull/1276), "
"[#1301](https://github.com/adap/flower/pull/1301), "
"[#1310](https://github.com/adap/flower/pull/1310))"

#: ../../source/ref-changelog.md:1247
msgid ""
"Rename ProtoBuf messages to improve consistency "
"([#1214](https://github.com/adap/flower/pull/1214), "
"[#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"
msgstr ""
"Renomme les messages ProtoBuf pour améliorer la cohérence "
"([#1214](https://github.com/adap/flower/pull/1214), "
"[#1258](https://github.com/adap/flower/pull/1258), "
"[#1259](https://github.com/adap/flower/pull/1259))"

#: ../../source/ref-changelog.md:1249
msgid "v0.19.0 (2022-05-18)"
msgstr "v0.19.0 (2022-05-18)"

#: ../../source/ref-changelog.md:1253
msgid ""
"**Flower Baselines (preview): FedOpt, FedBN, FedAvgM** "
"([#919](https://github.com/adap/flower/pull/919), "
"[#1127](https://github.com/adap/flower/pull/1127), "
"[#914](https://github.com/adap/flower/pull/914))"
msgstr ""
"**Flower Baselines (preview) : FedOpt, FedBN, FedAvgM** "
"([#919](https://github.com/adap/flower/pull/919), "
"[#1127](https://github.com/adap/flower/pull/1127), "
"[#914](https://github.com/adap/flower/pull/914))"

#: ../../source/ref-changelog.md:1255
#, fuzzy
msgid ""
"The first preview release of Flower Baselines has arrived! We're "
"kickstarting Flower Baselines with implementations of FedOpt (FedYogi, "
"FedAdam, FedAdagrad), FedBN, and FedAvgM. Check the documentation on how "
"to use [Flower Baselines](https://flower.ai/docs/using-baselines.html). "
"With this first preview release we're also inviting the community to "
"[contribute their own baselines](https://flower.ai/docs/baselines/how-to-"
"contribute-baselines.html)."
msgstr ""
"La première version préliminaire de Flower Baselines est arrivée ! Nous "
"démarrons Flower Baselines avec des implémentations de FedOpt (FedYogi, "
"FedAdam, FedAdagrad), FedBN, et FedAvgM. Consultez la documentation sur "
"l'utilisation de [Flower Baselines](https://flower.ai/docs/using-"
"baselines.html). Avec cette première version préliminaire, nous invitons "
"également la communauté à [contribuer à leurs propres lignes de "
"base](https://flower.ai/docs/baselines/how-to-contribute-baselines.html)."

#: ../../source/ref-changelog.md:1257
msgid ""
"**C++ client SDK (preview) and code example** "
"([#1111](https://github.com/adap/flower/pull/1111))"
msgstr ""
"**SDK client C++ (aperçu) et exemple de code** "
"([#1111](https://github.com/adap/flower/pull/1111))"

#: ../../source/ref-changelog.md:1259
msgid ""
"Preview support for Flower clients written in C++. The C++ preview "
"includes a Flower client SDK and a quickstart code example that "
"demonstrates a simple C++ client using the SDK."
msgstr ""
"L'aperçu C++ comprend un SDK pour les clients Flower et un exemple de "
"code de démarrage rapide qui démontre un client C++ simple utilisant le "
"SDK."

#: ../../source/ref-changelog.md:1261
msgid ""
"**Add experimental support for Python 3.10 and Python 3.11** "
"([#1135](https://github.com/adap/flower/pull/1135))"
msgstr ""
"**Ajouter la prise en charge expérimentale de Python 3.10 et Python "
"3.11** ([#1135](https://github.com/adap/flower/pull/1135))"

#: ../../source/ref-changelog.md:1263
msgid ""
"Python 3.10 is the latest stable release of Python and Python 3.11 is due"
" to be released in October. This Flower release adds experimental support"
" for both Python versions."
msgstr ""
"Python 3.10 est la dernière version stable de Python et Python 3.11 "
"devrait sortir en octobre. Cette version de Flower ajoute une prise en "
"charge expérimentale pour les deux versions de Python."

#: ../../source/ref-changelog.md:1265
msgid ""
"**Aggregate custom metrics through user-provided functions** "
"([#1144](https://github.com/adap/flower/pull/1144))"
msgstr ""
"**Agréger des mesures personnalisées grâce à des fonctions fournies par "
"l'utilisateur** ([#1144](https://github.com/adap/flower/pull/1144))"

#: ../../source/ref-changelog.md:1267
msgid ""
"Custom metrics (e.g., `accuracy`) can now be aggregated without having to"
" customize the strategy. Built-in strategies support two new arguments, "
"`fit_metrics_aggregation_fn` and `evaluate_metrics_aggregation_fn`, that "
"allow passing custom metric aggregation functions."
msgstr ""
"Les stratégies intégrées prennent en charge deux nouveaux arguments, "
"`fit_metrics_aggregation_fn` et `evaluate_metrics_aggregation_fn`, qui "
"permettent de passer des fonctions d'agrégation de métriques "
"personnalisées."

#: ../../source/ref-changelog.md:1269
msgid ""
"**User-configurable round timeout** "
"([#1162](https://github.com/adap/flower/pull/1162))"
msgstr ""
"**Temps d'attente configurable par l'utilisateur** "
"([#1162](https://github.com/adap/flower/pull/1162))"

#: ../../source/ref-changelog.md:1271
msgid ""
"A new configuration value allows the round timeout to be set for "
"`start_server` and `start_simulation`. If the `config` dictionary "
"contains a `round_timeout` key (with a `float` value in seconds), the "
"server will wait *at least* `round_timeout` seconds before it closes the "
"connection."
msgstr ""
"Si le dictionnaire `config` contient une clé `round_timeout` (avec une "
"valeur `float` en secondes), le serveur attendra *au moins* "
"`round_timeout` secondes avant de fermer la connexion."

#: ../../source/ref-changelog.md:1273
msgid ""
"**Enable both federated evaluation and centralized evaluation to be used "
"at the same time in all built-in strategies** "
"([#1091](https://github.com/adap/flower/pull/1091))"
msgstr ""
"**Permettre l'utilisation simultanée de l'évaluation fédérée et de "
"l'évaluation centralisée dans toutes les stratégies intégrées** "
"([#1091](https://github.com/adap/flower/pull/1091))"

#: ../../source/ref-changelog.md:1275
msgid ""
"Built-in strategies can now perform both federated evaluation (i.e., "
"client-side) and centralized evaluation (i.e., server-side) in the same "
"round. Federated evaluation can be disabled by setting `fraction_eval` to"
" `0.0`."
msgstr ""
"Les stratégies intégrées peuvent maintenant effectuer une évaluation "
"fédérée (c'est-à-dire côté client) et une évaluation centralisée "
"(c'est-à-dire côté serveur) dans le même tour. L'évaluation fédérée peut "
"être désactivée en réglant `fraction_eval` sur `0.0`."

#: ../../source/ref-changelog.md:1277
msgid ""
"**Two new Jupyter Notebook tutorials** "
"([#1141](https://github.com/adap/flower/pull/1141))"
msgstr ""
"**Deux nouveaux tutoriels Jupyter Notebook** "
"([#1141](https://github.com/adap/flower/pull/1141))"

#: ../../source/ref-changelog.md:1279
msgid ""
"Two Jupyter Notebook tutorials (compatible with Google Colab) explain "
"basic and intermediate Flower features:"
msgstr ""
"Deux tutoriels Jupyter Notebook (compatibles avec Google Colab) "
"expliquent les fonctionnalités de base et intermédiaires de Flower :"

#: ../../source/ref-changelog.md:1281
msgid ""
"*An Introduction to Federated Learning*: [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1"
"-Intro-to-FL-PyTorch.ipynb)"
msgstr ""
"*Introduction à l'apprentissage fédéré* : [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-1"
"-Intro-to-FL-PyTorch.ipynb)"

#: ../../source/ref-changelog.md:1283
msgid ""
"*Using Strategies in Federated Learning*: [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2"
"-Strategies-in-FL-PyTorch.ipynb)"
msgstr ""
"*Utiliser des stratégies dans l'apprentissage fédéré* : [Open in "
"Colab](https://colab.research.google.com/github/adap/flower/blob/main/tutorials/Flower-2"
"-Strategies-in-FL-PyTorch.ipynb)"

#: ../../source/ref-changelog.md:1285
msgid ""
"**New FedAvgM strategy (Federated Averaging with Server Momentum)** "
"([#1076](https://github.com/adap/flower/pull/1076))"
msgstr ""
"**Nouvelle stratégie FedAvgM (Federated Averaging with Server Momentum)**"
" ([#1076](https://github.com/adap/flower/pull/1076))"

#: ../../source/ref-changelog.md:1287
#, fuzzy
msgid ""
"The new `FedAvgM` strategy implements Federated Averaging with Server "
"Momentum \\[Hsu et al., 2019\\]."
msgstr ""
"La nouvelle stratégie `FedAvgM` met en œuvre la moyenne fédérée avec le "
"momentum du serveur [Hsu et al., 2019]."

#: ../../source/ref-changelog.md:1289
msgid ""
"**New advanced PyTorch code example** "
"([#1007](https://github.com/adap/flower/pull/1007))"
msgstr ""
"**Nouvel exemple de code PyTorch avancé** "
"([#1007](https://github.com/adap/flower/pull/1007))"

#: ../../source/ref-changelog.md:1291
msgid ""
"A new code example (`advanced_pytorch`) demonstrates advanced Flower "
"concepts with PyTorch."
msgstr ""
"Un nouvel exemple de code (`advanced_pytorch`) démontre des concepts de "
"fleur avancés avec PyTorch."

#: ../../source/ref-changelog.md:1293
msgid ""
"**New JAX code example** "
"([#906](https://github.com/adap/flower/pull/906), "
"[#1143](https://github.com/adap/flower/pull/1143))"
msgstr ""
"**Nouvel exemple de code JAX** "
"([#906](https://github.com/adap/flower/pull/906), "
"[#1143](https://github.com/adap/flower/pull/1143))"

#: ../../source/ref-changelog.md:1295
msgid ""
"A new code example (`jax_from_centralized_to_federated`) shows federated "
"learning with JAX and Flower."
msgstr ""
"Un nouvel exemple de code (`jax_from_centralized_to_federated`) montre "
"l'apprentissage fédéré avec JAX et Flower."

#: ../../source/ref-changelog.md:1299
msgid ""
"New option to keep Ray running if Ray was already initialized in "
"`start_simulation` ([#1177](https://github.com/adap/flower/pull/1177))"
msgstr ""
"Nouvelle option pour continuer à faire fonctionner Ray si Ray a déjà été "
"initialisé dans `start_simulation` "
"([#1177](https://github.com/adap/flower/pull/1177))"

#: ../../source/ref-changelog.md:1300
msgid ""
"Add support for custom `ClientManager` as a `start_simulation` parameter "
"([#1171](https://github.com/adap/flower/pull/1171))"
msgstr ""
"Ajout de la prise en charge d'un `ClientManager` personnalisé comme "
"paramètre de `start_simulation` "
"([#1171](https://github.com/adap/flower/pull/1171))"

#: ../../source/ref-changelog.md:1301
#, fuzzy
msgid ""
"New documentation for [implementing "
"strategies](https://flower.ai/docs/framework/how-to-implement-"
"strategies.html) ([#1097](https://github.com/adap/flower/pull/1097), "
"[#1175](https://github.com/adap/flower/pull/1175))"
msgstr ""
"Nouvelle documentation pour [mettre en œuvre des "
"stratégies](https://flower.ai/docs/framework/how-to-implement-"
"strategies.html) ([#1097](https://github.com/adap/flower/pull/1097), "
"[#1175](https://github.com/adap/flower/pull/1175))"

#: ../../source/ref-changelog.md:1302
msgid ""
"New mobile-friendly documentation theme "
"([#1174](https://github.com/adap/flower/pull/1174))"
msgstr ""
"Nouveau thème de documentation adapté aux mobiles "
"([#1174](https://github.com/adap/flower/pull/1174))"

#: ../../source/ref-changelog.md:1303
msgid ""
"Limit version range for (optional) `ray` dependency to include only "
"compatible releases (`>=1.9.2,<1.12.0`) "
"([#1205](https://github.com/adap/flower/pull/1205))"
msgstr ""
"Limite la plage de versions pour la dépendance (optionnelle) `ray` pour "
"n'inclure que les versions compatibles (`>=1.9.2,<1.12.0`) "
"([#1205](https://github.com/adap/flower/pull/1205))"

#: ../../source/ref-changelog.md:1307
msgid ""
"**Remove deprecated support for Python 3.6** "
"([#871](https://github.com/adap/flower/pull/871))"
msgstr ""
"**Supprime la prise en charge obsolète de Python 3.6** "
"([#871](https://github.com/adap/flower/pull/871))"

#: ../../source/ref-changelog.md:1308
msgid ""
"**Remove deprecated KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"
msgstr ""
"**Supprimez KerasClient** "
"([#857](https://github.com/adap/flower/pull/857))"

#: ../../source/ref-changelog.md:1309
msgid ""
"**Remove deprecated no-op extra installs** "
"([#973](https://github.com/adap/flower/pull/973))"
msgstr ""
"**Supprimer les installations supplémentaires no-op dépréciées** "
"([#973](https://github.com/adap/flower/pull/973))"

#: ../../source/ref-changelog.md:1310
msgid ""
"**Remove deprecated proto fields from** `FitRes` **and** `EvaluateRes` "
"([#869](https://github.com/adap/flower/pull/869))"
msgstr ""
"**Supprimez les champs proto obsolètes de** `FitRes` **et** `EvaluateRes`"
" ([#869](https://github.com/adap/flower/pull/869))"

#: ../../source/ref-changelog.md:1311
msgid ""
"**Remove deprecated QffedAvg strategy (replaced by QFedAvg)** "
"([#1107](https://github.com/adap/flower/pull/1107))"
msgstr ""
"**Supprime la stratégie QffedAvg (remplacée par QFedAvg)** "
"([#1107](https://github.com/adap/flower/pull/1107))"

#: ../../source/ref-changelog.md:1312
msgid ""
"**Remove deprecated DefaultStrategy strategy** "
"([#1142](https://github.com/adap/flower/pull/1142))"
msgstr ""
"**Supprime la stratégie DefaultStrategy qui est obsolète** "
"([#1142](https://github.com/adap/flower/pull/1142))"

#: ../../source/ref-changelog.md:1313
msgid ""
"**Remove deprecated support for eval_fn accuracy return value** "
"([#1142](https://github.com/adap/flower/pull/1142))"
msgstr ""
"**Supprimer la prise en charge obsolète de la valeur de retour de la "
"précision eval_fn** ([#1142](https://github.com/adap/flower/pull/1142))"

#: ../../source/ref-changelog.md:1314
msgid ""
"**Remove deprecated support for passing initial parameters as NumPy "
"ndarrays** ([#1142](https://github.com/adap/flower/pull/1142))"
msgstr ""
"**Supprime la prise en charge obsolète du passage des paramètres initiaux"
" en tant que ndarrays NumPy** "
"([#1142](https://github.com/adap/flower/pull/1142))"

#: ../../source/ref-changelog.md:1316
msgid "v0.18.0 (2022-02-28)"
msgstr "v0.18.0 (2022-02-28)"

#: ../../source/ref-changelog.md:1320
msgid ""
"**Improved Virtual Client Engine compatibility with Jupyter Notebook / "
"Google Colab** ([#866](https://github.com/adap/flower/pull/866), "
"[#872](https://github.com/adap/flower/pull/872), "
"[#833](https://github.com/adap/flower/pull/833), "
"[#1036](https://github.com/adap/flower/pull/1036))"
msgstr ""
"**Amélioration de la compatibilité du moteur de client virtuel avec "
"Jupyter Notebook / Google Colab** "
"([#866](https://github.com/adap/flower/pull/866), "
"[#872](https://github.com/adap/flower/pull/872), "
"[#833](https://github.com/adap/flower/pull/833), "
"[#1036](https://github.com/adap/flower/pull/1036))"

#: ../../source/ref-changelog.md:1322
msgid ""
"Simulations (using the Virtual Client Engine through `start_simulation`) "
"now work more smoothly on Jupyter Notebooks (incl. Google Colab) after "
"installing Flower with the `simulation` extra (`pip install "
"'flwr[simulation]'`)."
msgstr ""
"Les simulations (utilisant le moteur de client virtuel via "
"`start_simulation`) fonctionnent maintenant plus facilement sur les "
"Notebooks Jupyter (y compris Google Colab) après avoir installé Flower "
"avec l'option `simulation` (`pip install 'flwr[simulation]'`)."

#: ../../source/ref-changelog.md:1324
msgid ""
"**New Jupyter Notebook code example** "
"([#833](https://github.com/adap/flower/pull/833))"
msgstr ""
"**Nouvel exemple de code Jupyter Notebook** "
"([#833](https://github.com/adap/flower/pull/833))"

#: ../../source/ref-changelog.md:1326
msgid ""
"A new code example (`quickstart_simulation`) demonstrates Flower "
"simulations using the Virtual Client Engine through Jupyter Notebook "
"(incl. Google Colab)."
msgstr ""
"Un nouvel exemple de code (`quickstart_simulation`) démontre des "
"simulations de Flower en utilisant le moteur de client virtuel via "
"Jupyter Notebook (y compris Google Colab)."

#: ../../source/ref-changelog.md:1328
msgid ""
"**Client properties (feature preview)** "
"([#795](https://github.com/adap/flower/pull/795))"
msgstr ""
"**Propriétés du client (aperçu des fonctionnalités)** "
"([#795](https://github.com/adap/flower/pull/795))"

#: ../../source/ref-changelog.md:1330
msgid ""
"Clients can implement a new method `get_properties` to enable server-side"
" strategies to query client properties."
msgstr ""
"Les clients peuvent implémenter une nouvelle méthode `get_properties` "
"pour permettre aux stratégies côté serveur d'interroger les propriétés du"
" client."

#: ../../source/ref-changelog.md:1332
msgid ""
"**Experimental Android support with TFLite** "
"([#865](https://github.com/adap/flower/pull/865))"
msgstr ""
"**Support expérimental d'Android avec TFLite** "
"([#865](https://github.com/adap/flower/pull/865))"

#: ../../source/ref-changelog.md:1334
msgid ""
"Android support has finally arrived in `main`! Flower is both client-"
"agnostic and framework-agnostic by design. One can integrate arbitrary "
"client platforms and with this release, using Flower on Android has "
"become a lot easier."
msgstr ""
"La prise en charge d'Android est enfin arrivée dans `main` ! Flower est à"
" la fois agnostique au niveau du client et du cadre de travail. On peut "
"intégrer des plates-formes client arbitraires et avec cette version, "
"l'utilisation de Flower sur Android est devenue beaucoup plus facile."

#: ../../source/ref-changelog.md:1336
msgid ""
"The example uses TFLite on the client side, along with a new "
"`FedAvgAndroid` strategy. The Android client and `FedAvgAndroid` are "
"still experimental, but they are a first step towards a fully-fledged "
"Android SDK and a unified `FedAvg` implementation that integrated the new"
" functionality from `FedAvgAndroid`."
msgstr ""
"L'exemple utilise TFLite du côté client, ainsi qu'une nouvelle stratégie "
"`FedAvgAndroid`. Le client Android et `FedAvgAndroid` sont encore "
"expérimentaux, mais ils constituent un premier pas vers un SDK Android à "
"part entière et une implémentation unifiée de `FedAvg` intégrant la "
"nouvelle fonctionnalité de `FedAvgAndroid`."

#: ../../source/ref-changelog.md:1338
msgid ""
"**Make gRPC keepalive time user-configurable and decrease default "
"keepalive time** ([#1069](https://github.com/adap/flower/pull/1069))"
msgstr ""
"**Rendre le temps de garde gRPC configurable par l'utilisateur et "
"diminuer le temps de garde par défaut** "
"([#1069](https://github.com/adap/flower/pull/1069))"

#: ../../source/ref-changelog.md:1340
msgid ""
"The default gRPC keepalive time has been reduced to increase the "
"compatibility of Flower with more cloud environments (for example, "
"Microsoft Azure). Users can configure the keepalive time to customize the"
" gRPC stack based on specific requirements."
msgstr ""
"Le temps de keepalive gRPC par défaut a été réduit pour augmenter la "
"compatibilité de Flower avec davantage d'environnements cloud (par "
"exemple, Microsoft Azure). Les utilisateurs peuvent configurer le temps "
"de keepalive pour personnaliser la pile gRPC en fonction d'exigences "
"spécifiques."

#: ../../source/ref-changelog.md:1342
msgid ""
"**New differential privacy example using Opacus and PyTorch** "
"([#805](https://github.com/adap/flower/pull/805))"
msgstr ""
"**Nouvel exemple de confidentialité différentielle utilisant Opacus et "
"PyTorch** ([#805](https://github.com/adap/flower/pull/805))"

#: ../../source/ref-changelog.md:1344
msgid ""
"A new code example (`opacus`) demonstrates differentially-private "
"federated learning with Opacus, PyTorch, and Flower."
msgstr ""
"Un nouvel exemple de code (`opacus`) démontre l'apprentissage fédéré "
"différentiellement privé avec Opacus, PyTorch et Flower."

#: ../../source/ref-changelog.md:1346
msgid ""
"**New Hugging Face Transformers code example** "
"([#863](https://github.com/adap/flower/pull/863))"
msgstr ""
"**Nouvel exemple de code pour les Transformers à visage embrassant** "
"([#863](https://github.com/adap/flower/pull/863))"

#: ../../source/ref-changelog.md:1348
msgid ""
"A new code example (`quickstart_huggingface`) demonstrates usage of "
"Hugging Face Transformers with Flower."
msgstr ""
"Un nouvel exemple de code (`quickstart_huggingface`) démontre "
"l'utilisation des transformateurs Hugging Face avec Flower."

#: ../../source/ref-changelog.md:1350
msgid ""
"**New MLCube code example** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"
msgstr ""
"**Nouvel exemple de code MLCube** "
"([#779](https://github.com/adap/flower/pull/779), "
"[#1034](https://github.com/adap/flower/pull/1034), "
"[#1065](https://github.com/adap/flower/pull/1065), "
"[#1090](https://github.com/adap/flower/pull/1090))"

#: ../../source/ref-changelog.md:1352
msgid ""
"A new code example (`quickstart_mlcube`) demonstrates usage of MLCube "
"with Flower."
msgstr ""
"Un nouvel exemple de code (`quickstart_mlcube`) démontre l'utilisation de"
" MLCube avec Flower."

#: ../../source/ref-changelog.md:1354
msgid ""
"**SSL-enabled server and client** "
"([#842](https://github.com/adap/flower/pull/842),  "
"[#844](https://github.com/adap/flower/pull/844),  "
"[#845](https://github.com/adap/flower/pull/845), "
"[#847](https://github.com/adap/flower/pull/847), "
"[#993](https://github.com/adap/flower/pull/993), "
"[#994](https://github.com/adap/flower/pull/994))"
msgstr ""
"**([#842](https://github.com/adap/flower/pull/842), "
"[#844](https://github.com/adap/flower/pull/844), "
"[#845](https://github.com/adap/flower/pull/845), "
"[#847](https://github.com/adap/flower/pull/847), "
"[#993](https://github.com/adap/flower/pull/993), "
"[#994](https://github.com/adap/flower/pull/994))"

#: ../../source/ref-changelog.md:1356
msgid ""
"SSL enables secure encrypted connections between clients and servers. "
"This release open-sources the Flower secure gRPC implementation to make "
"encrypted communication channels accessible to all Flower users."
msgstr ""
"SSL permet d'établir des connexions cryptées et sécurisées entre les "
"clients et les serveurs. Cette version met en open-source "
"l'implémentation gRPC sécurisée de Flower afin de rendre les canaux de "
"communication cryptés accessibles à tous les utilisateurs de Flower."

#: ../../source/ref-changelog.md:1358
msgid ""
"**Updated** `FedAdam` **and** `FedYogi` **strategies** "
"([#885](https://github.com/adap/flower/pull/885), "
"[#895](https://github.com/adap/flower/pull/895))"
msgstr ""
"**Mise à jour** `FedAdam` **et** `FedYogi` **stratégies** "
"([#885](https://github.com/adap/flower/pull/885), "
"[#895](https://github.com/adap/flower/pull/895))"

#: ../../source/ref-changelog.md:1360
msgid ""
"`FedAdam` and `FedAdam` match the latest version of the Adaptive "
"Federated Optimization paper."
msgstr ""
"`FedAdam` et `FedAdam` correspondent à la dernière version de l'article "
"sur l'optimisation fédérée adaptative."

#: ../../source/ref-changelog.md:1362
msgid ""
"**Initialize** `start_simulation` **with a list of client IDs** "
"([#860](https://github.com/adap/flower/pull/860))"
msgstr ""
"**Initialise** `start_simulation` **avec une liste d'ID de clients** "
"([#860](https://github.com/adap/flower/pull/860))"

#: ../../source/ref-changelog.md:1364
msgid ""
"`start_simulation` can now be called with a list of client IDs "
"(`clients_ids`, type: `List[str]`). Those IDs will be passed to the "
"`client_fn` whenever a client needs to be initialized, which can make it "
"easier to load data partitions that are not accessible through `int` "
"identifiers."
msgstr ""
"`start_simulation` peut maintenant être appelé avec une liste "
"d'identifiants de clients (`clients_ids`, type : `List[str]`). Ces "
"identifiants seront passés à `client_fn` chaque fois qu'un client doit "
"être initialisé, ce qui peut faciliter le chargement de partitions de "
"données qui ne sont pas accessibles par des identifiants `int`."

#: ../../source/ref-changelog.md:1368
msgid ""
"Update `num_examples` calculation in PyTorch code examples in "
"([#909](https://github.com/adap/flower/pull/909))"
msgstr ""
"Mettre à jour le calcul de `num_examples` dans les exemples de code "
"PyTorch dans ([#909](https://github.com/adap/flower/pull/909))"

#: ../../source/ref-changelog.md:1369
msgid ""
"Expose Flower version through `flwr.__version__` "
"([#952](https://github.com/adap/flower/pull/952))"
msgstr ""
"Exposer la version de Flower à travers `flwr.__version__` "
"([#952](https://github.com/adap/flower/pull/952))"

#: ../../source/ref-changelog.md:1370
msgid ""
"`start_server` in `app.py` now returns a `History` object containing "
"metrics from training ([#974](https://github.com/adap/flower/pull/974))"
msgstr ""
"`start_server` dans `app.py` renvoie maintenant un objet `History` "
"contenant les métriques de l'entraînement "
"([#974](https://github.com/adap/flower/pull/974))"

#: ../../source/ref-changelog.md:1371
msgid ""
"Make `max_workers` (used by `ThreadPoolExecutor`) configurable "
"([#978](https://github.com/adap/flower/pull/978))"
msgstr ""
"Rendre `max_workers` (utilisé par `ThreadPoolExecutor`) configurable "
"([#978](https://github.com/adap/flower/pull/978))"

#: ../../source/ref-changelog.md:1372
msgid ""
"Increase sleep time after server start to three seconds in all code "
"examples ([#1086](https://github.com/adap/flower/pull/1086))"
msgstr ""
"Augmente le temps de sommeil après le démarrage du serveur à trois "
"secondes dans tous les exemples de code "
"([#1086](https://github.com/adap/flower/pull/1086))"

#: ../../source/ref-changelog.md:1373
msgid ""
"Added a new FAQ section to the documentation "
"([#948](https://github.com/adap/flower/pull/948))"
msgstr ""
"Ajout d'une nouvelle section FAQ à la documentation "
"([#948](https://github.com/adap/flower/pull/948))"

#: ../../source/ref-changelog.md:1374
msgid ""
"And many more under-the-hood changes, library updates, documentation "
"changes, and tooling improvements!"
msgstr ""
"Et bien d'autres changements sous le capot, des mises à jour de la "
"bibliothèque, des modifications de la documentation et des améliorations "
"de l'outillage !"

#: ../../source/ref-changelog.md:1378
msgid ""
"**Removed** `flwr_example` **and** `flwr_experimental` **from release "
"build** ([#869](https://github.com/adap/flower/pull/869))"
msgstr ""
"**Supprimé** `flwr_example` **et** `flwr_experimental` **de la version "
"release build** ([#869](https://github.com/adap/flower/pull/869))"

#: ../../source/ref-changelog.md:1380
msgid ""
"The packages `flwr_example` and `flwr_experimental` have been deprecated "
"since Flower 0.12.0 and they are not longer included in Flower release "
"builds. The associated extras (`baseline`, `examples-pytorch`, `examples-"
"tensorflow`, `http-logger`, `ops`) are now no-op and will be removed in "
"an upcoming release."
msgstr ""
"Les paquets `flwr_example` et `flwr_experimental` ont été dépréciés "
"depuis Flower 0.12.0 et ils ne sont plus inclus dans les builds de "
"Flower. Les extras associés (`baseline`, `examples-pytorch`, `examples-"
"tensorflow`, `http-logger`, `ops`) sont maintenant no-op et seront "
"supprimés dans une prochaine version."

#: ../../source/ref-changelog.md:1382
msgid "v0.17.0 (2021-09-24)"
msgstr "v0.17.0 (2021-09-24)"

#: ../../source/ref-changelog.md:1386
msgid ""
"**Experimental virtual client engine** "
"([#781](https://github.com/adap/flower/pull/781) "
"[#790](https://github.com/adap/flower/pull/790) "
"[#791](https://github.com/adap/flower/pull/791))"
msgstr ""
"**Moteur expérimental de client virtuel** "
"([#781](https://github.com/adap/flower/pull/781) "
"[#790](https://github.com/adap/flower/pull/790) "
"[#791](https://github.com/adap/flower/pull/791))"

#: ../../source/ref-changelog.md:1388
msgid ""
"One of Flower's goals is to enable research at scale. This release "
"enables a first (experimental) peek at a major new feature, codenamed the"
" virtual client engine. Virtual clients enable simulations that scale to "
"a (very) large number of clients on a single machine or compute cluster. "
"The easiest way to test the new functionality is to look at the two new "
"code examples called `quickstart_simulation` and `simulation_pytorch`."
msgstr ""
"L'un des objectifs de Flower est de permettre la recherche à grande "
"échelle. Cette version donne un premier aperçu (expérimental) d'une "
"nouvelle fonctionnalité majeure, connue sous le nom de code de moteur de "
"client virtuel. Les clients virtuels permettent des simulations qui "
"s'étendent à un (très) grand nombre de clients sur une seule machine ou "
"une grappe de calcul. La façon la plus simple de tester la nouvelle "
"fonctionnalité est de regarder les deux nouveaux exemples de code appelés"
" `quickstart_simulation` et `simulation_pytorch`."

#: ../../source/ref-changelog.md:1390
msgid ""
"The feature is still experimental, so there's no stability guarantee for "
"the API. It's also not quite ready for prime time and comes with a few "
"known caveats. However, those who are curious are encouraged to try it "
"out and share their thoughts."
msgstr ""
"La fonction est encore expérimentale, il n'y a donc aucune garantie de "
"stabilité pour l'API. Elle n'est pas non plus tout à fait prête pour le "
"prime time et s'accompagne de quelques mises en garde connues. Cependant,"
" les personnes curieuses sont encouragées à l'essayer et à faire part de "
"leurs réflexions."

#: ../../source/ref-changelog.md:1392
msgid ""
"**New built-in strategies** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#828](https://github.com/adap/flower/pull/828) "
"[#822](https://github.com/adap/flower/pull/822))"

#: ../../source/ref-changelog.md:1394
msgid ""
"FedYogi - Federated learning strategy using Yogi on server-side. "
"Implementation based on https://arxiv.org/abs/2003.00295"
msgstr ""
"FedYogi - Stratégie d'apprentissage fédéré utilisant Yogi côté serveur. "
"Mise en oeuvre basée sur https://arxiv.org/abs/2003.00295"

#: ../../source/ref-changelog.md:1395
msgid ""
"FedAdam - Federated learning strategy using Adam on server-side. "
"Implementation based on https://arxiv.org/abs/2003.00295"
msgstr ""
"FedAdam - Stratégie d'apprentissage fédéré utilisant Adam côté serveur. "
"Mise en œuvre basée sur https://arxiv.org/abs/2003.00295"

#: ../../source/ref-changelog.md:1397
msgid ""
"**New PyTorch Lightning code example** "
"([#617](https://github.com/adap/flower/pull/617))"
msgstr ""
"**Nouvel exemple de code PyTorch Lightning** "
"([#617](https://github.com/adap/flower/pull/617))"

#: ../../source/ref-changelog.md:1399
msgid ""
"**New Variational Auto-Encoder code example** "
"([#752](https://github.com/adap/flower/pull/752))"
msgstr ""
"**Nouvel exemple de code d'autocodage variationnel** "
"([#752](https://github.com/adap/flower/pull/752))"

#: ../../source/ref-changelog.md:1401
msgid ""
"**New scikit-learn code example** "
"([#748](https://github.com/adap/flower/pull/748))"
msgstr ""
"**Nouvel exemple de code scikit-learn** "
"([#748](https://github.com/adap/flower/pull/748))"

#: ../../source/ref-changelog.md:1403
msgid ""
"**New experimental TensorBoard strategy** "
"([#789](https://github.com/adap/flower/pull/789))"
msgstr ""
"**Nouvelle stratégie expérimentale TensorBoard** "
"([#789](https://github.com/adap/flower/pull/789))"

#: ../../source/ref-changelog.md:1407
msgid ""
"Improved advanced TensorFlow code example "
"([#769](https://github.com/adap/flower/pull/769))"
msgstr ""
"Amélioration de l'exemple de code TensorFlow avancé "
"([#769](https://github.com/adap/flower/pull/769))"

#: ../../source/ref-changelog.md:1408
msgid ""
"Warning when `min_available_clients` is misconfigured "
"([#830](https://github.com/adap/flower/pull/830))"
msgstr ""
"Avertissement lorsque `min_available_clients` est mal configuré "
"([#830](https://github.com/adap/flower/pull/830))"

#: ../../source/ref-changelog.md:1409
msgid ""
"Improved gRPC server docs "
"([#841](https://github.com/adap/flower/pull/841))"
msgstr ""
"Amélioration de la documentation sur le serveur gRPC "
"([#841](https://github.com/adap/flower/pull/841))"

#: ../../source/ref-changelog.md:1410
msgid ""
"Improved error message in `NumPyClient` "
"([#851](https://github.com/adap/flower/pull/851))"
msgstr ""
"Amélioration du message d'erreur dans `NumPyClient` "
"([#851](https://github.com/adap/flower/pull/851))"

#: ../../source/ref-changelog.md:1411
msgid ""
"Improved PyTorch quickstart code example "
"([#852](https://github.com/adap/flower/pull/852))"
msgstr ""
"Exemple de code de démarrage rapide PyTorch amélioré "
"([#852](https://github.com/adap/flower/pull/852))"

#: ../../source/ref-changelog.md:1415
msgid ""
"**Disabled final distributed evaluation** "
"([#800](https://github.com/adap/flower/pull/800))"
msgstr ""
"**Désactivé l'évaluation finale distribuée** "
"([#800](https://github.com/adap/flower/pull/800))"

#: ../../source/ref-changelog.md:1417
msgid ""
"Prior behaviour was to perform a final round of distributed evaluation on"
" all connected clients, which is often not required (e.g., when using "
"server-side evaluation). The prior behaviour can be enabled by passing "
"`force_final_distributed_eval=True` to `start_server`."
msgstr ""
"Le comportement précédent consistait à effectuer un dernier tour "
"d'évaluation distribuée sur tous les clients connectés, ce qui n'est "
"souvent pas nécessaire (par exemple, lors de l'utilisation de "
"l'évaluation côté serveur). Le comportement précédent peut être activé en"
" passant `force_final_distributed_eval=True` à `start_server`."

#: ../../source/ref-changelog.md:1419
msgid ""
"**Renamed q-FedAvg strategy** "
"([#802](https://github.com/adap/flower/pull/802))"
msgstr ""
"**Renommé stratégie q-FedAvg** "
"([#802](https://github.com/adap/flower/pull/802))"

#: ../../source/ref-changelog.md:1421
msgid ""
"The strategy named `QffedAvg` was renamed to `QFedAvg` to better reflect "
"the notation given in the original paper (q-FFL is the optimization "
"objective, q-FedAvg is the proposed solver). Note the original (now "
"deprecated) `QffedAvg` class is still available for compatibility reasons"
" (it will be removed in a future release)."
msgstr ""
"La stratégie nommée `QffedAvg` a été renommée en `QFedAvg` pour mieux "
"refléter la notation donnée dans l'article original (q-FFL est l'objectif"
" d'optimisation, q-FedAvg est le solveur proposé). Notez que la classe "
"`QffedAvg` originale (maintenant obsolète) est toujours disponible pour "
"des raisons de compatibilité (elle sera supprimée dans une prochaine "
"version)."

#: ../../source/ref-changelog.md:1423
msgid ""
"**Deprecated and renamed code example** `simulation_pytorch` **to** "
"`simulation_pytorch_legacy` "
"([#791](https://github.com/adap/flower/pull/791))"
msgstr ""
"**Exemple de code déprécié et renommé** `simulation_pytorch` **en** "
"`simulation_pytorch_legacy` "
"([#791](https://github.com/adap/flower/pull/791))"

#: ../../source/ref-changelog.md:1425
msgid ""
"This example has been replaced by a new example. The new example is based"
" on the experimental virtual client engine, which will become the new "
"default way of doing most types of large-scale simulations in Flower. The"
" existing example was kept for reference purposes, but it might be "
"removed in the future."
msgstr ""
"Cet exemple a été remplacé par un nouvel exemple. Le nouvel exemple est "
"basé sur le moteur expérimental du client virtuel, qui deviendra la "
"nouvelle méthode par défaut pour effectuer la plupart des types de "
"simulations à grande échelle dans Flower. L'exemple existant a été "
"conservé à des fins de référence, mais il pourrait être supprimé à "
"l'avenir."

#: ../../source/ref-changelog.md:1427
msgid "v0.16.0 (2021-05-11)"
msgstr "v0.16.0 (2021-05-11)"

#: ../../source/ref-changelog.md:1431
msgid ""
"**New built-in strategies** "
"([#549](https://github.com/adap/flower/pull/549))"
msgstr ""
"**Nouvelles stratégies intégrées** "
"([#549](https://github.com/adap/flower/pull/549))"

#: ../../source/ref-changelog.md:1433
msgid "(abstract) FedOpt"
msgstr "(résumé) FedOpt"

#: ../../source/ref-changelog.md:1436
msgid ""
"**Custom metrics for server and strategies** "
"([#717](https://github.com/adap/flower/pull/717))"
msgstr ""
"**Métriques personnalisées pour le serveur et les stratégies** "
"([#717](https://github.com/adap/flower/pull/717))"

#: ../../source/ref-changelog.md:1438
msgid ""
"The Flower server is now fully task-agnostic, all remaining instances of "
"task-specific metrics (such as `accuracy`) have been replaced by custom "
"metrics dictionaries. Flower 0.15 introduced the capability to pass a "
"dictionary containing custom metrics from client to server. As of this "
"release, custom metrics replace task-specific metrics on the server."
msgstr ""
"Le serveur Flower est maintenant totalement agnostique, toutes les "
"instances restantes de métriques spécifiques à une tâche (telles que "
"`accuracy`) ont été remplacées par des dictionnaires de métriques "
"personnalisées. Flower 0.15 a introduit la possibilité de passer un "
"dictionnaire contenant des métriques personnalisées du client au serveur."
" À partir de cette version, les métriques personnalisées remplacent les "
"métriques spécifiques à une tâche sur le serveur."

#: ../../source/ref-changelog.md:1440
#, fuzzy
msgid ""
"Custom metric dictionaries are now used in two user-facing APIs: they are"
" returned from Strategy methods `aggregate_fit`/`aggregate_evaluate` and "
"they enable evaluation functions passed to built-in strategies (via "
"`eval_fn`) to return more than two evaluation metrics. Strategies can "
"even return *aggregated* metrics dictionaries for the server to keep "
"track of."
msgstr ""
"Les dictionnaires de métriques personnalisés sont maintenant utilisés "
"dans deux API orientées vers l'utilisateur : ils sont renvoyés par les "
"méthodes de stratégie `aggregate_fit`/`aggregate_evaluate` et ils "
"permettent aux fonctions d'évaluation passées aux stratégies intégrées "
"(via `eval_fn`) de renvoyer plus de deux métriques d'évaluation. Les "
"stratégies peuvent même renvoyer des dictionnaires de métriques "
"*agrégées* pour que le serveur puisse en garder la trace."

#: ../../source/ref-changelog.md:1442
#, fuzzy
msgid ""
"Strategy implementations should migrate their `aggregate_fit` and "
"`aggregate_evaluate` methods to the new return type (e.g., by simply "
"returning an empty `{}`), server-side evaluation functions should migrate"
" from `return loss, accuracy` to `return loss, {\"accuracy\": accuracy}`."
msgstr ""
"Les implémentations de Stratey doivent migrer leurs méthodes "
"`aggregate_fit` et `aggregate_evaluate` vers le nouveau type de retour "
"(par exemple, en renvoyant simplement un `{}` vide), les fonctions "
"d'évaluation côté serveur doivent migrer de `return loss, accuracy` à "
"`return loss, {\"accuracy\" : accuracy}`."

#: ../../source/ref-changelog.md:1444
msgid ""
"Flower 0.15-style return types are deprecated (but still supported), "
"compatibility will be removed in a future release."
msgstr ""
"Les types de retour du style Flower 0.15 sont dépréciés (mais toujours "
"pris en charge), la compatibilité sera supprimée dans une prochaine "
"version."

#: ../../source/ref-changelog.md:1446
msgid ""
"**Migration warnings for deprecated functionality** "
"([#690](https://github.com/adap/flower/pull/690))"
msgstr ""
"**Avertissements de migration pour les fonctionnalités obsolètes** "
"([#690](https://github.com/adap/flower/pull/690))"

#: ../../source/ref-changelog.md:1448
msgid ""
"Earlier versions of Flower were often migrated to new APIs, while "
"maintaining compatibility with legacy APIs. This release introduces "
"detailed warning messages if usage of deprecated APIs is detected. The "
"new warning messages often provide details on how to migrate to more "
"recent APIs, thus easing the transition from one release to another."
msgstr ""
"Les versions antérieures de Flower ont souvent été migrées vers de "
"nouvelles API, tout en maintenant la compatibilité avec les anciennes "
"API. Cette version introduit des messages d'avertissement détaillés si "
"l'utilisation d'API obsolètes est détectée. Les nouveaux messages "
"d'avertissement fournissent souvent des détails sur la façon de migrer "
"vers des API plus récentes, facilitant ainsi la transition d'une version "
"à l'autre."

#: ../../source/ref-changelog.md:1450
msgid ""
"Improved docs and docstrings "
"([#691](https://github.com/adap/flower/pull/691) "
"[#692](https://github.com/adap/flower/pull/692) "
"[#713](https://github.com/adap/flower/pull/713))"
msgstr ""
"Amélioration des docs et des docstrings "
"([#691](https://github.com/adap/flower/pull/691) "
"[#692](https://github.com/adap/flower/pull/692) "
"[#713](https://github.com/adap/flower/pull/713))"

#: ../../source/ref-changelog.md:1452
msgid "MXNet example and documentation"
msgstr "Exemple et documentation MXNet"

#: ../../source/ref-changelog.md:1454
msgid ""
"FedBN implementation in example PyTorch: From Centralized To Federated "
"([#696](https://github.com/adap/flower/pull/696) "
"[#702](https://github.com/adap/flower/pull/702) "
"[#705](https://github.com/adap/flower/pull/705))"
msgstr ""
"Mise en œuvre de FedBN dans l'exemple PyTorch : De la centralisation à la"
" fédération ([#696](https://github.com/adap/flower/pull/696) "
"[#702](https://github.com/adap/flower/pull/702) "
"[#705](https://github.com/adap/flower/pull/705))"

#: ../../source/ref-changelog.md:1458
msgid ""
"**Serialization-agnostic server** "
"([#721](https://github.com/adap/flower/pull/721))"
msgstr ""
"**Serveur agnostique de sérialisation** "
"([#721](https://github.com/adap/flower/pull/721))"

#: ../../source/ref-changelog.md:1460
msgid ""
"The Flower server is now fully serialization-agnostic. Prior usage of "
"class `Weights` (which represents parameters as deserialized NumPy "
"ndarrays) was replaced by class `Parameters` (e.g., in `Strategy`). "
"`Parameters` objects are fully serialization-agnostic and represents "
"parameters as byte arrays, the `tensor_type` attributes indicates how "
"these byte arrays should be interpreted (e.g., for "
"serialization/deserialization)."
msgstr ""
"Le serveur Flower est désormais totalement agnostique en matière de "
"sérialisation. L'utilisation antérieure de la classe `Weights` (qui "
"représente les paramètres sous forme de tableaux NumPy désérialisés) a "
"été remplacée par la classe `Parameters` (par exemple, dans `Strategy`). "
"Les objets `Parameters` sont totalement agnostiques en matière de "
"sérialisation et représentent les paramètres sous forme de tableaux "
"d'octets, les attributs `tensor_type` indiquent comment ces tableaux "
"d'octets doivent être interprétés (par exemple, pour la "
"sérialisation/désérialisation)."

#: ../../source/ref-changelog.md:1462
msgid ""
"Built-in strategies implement this approach by handling serialization and"
" deserialization to/from `Weights` internally. Custom/3rd-party Strategy "
"implementations should update to the slightly changed Strategy method "
"definitions. Strategy authors can consult PR "
"[#721](https://github.com/adap/flower/pull/721) to see how strategies can"
" easily migrate to the new format."
msgstr ""
"Les stratégies intégrées mettent en œuvre cette approche en gérant en "
"interne la sérialisation et la désérialisation de `Weights`. Les "
"implémentations de stratégies personnalisées ou tierces doivent être "
"mises à jour avec les définitions de méthodes de stratégie légèrement "
"modifiées. Les auteurs de stratégies peuvent consulter le PR "
"[#721](https://github.com/adap/flower/pull/721) pour voir comment les "
"stratégies peuvent facilement migrer vers le nouveau format."

#: ../../source/ref-changelog.md:1464
msgid ""
"Deprecated `flwr.server.Server.evaluate`, use "
"`flwr.server.Server.evaluate_round` instead "
"([#717](https://github.com/adap/flower/pull/717))"
msgstr ""
"Déclassé `flwr.server.Server.evaluate`, utiliser "
"`flwr.server.Server.evaluate_round` à la place "
"([#717](https://github.com/adap/flower/pull/717))"

#: ../../source/ref-changelog.md:1466
msgid "v0.15.0 (2021-03-12)"
msgstr "v0.15.0 (2021-03-12)"

#: ../../source/ref-changelog.md:1470
msgid ""
"**Server-side parameter initialization** "
"([#658](https://github.com/adap/flower/pull/658))"
msgstr ""
"**Initialisation des paramètres côté serveur** "
"([#658](https://github.com/adap/flower/pull/658))"

#: ../../source/ref-changelog.md:1472
msgid ""
"Model parameters can now be initialized on the server-side. Server-side "
"parameter initialization works via a new `Strategy` method called "
"`initialize_parameters`."
msgstr ""
"Les paramètres du modèle peuvent maintenant être initialisés côté "
"serveur. L'initialisation des paramètres côté serveur fonctionne via une "
"nouvelle méthode `Strategy` appelée `initialize_parameters`."

#: ../../source/ref-changelog.md:1474
msgid ""
"Built-in strategies support a new constructor argument called "
"`initial_parameters` to set the initial parameters. Built-in strategies "
"will provide these initial parameters to the server on startup and then "
"delete them to free the memory afterwards."
msgstr ""
"Les stratégies intégrées prennent en charge un nouvel argument du "
"constructeur appelé `initial_parameters` pour définir les paramètres "
"initiaux. Les stratégies intégrées fourniront ces paramètres initiaux au "
"serveur au démarrage et les supprimeront ensuite pour libérer la mémoire."

#: ../../source/ref-changelog.md:1493
msgid ""
"If no initial parameters are provided to the strategy, the server will "
"continue to use the current behaviour (namely, it will ask one of the "
"connected clients for its parameters and use these as the initial global "
"parameters)."
msgstr ""
"Si aucun paramètre initial n'est fourni à la stratégie, le serveur "
"continuera à utiliser le comportement actuel (à savoir qu'il demandera à "
"l'un des clients connectés ses paramètres et les utilisera comme "
"paramètres globaux initiaux)."

#: ../../source/ref-changelog.md:1497
msgid ""
"Deprecate `flwr.server.strategy.DefaultStrategy` (migrate to "
"`flwr.server.strategy.FedAvg`, which is equivalent)"
msgstr ""
"Déclasser `flwr.server.strategy.DefaultStrategy` (migrer vers "
"`flwr.server.strategy.FedAvg`, qui est équivalent)"

#: ../../source/ref-changelog.md:1499
msgid "v0.14.0 (2021-02-18)"
msgstr "v0.14.0 (2021-02-18)"

#: ../../source/ref-changelog.md:1503
msgid ""
"**Generalized** `Client.fit` **and** `Client.evaluate` **return values** "
"([#610](https://github.com/adap/flower/pull/610) "
"[#572](https://github.com/adap/flower/pull/572) "
"[#633](https://github.com/adap/flower/pull/633))"
msgstr ""
"**Généralisé** `Client.fit` **et** `Client.evaluate` **valeurs de "
"retour** ([#610](https://github.com/adap/flower/pull/610) "
"[#572](https://github.com/adap/flower/pull/572) "
"[#633](https://github.com/adap/flower/pull/633))"

#: ../../source/ref-changelog.md:1505
msgid ""
"Clients can now return an additional dictionary mapping `str` keys to "
"values of the following types: `bool`, `bytes`, `float`, `int`, `str`. "
"This means one can return almost arbitrary values from `fit`/`evaluate` "
"and make use of them on the server side!"
msgstr ""
"Les clients peuvent maintenant renvoyer un dictionnaire supplémentaire "
"associant les clés `str` aux valeurs des types suivants : `bool`, "
"`bytes`, `float`, `int`, `str`. Cela signifie que l'on peut renvoyer des "
"valeurs presque arbitraires de `fit`/`evaluate` et les utiliser du côté "
"du serveur !"

#: ../../source/ref-changelog.md:1507
msgid ""
"This improvement also allowed for more consistent return types between "
"`fit` and `evaluate`: `evaluate` should now return a tuple `(float, int, "
"dict)` representing the loss, number of examples, and a dictionary "
"holding arbitrary problem-specific values like accuracy."
msgstr ""
"Cette amélioration a également permis de rendre plus cohérents les types "
"de retour entre `fit` et `evaluate` : `evaluate` devrait maintenant "
"retourner un tuple `(float, int, dict)` représentant la perte, le nombre "
"d'exemples, et un dictionnaire contenant des valeurs arbitraires "
"spécifiques au problème comme la précision."

#: ../../source/ref-changelog.md:1509
msgid ""
"In case you wondered: this feature is compatible with existing projects, "
"the additional dictionary return value is optional. New code should "
"however migrate to the new return types to be compatible with upcoming "
"Flower releases (`fit`: `List[np.ndarray], int, Dict[str, Scalar]`, "
"`evaluate`: `float, int, Dict[str, Scalar]`). See the example below for "
"details."
msgstr ""
"Au cas où tu te poserais la question : cette fonctionnalité est "
"compatible avec les projets existants, la valeur de retour supplémentaire"
" du dictionnaire est facultative. Le nouveau code doit cependant migrer "
"vers les nouveaux types de retour pour être compatible avec les "
"prochaines versions de Flower (`fit` : `List[np.ndarray], int, Dict[str, "
"Scalar]`, `evaluate` : `float, int, Dict[str, Scalar]`). Voir l'exemple "
"ci-dessous pour plus de détails."

#: ../../source/ref-changelog.md:1511
msgid ""
"*Code example:* note the additional dictionary return values in both "
"`FlwrClient.fit` and `FlwrClient.evaluate`:"
msgstr ""
"*Exemple de code:* note les valeurs de retour du dictionnaire "
"supplémentaires dans `FlwrClient.fit` et `FlwrClient.evaluate` :"

#: ../../source/ref-changelog.md:1526
msgid ""
"**Generalized** `config` **argument in** `Client.fit` **and** "
"`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))"
msgstr ""
"**Généralisé** `config` **argument dans** `Client.fit` **et** "
"`Client.evaluate` ([#595](https://github.com/adap/flower/pull/595))"

#: ../../source/ref-changelog.md:1528
msgid ""
"The `config` argument used to be of type `Dict[str, str]`, which means "
"that dictionary values were expected to be strings. The new release "
"generalizes this to enable values of the following types: `bool`, "
"`bytes`, `float`, `int`, `str`."
msgstr ""
"L'argument `config` était auparavant de type `Dict[str, str]`, ce qui "
"signifie que les valeurs du dictionnaire devaient être des chaînes. La "
"nouvelle version généralise cela pour permettre les valeurs des types "
"suivants : `bool`, `bytes`, `float`, `int`, `str`."

#: ../../source/ref-changelog.md:1530
msgid ""
"This means one can now pass almost arbitrary values to `fit`/`evaluate` "
"using the `config` dictionary. Yay, no more `str(epochs)` on the server-"
"side and `int(config[\"epochs\"])` on the client side!"
msgstr ""
"Cela signifie que l'on peut maintenant passer des valeurs presque "
"arbitraires à `fit`/`evaluate` en utilisant le dictionnaire `config`. "
"Yay, plus de `str(epochs)` du côté serveur et `int(config[\"epochs\"])` "
"du côté client !"

#: ../../source/ref-changelog.md:1532
msgid ""
"*Code example:* note that the `config` dictionary now contains non-`str` "
"values in both `Client.fit` and `Client.evaluate`:"
msgstr ""
"*Exemple de code:* Notez que le dictionnaire `config` contient maintenant"
" des valeurs autres que `str` dans `Client.fit` et `Client.evaluate` :"

#: ../../source/ref-changelog.md:1549
msgid "v0.13.0 (2021-01-08)"
msgstr "v0.13.0 (2021-01-08)"

#: ../../source/ref-changelog.md:1553
msgid ""
"New example: PyTorch From Centralized To Federated "
"([#549](https://github.com/adap/flower/pull/549))"
msgstr ""
"Nouvel exemple : PyTorch de centralisé à fédéré "
"([#549](https://github.com/adap/flower/pull/549))"

#: ../../source/ref-changelog.md:1554
msgid "Improved documentation"
msgstr "Amélioration de la documentation"

#: ../../source/ref-changelog.md:1555
msgid "New documentation theme ([#551](https://github.com/adap/flower/pull/551))"
msgstr ""
"Nouveau thème de documentation "
"([#551](https://github.com/adap/flower/pull/551))"

#: ../../source/ref-changelog.md:1556
msgid "New API reference ([#554](https://github.com/adap/flower/pull/554))"
msgstr "Nouvelle référence API ([#554](https://github.com/adap/flower/pull/554))"

#: ../../source/ref-changelog.md:1557
msgid ""
"Updated examples documentation "
"([#549](https://github.com/adap/flower/pull/549))"
msgstr ""
"Mise à jour de la documentation des exemples "
"([#549](https://github.com/adap/flower/pull/549))"

#: ../../source/ref-changelog.md:1558
msgid ""
"Removed obsolete documentation "
"([#548](https://github.com/adap/flower/pull/548))"
msgstr ""
"Suppression de la documentation obsolète "
"([#548](https://github.com/adap/flower/pull/548))"

#: ../../source/ref-changelog.md:1560
msgid "Bugfix:"
msgstr "Correction de bogues :"

#: ../../source/ref-changelog.md:1562
msgid ""
"`Server.fit` does not disconnect clients when finished, disconnecting the"
" clients is now handled in `flwr.server.start_server` "
"([#553](https://github.com/adap/flower/pull/553) "
"[#540](https://github.com/adap/flower/issues/540))."
msgstr ""
"`Server.fit` ne déconnecte pas les clients lorsqu'il est terminé, la "
"déconnexion des clients est maintenant gérée dans "
"`flwr.server.start_server` "
"([#553](https://github.com/adap/flower/pull/553) "
"[#540](https://github.com/adap/flower/issues/540))."

#: ../../source/ref-changelog.md:1564
msgid "v0.12.0 (2020-12-07)"
msgstr "v0.12.0 (2020-12-07)"

#: ../../source/ref-changelog.md:1566 ../../source/ref-changelog.md:1582
msgid "Important changes:"
msgstr "Changements importants :"

#: ../../source/ref-changelog.md:1568
msgid ""
"Added an example for embedded devices "
"([#507](https://github.com/adap/flower/pull/507))"
msgstr ""
"Ajout d'un exemple pour les périphériques embarqués "
"([#507](https://github.com/adap/flower/pull/507))"

#: ../../source/ref-changelog.md:1569
msgid ""
"Added a new NumPyClient (in addition to the existing KerasClient) "
"([#504](https://github.com/adap/flower/pull/504) "
"[#508](https://github.com/adap/flower/pull/508))"
msgstr ""
"Ajout d'un nouveau NumPyClient (en plus du KerasClient existant) "
"([#504](https://github.com/adap/flower/pull/504) "
"[#508](https://github.com/adap/flower/pull/508))"

#: ../../source/ref-changelog.md:1570
msgid ""
"Deprecated `flwr_example` package and started to migrate examples into "
"the top-level `examples` directory "
"([#494](https://github.com/adap/flower/pull/494) "
"[#512](https://github.com/adap/flower/pull/512))"
msgstr ""
"Déclassement du paquet `flwr_example` et migration des exemples dans le "
"répertoire de premier niveau `examples` "
"([#494](https://github.com/adap/flower/pull/494) "
"[#512](https://github.com/adap/flower/pull/512))"

#: ../../source/ref-changelog.md:1572
msgid "v0.11.0 (2020-11-30)"
msgstr "v0.11.0 (2020-11-30)"

#: ../../source/ref-changelog.md:1574
msgid "Incompatible changes:"
msgstr "Changements incompatibles :"

#: ../../source/ref-changelog.md:1576
msgid ""
"Renamed strategy methods "
"([#486](https://github.com/adap/flower/pull/486)) to unify the naming of "
"Flower's public APIs. Other public methods/functions (e.g., every method "
"in `Client`, but also `Strategy.evaluate`) do not use the `on_` prefix, "
"which is why we're removing it from the four methods in Strategy. To "
"migrate rename the following `Strategy` methods accordingly:"
msgstr ""
"Renommé les méthodes de stratégie "
"([#486](https://github.com/adap/flower/pull/486)) pour unifier le nommage"
" des API publiques de Flower. D'autres méthodes/fonctions publiques (par "
"exemple, toutes les méthodes de `Client`, mais aussi `Strategy.evaluate`)"
" n'utilisent pas le préfixe `on_`, c'est pourquoi nous le supprimons des "
"quatre méthodes de Stratégie. Pour migrer, renommez les méthodes de "
"`Strategy` suivantes en conséquence :"

#: ../../source/ref-changelog.md:1577
msgid "`on_configure_evaluate` => `configure_evaluate`"
msgstr "`on_configure_evaluate` => `configure_evaluate`"

#: ../../source/ref-changelog.md:1578
msgid "`on_aggregate_evaluate` => `aggregate_evaluate`"
msgstr "`on_aggregate_evaluate` => `aggregate_evaluate`"

#: ../../source/ref-changelog.md:1579
msgid "`on_configure_fit` => `configure_fit`"
msgstr "`on_configure_fit` => `configure_fit`"

#: ../../source/ref-changelog.md:1580
msgid "`on_aggregate_fit` => `aggregate_fit`"
msgstr "`on_aggregate_fit` => `aggregate_fit`"

#: ../../source/ref-changelog.md:1584
msgid ""
"Deprecated `DefaultStrategy` "
"([#479](https://github.com/adap/flower/pull/479)). To migrate use "
"`FedAvg` instead."
msgstr ""
"Déclassé `DefaultStrategy` "
"([#479](https://github.com/adap/flower/pull/479)). Pour migrer, utilisez "
"`FedAvg` à la place."

#: ../../source/ref-changelog.md:1585
msgid ""
"Simplified examples and baselines "
"([#484](https://github.com/adap/flower/pull/484))."
msgstr ""
"Exemples simplifiés et lignes de base "
"([#484](https://github.com/adap/flower/pull/484))."

#: ../../source/ref-changelog.md:1586
msgid ""
"Removed presently unused `on_conclude_round` from strategy interface "
"([#483](https://github.com/adap/flower/pull/483))."
msgstr ""
"Suppression de `on_conclude_round` actuellement inutilisé de l'interface "
"de stratégie ([#483](https://github.com/adap/flower/pull/483))."

#: ../../source/ref-changelog.md:1587
msgid ""
"Set minimal Python version to 3.6.1 instead of 3.6.9 "
"([#471](https://github.com/adap/flower/pull/471))."
msgstr ""
"Fixe la version minimale de Python à 3.6.1 au lieu de 3.6.9 "
"([#471](https://github.com/adap/flower/pull/471))."

#: ../../source/ref-changelog.md:1588
msgid ""
"Improved `Strategy` docstrings "
"([#470](https://github.com/adap/flower/pull/470))."
msgstr ""
"Amélioration des docstrings `Stratégie` "
"([#470](https://github.com/adap/flower/pull/470))."

#: ../../source/ref-example-projects.rst:2
#, fuzzy
msgid "Example projects"
msgstr "Exemples de PyTorch"

#: ../../source/ref-example-projects.rst:4
msgid ""
"Flower comes with a number of usage examples. The examples demonstrate "
"how Flower can be used to federate different kinds of existing machine "
"learning pipelines, usually leveraging popular machine learning "
"frameworks such as `PyTorch <https://pytorch.org/>`_ or `TensorFlow "
"<https://www.tensorflow.org/>`_."
msgstr ""
"Flower est livré avec un certain nombre d'exemples d'utilisation, qui "
"montrent comment Flower peut être utilisé pour fédérer différents types "
"de pipelines d'apprentissage automatique existants, qui s'appuient "
"généralement sur des frameworks d'apprentissage automatique populaires "
"tels que `PyTorch <https://pytorch.org/>`_ ou `TensorFlow "
"<https://www.tensorflow.org/>`_."

#: ../../source/ref-example-projects.rst:9
#, fuzzy
msgid "The following examples are available as standalone projects."
msgstr "Les exemples suivants sont disponibles sous forme de projets autonomes."

#: ../../source/ref-example-projects.rst:12
#, fuzzy
msgid "Quickstart TensorFlow/Keras"
msgstr "Démarrage rapide de TensorFlow"

#: ../../source/ref-example-projects.rst:14
msgid ""
"The TensorFlow/Keras quickstart example shows CIFAR-10 image "
"classification with MobileNetV2:"
msgstr ""
"L'exemple de démarrage rapide TensorFlow/Keras montre la classification "
"d'images CIFAR-10 avec MobileNetV2 :"

#: ../../source/ref-example-projects.rst:17
#, fuzzy
msgid ""
"`Quickstart TensorFlow (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-"
"tensorflow>`_"
msgstr ""
"`Quickstart TensorFlow (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-"
"tensorflow>`_"

#: ../../source/ref-example-projects.rst:19
#, fuzzy
msgid ":doc:`Quickstart TensorFlow (Tutorial) <tutorial-quickstart-tensorflow>`"
msgstr ""
"`Quickstart TensorFlow (Tutorial) <https://flower.ai/docs/quickstart-"
"tensorflow.html>`_"

#: ../../source/ref-example-projects.rst:20
msgid ""
"`Quickstart TensorFlow (Blog Post) <https://flower.ai/blog/2020-12-11"
"-federated-learning-in-less-than-20-lines-of-code>`_"
msgstr ""
"`Quickstart TensorFlow (Blog Post) <https://flower.ai/blog/2020-12-11"
"-federated-learning-in-less-than-20-lines-of-code>`_"

#: ../../source/ref-example-projects.rst:24
#: ../../source/tutorial-quickstart-pytorch.rst:4
msgid "Quickstart PyTorch"
msgstr "Démarrage rapide de PyTorch"

#: ../../source/ref-example-projects.rst:26
msgid ""
"The PyTorch quickstart example shows CIFAR-10 image classification with a"
" simple Convolutional Neural Network:"
msgstr ""
"L'exemple de démarrage rapide PyTorch montre la classification d'images "
"CIFAR-10 avec un simple réseau neuronal convolutif :"

#: ../../source/ref-example-projects.rst:29
#, fuzzy
msgid ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"
msgstr ""
"`Quickstart PyTorch (Code) "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pytorch>`_"

#: ../../source/ref-example-projects.rst:31
#, fuzzy
msgid ":doc:`Quickstart PyTorch (Tutorial) <tutorial-quickstart-pytorch>`"
msgstr ""
"`Quickstart PyTorch (Tutorial) <https://flower.ai/docs/quickstart-"
"pytorch.html>`_"

#: ../../source/ref-example-projects.rst:34
msgid "PyTorch: From Centralized To Federated"
msgstr "PyTorch : De la centralisation à la fédération"

#: ../../source/ref-example-projects.rst:36
msgid ""
"This example shows how a regular PyTorch project can be federated using "
"Flower:"
msgstr ""
"Cet exemple montre comment un projet PyTorch ordinaire peut être fédéré à"
" l'aide de Flower :"

#: ../../source/ref-example-projects.rst:38
#, fuzzy
msgid ""
"`PyTorch: From Centralized To Federated (Code) "
"<https://github.com/adap/flower/tree/main/examples/pytorch-from-"
"centralized-to-federated>`_"
msgstr ""
"`PyTorch : De la centralisation à la fédération (Code) "
"<https://github.com/adap/flower/tree/main/examples/pytorch-from-"
"centralized-to-federated>`_"

#: ../../source/ref-example-projects.rst:40
#, fuzzy
msgid ""
":doc:`PyTorch: From Centralized To Federated (Tutorial) <example-pytorch-"
"from-centralized-to-federated>`"
msgstr ""
"`PyTorch : De la centralisation à la fédération (Tutoriel) "
"<https://flower.ai/docs/example-pytorch-from-centralized-to-"
"federated.html>`_"

#: ../../source/ref-example-projects.rst:44
msgid "Federated Learning on Raspberry Pi and Nvidia Jetson"
msgstr "Apprentissage fédéré sur Raspberry Pi et Nvidia Jetson"

#: ../../source/ref-example-projects.rst:46
msgid ""
"This example shows how Flower can be used to build a federated learning "
"system that run across Raspberry Pi and Nvidia Jetson:"
msgstr ""
"Cet exemple montre comment Flower peut être utilisé pour construire un "
"système d'apprentissage fédéré qui fonctionne sur Raspberry Pi et Nvidia "
"Jetson :"

#: ../../source/ref-example-projects.rst:49
#, fuzzy
msgid ""
"`Federated Learning on Raspberry Pi and Nvidia Jetson (Code) "
"<https://github.com/adap/flower/tree/main/examples/embedded-devices>`_"
msgstr ""
"`L'apprentissage fédéré sur Raspberry Pi et Nvidia Jetson (Code) "
"<https://github.com/adap/flower/tree/main/examples/embedded-devices>`_"

#: ../../source/ref-example-projects.rst:51
msgid ""
"`Federated Learning on Raspberry Pi and Nvidia Jetson (Blog Post) "
"<https://flower.ai/blog/2020-12-16-running_federated_learning_applications_on_embedded_devices_with_flower>`_"
msgstr ""
"`L'apprentissage fédéré sur Raspberry Pi et Nvidia Jetson (Blog Post) "
"<https://flower.ai/blog/2020-12-16-running_federated_learning_applications_on_embedded_devices_with_flower>`_"

#: ../../source/ref-faq.rst:2
msgid "FAQ"
msgstr "FAQ"

#: ../../source/ref-faq.rst:4
msgid ""
"This page collects answers to commonly asked questions about Federated "
"Learning with Flower."
msgstr ""
"Cette page rassemble les réponses aux questions les plus fréquemment "
"posées sur l'apprentissage fédéré avec Flower."

#: ../../source/ref-faq.rst
#, fuzzy
msgid ":fa:`eye,mr-1` Can Flower run on Jupyter Notebooks / Google Colab?"
msgstr ""
":fa:`eye,mr-1` Flower peut-il fonctionner sur les ordinateurs portables "
"Juptyter / Google Colab ?"

#: ../../source/ref-faq.rst:9
msgid ""
"Yes, it can! Flower even comes with a few under-the-hood optimizations to"
" make it work even better on Colab. Here's a quickstart example:"
msgstr ""
"Oui, c'est possible ! Flower est même livré avec quelques optimisations "
"pour qu'il fonctionne encore mieux sur Colab. Voici un exemple de "
"démarrage rapide :"

#: ../../source/ref-faq.rst:11
#, fuzzy
msgid ""
"`Flower simulation PyTorch "
"<https://colab.research.google.com/github/adap/flower/blob/main/examples"
"/simulation-pytorch/sim.ipynb>`_"
msgstr ""
"`Flower Quickstart (TensorFlow/Keras) "
"<https://colab.research.google.com/github/adap/flower/blob/main/examples/simulation_tensorflow/sim.ipynb>`_"

#: ../../source/ref-faq.rst:12
#, fuzzy
msgid ""
"`Flower simulation TensorFlow/Keras "
"<https://colab.research.google.com/github/adap/flower/blob/main/examples"
"/simulation-tensorflow/sim.ipynb>`_"
msgstr ""
"`Flower Quickstart (TensorFlow/Keras) "
"<https://colab.research.google.com/github/adap/flower/blob/main/examples/simulation_tensorflow/sim.ipynb>`_"

#: ../../source/ref-faq.rst
msgid ":fa:`eye,mr-1` How can I run Federated Learning on a Raspberry Pi?"
msgstr ""
":fa:`eye,mr-1` Comment puis-je faire fonctionner l'apprentissage fédéré "
"sur un Raspberry Pi ?"

#: ../../source/ref-faq.rst:16
#, fuzzy
msgid ""
"Find the `blog post about federated learning on embedded device here "
"<https://flower.ai/blog/2020-12-16-running_federated_learning_applications_on_embedded_devices_with_flower>`_"
" and the corresponding `GitHub code example "
"<https://github.com/adap/flower/tree/main/examples/embedded-devices>`_."
msgstr ""
"Trouve le `blog post about federated learning on embedded device ici "
"<https://flower.ai/blog/2020-12-16-running_federated_learning_applications_on_embedded_devices_with_flower>`_"
" et l'exemple de code GitHub correspondant "
"<https://github.com/adap/flower/tree/main/examples/embedded-devices>`_."

#: ../../source/ref-faq.rst
msgid ":fa:`eye,mr-1` Does Flower support federated learning on Android devices?"
msgstr ""
":fa:`eye,mr-1` Est-ce que Flower prend en charge l'apprentissage fédéré "
"sur les appareils Android ?"

#: ../../source/ref-faq.rst:20
#, fuzzy
msgid ""
"Yes, it does. Please take a look at our `blog post "
"<https://flower.ai/blog/2021-12-15-federated-learning-on-android-devices-"
"with-flower>`_ or check out the code examples:"
msgstr ""
"Oui. Jetez un coup d'œil à notre `blog post "
"<https://flower.ai/blog/2021-12-15-federated-learning-on-android-devices-"
"with-flower>`_ ou consultez l'`exemple de code Android sur GitHub "
"<https://github.com/adap/flower/tree/main/examples/android>`_."

#: ../../source/ref-faq.rst:22
msgid ""
"`Android Kotlin example <https://flower.ai/docs/examples/android-"
"kotlin.html>`_"
msgstr ""

#: ../../source/ref-faq.rst:23
msgid "`Android Java example <https://flower.ai/docs/examples/android.html>`_"
msgstr ""

#: ../../source/ref-faq.rst
msgid ":fa:`eye,mr-1` Can I combine federated learning with blockchain?"
msgstr ""
":fa:`eye,mr-1` Puis-je combiner l'apprentissage fédéré avec la blockchain"
" ?"

#: ../../source/ref-faq.rst:27
msgid ""
"Yes, of course. A list of available examples using Flower within a "
"blockchain environment is available here:"
msgstr ""
"Oui, bien sûr, une liste d'exemples disponibles utilisant Flower dans un "
"environnement blockchain est disponible ici :"

#: ../../source/ref-faq.rst:30
msgid "`FLock: A Decentralised AI Training Platform <https://www.flock.io/#/>`_."
msgstr ""

#: ../../source/ref-faq.rst:30
msgid "Contribute to on-chain training the model and earn rewards."
msgstr ""

#: ../../source/ref-faq.rst:31
#, fuzzy
msgid "Local blockchain with federated learning simulation."
msgstr "Mise à l'échelle de l'apprentissage fédéré"

#: ../../source/ref-faq.rst:32
msgid ""
"`Flower meets Nevermined GitHub Repository <https://github.com"
"/nevermined-io/fl-demo/tree/master/image-classification-flower>`_."
msgstr ""
"`Flower meets Nevermined GitHub Repository <https://github.com"
"/nevermined-io/fl-demo/tree/master/image-classification-flower>`_."

#: ../../source/ref-faq.rst:33
msgid ""
"`Flower meets Nevermined YouTube video "
"<https://www.youtube.com/watch?v=A0A9hSlPhKI>`_."
msgstr ""
"`Flower rencontre Nevermined vidéo YouTube "
"<https://www.youtube.com/watch?v=A0A9hSlPhKI>`_."

#: ../../source/ref-faq.rst:34
#, fuzzy
msgid ""
"`Flower meets KOSMoS <https://www.isw-sites.de/kosmos/wp-"
"content/uploads/sites/13/2021/05/Talk-Flower-Summit-2021.pdf>`_."
msgstr ""
"`Flower rencontre KOSMoS <https://www.kosmos-bmbf.de/wp-"
"content/uploads/sites/13/2021/05/Talk-Flower-Summit-2021.pdf>`_."

#: ../../source/ref-faq.rst:35
msgid ""
"`Flower meets Talan blog post <https://www.linkedin.com/pulse/federated-"
"learning-same-mask-different-faces-imen-"
"ayari/?trackingId=971oIlxLQ9%2BA9RB0IQ73XQ%3D%3D>`_ ."
msgstr ""
"`Flower meets Talan blog post <https://www.linkedin.com/pulse/federated-"
"learning-same-mask-different-faces-imen-"
"ayari/?trackingId=971oIlxLQ9%2BA9RB0IQ73XQ%3D%3D>`_ ."

#: ../../source/ref-faq.rst:36
msgid ""
"`Flower meets Talan GitHub Repository "
"<https://gitlab.com/Talan_Innovation_Factory/food-waste-prevention>`_ ."
msgstr ""
"`Flower rencontre Talan Dépôt GitHub "
"<https://gitlab.com/Talan_Innovation_Factory/food-waste-prevention>`_ ."

#: ../../source/ref-telemetry.md:1
msgid "Telemetry"
msgstr "Télémétrie"

#: ../../source/ref-telemetry.md:3
msgid ""
"The Flower open-source project collects **anonymous** usage metrics to "
"make well-informed decisions to improve Flower. Doing this enables the "
"Flower team to understand how Flower is used and what challenges users "
"might face."
msgstr ""
"Le projet open-source Flower recueille des mesures d'utilisation "
"**anonymes** afin de prendre des décisions éclairées pour améliorer "
"Flower. Cela permet à l'équipe de Flower de comprendre comment Flower est"
" utilisé et quels sont les défis auxquels les utilisateurs peuvent être "
"confrontés."

#: ../../source/ref-telemetry.md:5
msgid ""
"**Flower is a friendly framework for collaborative AI and data science.**"
" Staying true to this statement, Flower makes it easy to disable "
"telemetry for users that do not want to share anonymous usage metrics."
msgstr ""
"**Flower est un cadre convivial pour l'IA collaborative et la science des"
" données.** En restant fidèle à cette déclaration, Flower permet de "
"désactiver facilement la télémétrie pour les utilisateurs qui ne "
"souhaitent pas partager des mesures d'utilisation anonymes."

#: ../../source/ref-telemetry.md:7
msgid "Principles"
msgstr "Principes"

#: ../../source/ref-telemetry.md:9
msgid "We follow strong principles guarding anonymous usage metrics collection:"
msgstr ""
"Nous suivons des principes stricts concernant la collecte de données "
"anonymes sur l'utilisation :"

#: ../../source/ref-telemetry.md:11
msgid ""
"**Optional:** You will always be able to disable telemetry; read on to "
"learn “[How to opt-out](#how-to-opt-out)”."
msgstr ""
"**Optionnel:** Tu pourras toujours désactiver la télémétrie ; lis la "
"suite pour apprendre \"[Comment se désengager](#how-to-opt-out)\"."

#: ../../source/ref-telemetry.md:12
msgid ""
"**Anonymous:** The reported usage metrics are anonymous and do not "
"contain any personally identifiable information (PII). See “[Collected "
"metrics](#collected-metrics)” to understand what metrics are being "
"reported."
msgstr ""
"**Anonyme:** Les mesures d'utilisation rapportées sont anonymes et ne "
"contiennent aucune information personnelle identifiable (PII). Voir "
"\"[Collected metrics](#collected-metrics)\" pour comprendre quelles "
"mesures sont rapportées."

#: ../../source/ref-telemetry.md:13
msgid ""
"**Transparent:** You can easily inspect what anonymous metrics are being "
"reported; see the section “[How to inspect what is being reported](#how-"
"to-inspect-what-is-being-reported)”"
msgstr ""
"**Transparent:** Tu peux facilement inspecter les métriques anonymes qui "
"sont rapportées ; voir la section \"[Comment inspecter ce qui est "
"rapporté](#how-to-inspect-what-is-being-reported)\""

#: ../../source/ref-telemetry.md:14
#, fuzzy
msgid ""
"**Open for feedback:** You can always reach out to us if you have "
"feedback; see the section “[How to contact us](#how-to-contact-us)” for "
"details."
msgstr ""
"**Ouvert pour les commentaires:** Tu peux toujours nous contacter si tu "
"as des commentaires ; voir la section \"[Comment nous contacter ](#how-"
"to-contact-us)\" pour plus de détails."

#: ../../source/ref-telemetry.md:16
msgid "How to opt-out"
msgstr "Comment se désinscrire"

#: ../../source/ref-telemetry.md:18
msgid ""
"When Flower starts, it will check for an environment variable called "
"`FLWR_TELEMETRY_ENABLED`. Telemetry can easily be disabled by setting "
"`FLWR_TELEMETRY_ENABLED=0`. Assuming you are starting a Flower server or "
"client, simply do so by prepending your command as in:"
msgstr ""
"Lorsque Flower démarre, il vérifie la présence d'une variable "
"d'environnement appelée `FLWR_TELEMETRY_ENABLED`. La télémétrie peut "
"facilement être désactivée en réglant `FLWR_TELEMETRY_ENABLED=0`. En "
"supposant que tu démarres un serveur ou un client Flower, fais-le "
"simplement en faisant précéder ta commande de la façon suivante :"

#: ../../source/ref-telemetry.md:24
msgid ""
"Alternatively, you can export `FLWR_TELEMETRY_ENABLED=0` in, for example,"
" `.bashrc` (or whatever configuration file applies to your environment) "
"to disable Flower telemetry permanently."
msgstr ""
"Tu peux aussi exporter `FLWR_TELEMETRY_ENABLED=0` dans, par exemple, "
"`.bashrc` (ou tout autre fichier de configuration qui s'applique à ton "
"environnement) pour désactiver la télémétrie de la fleur de façon "
"permanente."

#: ../../source/ref-telemetry.md:26
msgid "Collected metrics"
msgstr "Mesures collectées"

#: ../../source/ref-telemetry.md:28
msgid "Flower telemetry collects the following metrics:"
msgstr "La télémétrie des fleurs recueille les métriques suivantes :"

#: ../../source/ref-telemetry.md:30
msgid ""
"**Flower version.** Understand which versions of Flower are currently "
"being used. This helps us to decide whether we should invest effort into "
"releasing a patch version for an older version of Flower or instead use "
"the bandwidth to build new features."
msgstr ""
"**Cela nous aide à décider si nous devons investir des efforts dans la "
"publication d'une version corrective pour une version plus ancienne de "
"Flower ou si nous devons plutôt utiliser la bande passante pour "
"développer de nouvelles fonctionnalités."

#: ../../source/ref-telemetry.md:32
msgid ""
"**Operating system.** Enables us to answer questions such as: *Should we "
"create more guides for Linux, macOS, or Windows?*"
msgstr ""
"**Système d'exploitation.** Nous permet de répondre à des questions "
"telles que : *Faudrait-il créer plus de guides pour Linux, macOS ou "
"Windows ?"

#: ../../source/ref-telemetry.md:34
msgid ""
"**Python version.** Knowing the Python version helps us, for example, to "
"decide whether we should invest effort into supporting old versions of "
"Python or stop supporting them and start taking advantage of new Python "
"features."
msgstr ""
"**Version de Python.** Connaître la version de Python nous aide, par "
"exemple, à décider si nous devons investir des efforts dans la prise en "
"charge des anciennes versions de Python ou cesser de les prendre en "
"charge et commencer à tirer parti des nouvelles fonctionnalités de "
"Python."

#: ../../source/ref-telemetry.md:36
msgid ""
"**Hardware properties.** Understanding the hardware environment that "
"Flower is being used in helps to decide whether we should, for example, "
"put more effort into supporting low-resource environments."
msgstr ""
"**Comprendre l'environnement matériel dans lequel Flower est utilisé "
"permet de décider si nous devrions, par exemple, faire plus d'efforts "
"pour prendre en charge les environnements à faibles ressources."

#: ../../source/ref-telemetry.md:38
msgid ""
"**Execution mode.** Knowing what execution mode Flower starts in enables "
"us to understand how heavily certain features are being used and better "
"prioritize based on that."
msgstr ""
"**Mode d'exécution** Connaître le mode d'exécution dans lequel Flower "
"démarre nous permet de comprendre à quel point certaines fonctionnalités "
"sont utilisées et de mieux établir les priorités en fonction de cela."

#: ../../source/ref-telemetry.md:40
msgid ""
"**Cluster.** Flower telemetry assigns a random in-memory cluster ID each "
"time a Flower workload starts. This allows us to understand which device "
"types not only start Flower workloads but also successfully complete "
"them."
msgstr ""
"**Cluster.** La télémétrie Flower attribue un ID de cluster en mémoire "
"aléatoire à chaque fois qu'une charge de travail Flower démarre. Cela "
"nous permet de comprendre quels types d'appareils non seulement démarrent"
" les charges de travail Flower, mais aussi les terminent avec succès."

#: ../../source/ref-telemetry.md:42
msgid ""
"**Source.** Flower telemetry tries to store a random source ID in "
"`~/.flwr/source` the first time a telemetry event is generated. The "
"source ID is important to identify whether an issue is recurring or "
"whether an issue is triggered by multiple clusters running concurrently "
"(which often happens in simulation). For example, if a device runs "
"multiple workloads at the same time, and this results in an issue, then, "
"in order to reproduce the issue, multiple workloads must be started at "
"the same time."
msgstr ""
"**Source.** La télémétrie de Flower essaie de stocker un ID de source "
"aléatoire dans `~/.flwr/source` la première fois qu'un événement de "
"télémétrie est généré. L'ID de source est important pour identifier si un"
" problème est récurrent ou si un problème est déclenché par plusieurs "
"clusters fonctionnant simultanément (ce qui arrive souvent en "
"simulation). Par exemple, si un périphérique exécute plusieurs charges de"
" travail en même temps, et que cela entraîne un problème, alors, afin de "
"reproduire le problème, plusieurs charges de travail doivent être "
"démarrées en même temps."

#: ../../source/ref-telemetry.md:44
msgid ""
"You may delete the source ID at any time. If you wish for all events "
"logged under a specific source ID to be deleted, you can send a deletion "
"request mentioning the source ID to `telemetry@flower.ai`. All events "
"related to that source ID will then be permanently deleted."
msgstr ""
"Tu peux supprimer l'identifiant de la source à tout moment. Si tu "
"souhaites que tous les événements enregistrés sous un identifiant de "
"source spécifique soient supprimés, tu peux envoyer une demande de "
"suppression mentionnant l'identifiant de source à `telemetry@flower.ai`. "
"Tous les événements liés à cet identifiant de source seront alors "
"définitivement supprimés."

#: ../../source/ref-telemetry.md:46
msgid ""
"We will not collect any personally identifiable information. If you think"
" any of the metrics collected could be misused in any way, please [get in"
" touch with us](#how-to-contact-us). We will update this page to reflect "
"any changes to the metrics collected and publish changes in the "
"changelog."
msgstr ""
"Nous ne collecterons aucune information personnelle identifiable. Si tu "
"penses que l'une des métriques collectées pourrait être utilisée à "
"mauvais escient de quelque manière que ce soit, merci de [nous "
"contacter](#commentnouscontacter). Nous mettrons à jour cette page pour "
"refléter toute modification des métriques collectées et nous publierons "
"les changements dans le journal des modifications (changelog)."

#: ../../source/ref-telemetry.md:48
msgid ""
"If you think other metrics would be helpful for us to better guide our "
"decisions, please let us know! We will carefully review them; if we are "
"confident that they do not compromise user privacy, we may add them."
msgstr ""
"Si tu penses que d'autres mesures nous seraient utiles pour mieux "
"orienter nos décisions, fais-le nous savoir ! Nous les examinerons "
"attentivement ; si nous sommes convaincus qu'elles ne compromettent pas "
"la vie privée des utilisateurs, nous pourrons les ajouter."

#: ../../source/ref-telemetry.md:50
msgid "How to inspect what is being reported"
msgstr "Comment inspecter ce qui est rapporté"

#: ../../source/ref-telemetry.md:52
msgid ""
"We wanted to make it very easy for you to inspect what anonymous usage "
"metrics are reported. You can view all the reported telemetry information"
" by setting the environment variable `FLWR_TELEMETRY_LOGGING=1`. Logging "
"is disabled by default. You may use logging independently from "
"`FLWR_TELEMETRY_ENABLED` so that you can inspect the telemetry feature "
"without sending any metrics."
msgstr ""
"Nous avons voulu qu'il soit très facile pour toi d'inspecter les mesures "
"d'utilisation anonymes qui sont rapportées. Tu peux voir toutes les "
"informations de télémétrie rapportées en définissant la variable "
"d'environnement `FLWR_TELEMETRY_LOGGING=1`. La journalisation est "
"désactivée par défaut. Tu peux utiliser la journalisation indépendamment "
"de `FLWR_TELEMETRY_ENABLED` afin d'inspecter la fonction de télémétrie "
"sans envoyer de mesures."

#: ../../source/ref-telemetry.md:58
msgid ""
"The inspect Flower telemetry without sending any anonymous usage metrics,"
" use both environment variables:"
msgstr ""
"L'inspecteur Flower telemetry sans envoyer de métriques d'utilisation "
"anonymes, utilise les deux variables d'environnement :"

#: ../../source/ref-telemetry.md:64
msgid "How to contact us"
msgstr "Comment nous contacter"

#: ../../source/ref-telemetry.md:66
msgid ""
"We want to hear from you. If you have any feedback or ideas on how to "
"improve the way we handle anonymous usage metrics, reach out to us via "
"[Slack](https://flower.ai/join-slack/) (channel `#telemetry`) or email "
"(`telemetry@flower.ai`)."
msgstr ""
"Si tu as des commentaires ou des idées pour améliorer la façon dont nous "
"traitons les mesures d'utilisation anonymes, contacte-nous via "
"[Slack](https://flower.ai/join-slack/) (canal `#telemetry`) ou par "
"courriel (`telemetry@flower.ai`)."

#: ../../source/tutorial-quickstart-android.rst:-1
msgid ""
"Read this Federated Learning quickstart tutorial for creating an Android "
"app using Flower."
msgstr ""

#: ../../source/tutorial-quickstart-android.rst:4
#, fuzzy
msgid "Quickstart Android"
msgstr "Démarrage rapide des Pandas"

#: ../../source/tutorial-quickstart-android.rst:11
msgid ""
"The experimental Flower Android SDK is not compatible with the latest "
"version of Flower. Android support is currently being reworked and will "
"be released in 2025."
msgstr ""

#: ../../source/tutorial-quickstart-android.rst:14
msgid ""
"This quickstart tutorial is kept for historical purposes and will be "
"updated once the new Android SDK is released."
msgstr ""

#: ../../source/tutorial-quickstart-android.rst:17
#, fuzzy
msgid ""
"Let's build a federated learning system using TFLite and Flower on "
"Android!"
msgstr ""
"Construisons un système d'apprentissage fédéré en utilisant fastai et "
"Flower !"

#: ../../source/tutorial-quickstart-android.rst:19
#, fuzzy
msgid ""
"Please refer to the `full code example "
"<https://github.com/adap/flower/tree/main/examples/android>`_ to learn "
"more."
msgstr ""
"Réfère-toi à l'exemple de code complet "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pandas>`_ "
"pour en savoir plus."

#: ../../source/tutorial-quickstart-fastai.rst:4
msgid "Quickstart fastai"
msgstr "Démarrage rapide fastai"

#: ../../source/tutorial-quickstart-fastai.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train a "
"SqueezeNet model on MNIST using Flower and fastai. It is recommended to "
"create a virtual environment and run everything within a :doc:`virtualenv"
" <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-fastai.rst:10
#: ../../source/tutorial-quickstart-pytorch-lightning.rst:11
msgid "Then, clone the code example directly from GitHub:"
msgstr ""

#: ../../source/tutorial-quickstart-fastai.rst:18
msgid ""
"This will create a new directory called `quickstart-fastai` containing "
"the following files:"
msgstr ""

#: ../../source/tutorial-quickstart-fastai.rst:31
#: ../../source/tutorial-quickstart-pytorch-lightning.rst:32
#, fuzzy
msgid "Next, activate your environment, then run:"
msgstr "et active l'environnement virtuel avec :"

#: ../../source/tutorial-quickstart-fastai.rst:41
msgid ""
"This example by default runs the Flower Simulation Engine, creating a "
"federation of 10 nodes using `FedAvg <https://flower.ai/docs/framework"
"/ref-api/flwr.server.strategy.FedAvg.html#flwr.server.strategy.FedAvg>`_ "
"as the aggregation strategy. The dataset will be partitioned using Flower"
" Dataset's `IidPartitioner <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_."
" Let's run the project:"
msgstr ""

#: ../../source/tutorial-quickstart-fastai.rst:54
#: ../../source/tutorial-quickstart-huggingface.rst:61
#: ../../source/tutorial-quickstart-jax.rst:60
#: ../../source/tutorial-quickstart-mlx.rst:60
#: ../../source/tutorial-quickstart-pytorch-lightning.rst:55
#: ../../source/tutorial-quickstart-pytorch.rst:62
#: ../../source/tutorial-quickstart-scikitlearn.rst:59
#: ../../source/tutorial-quickstart-tensorflow.rst:62
#: ../../source/tutorial-quickstart-xgboost.rst:492
msgid "With default arguments you will see an output like this one:"
msgstr ""

#: ../../source/tutorial-quickstart-fastai.rst:98
#: ../../source/tutorial-quickstart-huggingface.rst:112
#: ../../source/tutorial-quickstart-jax.rst:102
#: ../../source/tutorial-quickstart-pytorch-lightning.rst:105
#: ../../source/tutorial-quickstart-pytorch.rst:103
#: ../../source/tutorial-quickstart-scikitlearn.rst:101
#: ../../source/tutorial-quickstart-tensorflow.rst:103
#: ../../source/tutorial-quickstart-xgboost.rst:537
msgid ""
"You can also override the parameters defined in the "
"``[tool.flwr.app.config]`` section in ``pyproject.toml`` like this:"
msgstr ""

#: ../../source/tutorial-quickstart-fastai.rst:108
#, fuzzy
msgid ""
"Check the `source code <https://github.com/adap/flower/tree/main/examples"
"/quickstart-fastai>`_ of this tutorial in ``examples/quickstart-fasai`` "
"in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-huggingface.rst:-1
msgid ""
"Check out this Federating Learning quickstart tutorial for using Flower "
"with 🤗 HuggingFace Transformers in order to fine-tune an LLM."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:4
msgid "Quickstart 🤗 Transformers"
msgstr "Démarrage rapide 🤗 Transformateurs"

#: ../../source/tutorial-quickstart-huggingface.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train a large "
"language model (LLM) on the `IMDB "
"<https://huggingface.co/datasets/stanfordnlp/imdb>`_ dataset using Flower"
" and the 🤗 Hugging Face Transformers library. It is recommended to create"
" a virtual environment and run everything within a :doc:`virtualenv "
"<contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-huggingface.rst:12
msgid ""
"Let's use ``flwr new`` to create a complete Flower+🤗 Hugging Face "
"project. It will generate all the files needed to run, by default with "
"the Flower Simulation Engine, a federation of 10 nodes using |fedavg|_ "
"The dataset will be partitioned using |flowerdatasets|_'s "
"|iidpartitioner|_."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:17
#: ../../source/tutorial-quickstart-jax.rst:16
#: ../../source/tutorial-quickstart-mlx.rst:17
#: ../../source/tutorial-quickstart-pytorch.rst:18
#: ../../source/tutorial-quickstart-scikitlearn.rst:15
#: ../../source/tutorial-quickstart-tensorflow.rst:18
#, fuzzy
msgid ""
"Now that we have a rough idea of what this example is about, let's get "
"started. First, install Flower in your new environment:"
msgstr ""
"Maintenant que nous avons une idée approximative de ce qui se passe, "
"commençons. Nous devons d'abord installer Flower. Tu peux le faire en "
"lançant :"

#: ../../source/tutorial-quickstart-huggingface.rst:25
msgid ""
"Then, run the command below. You will be prompted to select one of the "
"available templates (choose ``HuggingFace``), give a name to your "
"project, and type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:33
#: ../../source/tutorial-quickstart-jax.rst:32
#: ../../source/tutorial-quickstart-mlx.rst:32
#: ../../source/tutorial-quickstart-pytorch.rst:34
#: ../../source/tutorial-quickstart-scikitlearn.rst:31
#: ../../source/tutorial-quickstart-tensorflow.rst:34
msgid ""
"After running it you'll notice a new directory with your project name has"
" been created. It should have the following structure:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:47
#: ../../source/tutorial-quickstart-jax.rst:46
#: ../../source/tutorial-quickstart-mlx.rst:46
#: ../../source/tutorial-quickstart-pytorch.rst:48
#: ../../source/tutorial-quickstart-scikitlearn.rst:45
#: ../../source/tutorial-quickstart-tensorflow.rst:48
msgid ""
"If you haven't yet installed the project and its dependencies, you can do"
" so by:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:54
#: ../../source/tutorial-quickstart-jax.rst:53
#: ../../source/tutorial-quickstart-pytorch.rst:55
#: ../../source/tutorial-quickstart-scikitlearn.rst:52
#: ../../source/tutorial-quickstart-tensorflow.rst:55
#: ../../source/tutorial-quickstart-xgboost.rst:485
msgid "To run the project, do:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:102
msgid "You can also run the project with GPU as follows:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:109
msgid ""
"This will use the default arguments where each ``ClientApp`` will use 2 "
"CPUs and at most 4 ``ClientApp``\\s will run in a given GPU."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:120
#: ../../source/tutorial-quickstart-jax.rst:110
#: ../../source/tutorial-quickstart-mlx.rst:110
#: ../../source/tutorial-quickstart-pytorch.rst:111
#: ../../source/tutorial-quickstart-scikitlearn.rst:109
msgid ""
"What follows is an explanation of each component in the project you just "
"created: dataset partition, the model, defining the ``ClientApp`` and "
"defining the ``ServerApp``."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:124
#: ../../source/tutorial-quickstart-jax.rst:114
#: ../../source/tutorial-quickstart-mlx.rst:114
#: ../../source/tutorial-quickstart-pytorch.rst:115
#: ../../source/tutorial-quickstart-scikitlearn.rst:113
#: ../../source/tutorial-quickstart-tensorflow.rst:112
#: ../../source/tutorial-quickstart-xgboost.rst:89
#, fuzzy
msgid "The Data"
msgstr "Chargement des données"

#: ../../source/tutorial-quickstart-huggingface.rst:126
msgid ""
"This tutorial uses |flowerdatasets|_ to easily download and partition the"
" `IMDB <https://huggingface.co/datasets/stanfordnlp/imdb>`_ dataset. In "
"this example you'll make use of the |iidpartitioner|_ to generate "
"``num_partitions`` partitions. You can choose |otherpartitioners|_ "
"available in Flower Datasets. To tokenize the text, we will also load the"
" tokenizer from the pre-trained Transformer model that we'll use during "
"training - more on that in the next section. Each ``ClientApp`` will call"
" this function to create dataloaders with the data that correspond to "
"their data partition."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:171
#: ../../source/tutorial-quickstart-jax.rst:128
#: ../../source/tutorial-quickstart-mlx.rst:155
#: ../../source/tutorial-quickstart-pytorch.rst:150
#: ../../source/tutorial-quickstart-scikitlearn.rst:138
#: ../../source/tutorial-quickstart-tensorflow.rst:139
#, fuzzy
msgid "The Model"
msgstr "Entraîne le modèle"

#: ../../source/tutorial-quickstart-huggingface.rst:173
#, fuzzy
msgid ""
"We will leverage 🤗 Hugging Face to federate the training of language "
"models over multiple clients using Flower. More specifically, we will "
"fine-tune a pre-trained Transformer model (|berttiny|_) for sequence "
"classification over the dataset of IMDB ratings. The end goal is to "
"detect if a movie rating is positive or negative. If you have access to "
"larger GPUs, feel free to use larger models!"
msgstr ""
"Nous nous appuierons sur Hugging Face pour fédérer l'entraînement de "
"modèles de langage sur plusieurs clients à l'aide de Flower. Plus "
"précisément, nous mettrons au point un modèle Transformer pré-entraîné "
"(distilBERT) pour la classification de séquences sur un ensemble de "
"données d'évaluations IMDB. L'objectif final est de détecter si "
"l'évaluation d'un film est positive ou négative."

#: ../../source/tutorial-quickstart-huggingface.rst:185
msgid ""
"Note that here, ``model_name`` is a string that will be loaded from the "
"``Context`` in the ClientApp and ServerApp."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:188
msgid ""
"In addition to loading the pretrained model weights and architecture, we "
"also include two utility functions to perform both training (i.e. "
"``train()``) and evaluation (i.e. ``test()``) using the above model. "
"These functions should look fairly familiar if you have some prior "
"experience with PyTorch. Note these functions do not have anything "
"specific to Flower. That being said, the training function will normally "
"be called, as we'll see later, from a Flower client passing its own data."
" In summary, your clients can use standard training/testing functions to "
"perform local training or evaluation:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:228
#: ../../source/tutorial-quickstart-jax.rst:170
#: ../../source/tutorial-quickstart-mlx.rst:199
#: ../../source/tutorial-quickstart-pytorch.rst:224
#: ../../source/tutorial-quickstart-scikitlearn.rst:157
#: ../../source/tutorial-quickstart-tensorflow.rst:168
#: ../../source/tutorial-quickstart-xgboost.rst:149
#, fuzzy
msgid "The ClientApp"
msgstr "client"

#: ../../source/tutorial-quickstart-huggingface.rst:230
msgid ""
"The main changes we have to make to use 🤗 Hugging Face with Flower will "
"be found in the ``get_weights()`` and ``set_weights()`` functions. Under "
"the hood, the ``transformers`` library uses PyTorch, which means we can "
"reuse the ``get_weights()`` and ``set_weights()`` code that we defined in"
" the :doc:`Quickstart PyTorch <tutorial-quickstart-pytorch>` tutorial. As"
" a reminder, in ``get_weights()``, PyTorch model parameters are extracted"
" and represented as a list of NumPy arrays. The ``set_weights()`` "
"function that's the opposite: given a list of NumPy arrays it applies "
"them to an existing PyTorch model. Doing this in fairly easy in PyTorch."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:241
#: ../../source/tutorial-quickstart-pytorch.rst:234
msgid ""
"The specific implementation of ``get_weights()`` and ``set_weights()`` "
"depends on the type of models you use. The ones shown below work for a "
"wide range of PyTorch models but you might need to adjust them if you "
"have more exotic model architectures."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:257
#: ../../source/tutorial-quickstart-jax.rst:197
#: ../../source/tutorial-quickstart-pytorch.rst:250
msgid ""
"The rest of the functionality is directly inspired by the centralized "
"case. The ``fit()`` method in the client trains the model using the local"
" dataset. Similarly, the ``evaluate()`` method is used to evaluate the "
"model received on a held-out validation set that the client might have:"
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:283
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that the "
"`context` enables you to get access to hyperparemeters defined in your "
"``pyproject.toml`` to configure the run. In this tutorial we access the "
"``local-epochs`` setting to control the number of epochs a ``ClientApp`` "
"will perform when running the ``fit()`` method. You could define "
"additional hyperparameters in ``pyproject.toml`` and access them here."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:316
#: ../../source/tutorial-quickstart-jax.rst:246
#: ../../source/tutorial-quickstart-mlx.rst:361
#: ../../source/tutorial-quickstart-pytorch.rst:307
#: ../../source/tutorial-quickstart-scikitlearn.rst:255
#: ../../source/tutorial-quickstart-tensorflow.rst:232
#: ../../source/tutorial-quickstart-xgboost.rst:269
#, fuzzy
msgid "The ServerApp"
msgstr "serveur"

#: ../../source/tutorial-quickstart-huggingface.rst:318
msgid ""
"To construct a ``ServerApp`` we define a ``server_fn()`` callback with an"
" identical signature to that of ``client_fn()`` but the return type is "
"|serverappcomponents|_ as opposed to a |client|_ In this example we use "
"the `FedAvg` strategy. To it we pass a randomly initialized model that "
"will server as the global model to federated. Note that the value of "
"``fraction_fit`` is read from the run config. You can find the default "
"value defined in the ``pyproject.toml``."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:356
msgid ""
"Congratulations! You've successfully built and run your first federated "
"learning system for an LLM."
msgstr ""

#: ../../source/tutorial-quickstart-huggingface.rst:361
msgid ""
"Check the source code of the extended version of this tutorial in "
"|quickstart_hf_link|_ in the Flower GitHub repository. For a "
"comprehensive example of a federated fine-tuning of an LLM with Flower, "
"refer to the |flowertune|_ example in the Flower GitHub repository."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:-1
msgid ""
"Read this Federated Learning quickstart tutorial for creating an iOS app "
"using Flower to train a neural network on MNIST."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:4
#, fuzzy
msgid "Quickstart iOS"
msgstr "Démarrage rapide XGBoost"

#: ../../source/tutorial-quickstart-ios.rst:11
msgid ""
"The experimental Flower iOS SDK is not compatible with the latest version"
" of Flower. iOS support is currently being reworked and will be released "
"in 2025."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:14
msgid ""
"This quickstart tutorial is kept for historical purposes and will be "
"updated once the new iOS SDK is released."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:17
#, fuzzy
msgid ""
"In this tutorial we will learn how to train a Neural Network on MNIST "
"using Flower and CoreML on iOS devices."
msgstr ""
"Dans ce tutoriel, nous allons apprendre, comment former un réseau "
"neuronal convolutif sur MNIST en utilisant Flower et PyTorch."

#: ../../source/tutorial-quickstart-ios.rst:20
#, fuzzy
msgid ""
"First of all, for running the Flower Python server, it is recommended to "
"create a virtual environment and run everything within a :doc:`virtualenv"
" <contributor-how-to-set-up-a-virtual-env>`. For the Flower client "
"implementation in iOS, it is recommended to use Xcode as our IDE."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-ios.rst:25
#, fuzzy
msgid ""
"Our example consists of one Python *server* and two iPhone *clients* that"
" all have the same model."
msgstr ""
"Notre exemple consiste en un *serveur* et deux *clients* ayant tous le "
"même modèle."

#: ../../source/tutorial-quickstart-ios.rst:28
#, fuzzy
msgid ""
"*Clients* are responsible for generating individual weight updates for "
"the model based on their local datasets. These updates are then sent to "
"the *server* which will aggregate them to produce a better model. "
"Finally, the *server* sends this improved version of the model back to "
"each *client*. A complete cycle of weight updates is called a *round*."
msgstr ""
"*Les clients* sont chargés de générer des mises à jour de poids "
"individuelles pour le modèle en fonction de leurs ensembles de données "
"locales. Ces mises à jour sont ensuite envoyées au *serveur* qui les "
"agrège pour produire un meilleur modèle. Enfin, le *serveur* renvoie "
"cette version améliorée du modèle à chaque *client*. Un cycle complet de "
"mises à jour de poids s'appelle un *round*."

#: ../../source/tutorial-quickstart-ios.rst:34
#, fuzzy
msgid ""
"Now that we have a rough idea of what is going on, let's get started to "
"setup our Flower server environment. We first need to install Flower. You"
" can do this by using pip:"
msgstr ""
"Maintenant que nous avons une idée générale de ce qui se passe, "
"commençons. Nous devons d'abord installer Flower. Tu peux le faire en "
"exécutant :"

#: ../../source/tutorial-quickstart-ios.rst:41
msgid "Or Poetry:"
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:48
msgid "Flower Client"
msgstr "Client de la fleur"

#: ../../source/tutorial-quickstart-ios.rst:50
msgid ""
"Now that we have all our dependencies installed, let's run a simple "
"distributed training using CoreML as our local training pipeline and "
"MNIST as our dataset. For simplicity reasons we will use the complete "
"Flower client with CoreML, that has been implemented and stored inside "
"the Swift SDK. The client implementation can be seen below:"
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:88
msgid ""
"Let's create a new application project in Xcode and add ``flwr`` as a "
"dependency in your project. For our application, we will store the logic "
"of our app in ``FLiOSModel.swift`` and the UI elements in "
"``ContentView.swift``. We will focus more on ``FLiOSModel.swift`` in this"
" quickstart. Please refer to the `full code example "
"<https://github.com/adap/flower/tree/main/examples/ios>`_ to learn more "
"about the app."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:94
msgid "Import Flower and CoreML related packages in ``FLiOSModel.swift``:"
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:102
msgid ""
"Then add the mlmodel to the project simply by drag-and-drop, the mlmodel "
"will be bundled inside the application during deployment to your iOS "
"device. We need to pass the url to access mlmodel and run CoreML machine "
"learning processes, it can be retrieved by calling the function "
"``Bundle.main.url``. For the MNIST dataset, we need to preprocess it into"
" ``MLBatchProvider`` object. The preprocessing is done inside "
"``DataLoader.swift``."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:120
msgid ""
"Since CoreML does not allow the model parameters to be seen before "
"training, and accessing the model parameters during or after the training"
" can only be done by specifying the layer name, we need to know this "
"information beforehand, through looking at the model specification, which"
" are written as proto files. The implementation can be seen in "
"``MLModelInspect``."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:126
msgid ""
"After we have all of the necessary information, let's create our Flower "
"client."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:141
msgid ""
"Then start the Flower gRPC client and start communicating to the server "
"by passing our Flower client to the function ``startFlwrGRPC``."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:149
msgid ""
"That's it for the client. We only have to implement ``Client`` or call "
"the provided ``MLFlwrClient`` and call ``startFlwrGRPC()``. The attribute"
" ``hostname`` and ``port`` tells the client which server to connect to. "
"This can be done by entering the hostname and port in the application "
"before clicking the start button to start the federated learning process."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:156
msgid "Flower Server"
msgstr "Serveur de Flower"

#: ../../source/tutorial-quickstart-ios.rst:158
#, fuzzy
msgid ""
"For simple workloads we can start a Flower server and leave all the "
"configuration possibilities at their default values. In a file named "
"``server.py``, import Flower and start the server:"
msgstr ""
"Pour les charges de travail simples, nous pouvons démarrer un serveur "
"Flower et laisser toutes les possibilités de configuration à leurs "
"valeurs par défaut. Dans un fichier nommé :code:`server.py`, importe "
"Flower et démarre le serveur :"

#: ../../source/tutorial-quickstart-ios.rst:169
msgid "Train the model, federated!"
msgstr "Entraîne le modèle, fédéré !"

#: ../../source/tutorial-quickstart-ios.rst:171
msgid ""
"With both client and server ready, we can now run everything and see "
"federated learning in action. FL systems usually have a server and "
"multiple clients. We therefore have to start the server first:"
msgstr ""
"Le client et le serveur étant prêts, nous pouvons maintenant tout "
"exécuter et voir l'apprentissage fédéré en action. Les systèmes FL ont "
"généralement un serveur et plusieurs clients. Nous devons donc commencer "
"par démarrer le serveur :"

#: ../../source/tutorial-quickstart-ios.rst:179
msgid ""
"Once the server is running we can start the clients in different "
"terminals. Build and run the client through your Xcode, one through Xcode"
" Simulator and the other by deploying it to your iPhone. To see more "
"about how to deploy your app to iPhone or Simulator visit `here "
"<https://developer.apple.com/documentation/xcode/running-your-app-in-"
"simulator-or-on-a-device>`_."
msgstr ""

#: ../../source/tutorial-quickstart-ios.rst:185
#, fuzzy
msgid ""
"Congratulations! You've successfully built and run your first federated "
"learning system in your ios device. The full `source code "
"<https://github.com/adap/flower/blob/main/examples/ios>`_ for this "
"example can be found in ``examples/ios``."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-jax.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with Jax to train a linear regression model on a scikit-learn dataset."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:4
msgid "Quickstart JAX"
msgstr "Démarrage rapide de JAX"

#: ../../source/tutorial-quickstart-jax.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train a linear "
"regression model using Flower and `JAX "
"<https://jax.readthedocs.io/en/latest/>`_. It is recommended to create a "
"virtual environment and run everything within a :doc:`virtualenv "
"<contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-jax.rst:11
msgid ""
"Let's use ``flwr new`` to create a complete Flower+JAX project. It will "
"generate all the files needed to run, by default with the Flower "
"Simulation Engine, a federation of 10 nodes using |fedavg|_. A random "
"regression dataset will be loaded from scikit-learn's |makeregression|_ "
"function."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:24
msgid ""
"Then, run the command below. You will be prompted to select one of the "
"available templates (choose ``JAX``), give a name to your project, and "
"type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:116
msgid ""
"This tutorial uses scikit-learn's |makeregression|_ function to generate "
"a random regression problem."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:130
msgid ""
"We defined a simple linear regression model to demonstrate how to create "
"a JAX model, but feel free to replace it with a more sophisticated JAX "
"model if you'd like, (such as with NN-based `Flax "
"<https://flax.readthedocs.io/en/latest/index.html>`_):"
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:141
msgid ""
"In addition to defining the model architecture, we also include two "
"utility functions to perform both training (i.e. ``train()``) and "
"evaluation (i.e. ``evaluation()``) using the above model."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:172
msgid ""
"The main changes we have to make to use JAX with Flower will be found in "
"the ``get_params()`` and ``set_params()`` functions. In ``get_params()``,"
" JAX model parameters are extracted and represented as a list of NumPy "
"arrays. The ``set_params()`` function is the opposite: given a list of "
"NumPy arrays it applies them to an existing JAX model."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:180
msgid ""
"The ``get_params()`` and ``set_params()`` functions here are conceptually"
" similar to the ``get_weights()`` and ``set_weights()`` functions that we"
" defined in the :doc:`QuickStart PyTorch <tutorial-quickstart-pytorch>` "
"tutorial."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:227
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that the "
"`context` enables you to get access to hyperparemeters defined in your "
"``pyproject.toml`` to configure the run. In this tutorial we access the "
"``local-epochs`` setting to control the number of epochs a ``ClientApp`` "
"will perform when running the ``fit()`` method. You could define "
"additioinal hyperparameters in ``pyproject.toml`` and access them here."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:248
msgid ""
"To construct a ``ServerApp`` we define a ``server_fn()`` callback with an"
" identical signature to that of ``client_fn()`` but the return type is "
"|serverappcomponents|_ as opposed to a |client|_ In this example we use "
"the ``FedAvg`` strategy. To it we pass a randomly initialized model that "
"will server as the global model to federated. Note that the value of "
"``input_dim`` is read from the run config. You can find the default value"
" defined in the ``pyproject.toml``."
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:276
msgid ""
"Congratulations! You've successfully built and run your first federated "
"learning system for JAX with Flower!"
msgstr ""

#: ../../source/tutorial-quickstart-jax.rst:281
#, fuzzy
msgid ""
"Check the source code of the extended version of this tutorial in "
"|quickstart_jax_link|_ in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-mlx.rst:4
#, fuzzy
msgid "Quickstart MLX"
msgstr "Démarrage rapide de JAX"

#: ../../source/tutorial-quickstart-mlx.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train simple MLP"
" on MNIST using Flower and MLX. It is recommended to create a virtual "
"environment and run everything within a :doc:`virtualenv <contributor-"
"how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-mlx.rst:10
msgid ""
"Let's use `flwr new` to create a complete Flower+MLX project. It will "
"generate all the files needed to run, by default with the Simulation "
"Engine, a federation of 10 nodes using `FedAvg "
"<https://flower.ai/docs/framework/ref-"
"api/flwr.server.strategy.FedAvg.html#flwr.server.strategy.FedAvg>`_. The "
"dataset will be partitioned using Flower Dataset's `IidPartitioner "
"<https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:25
msgid ""
"Then, run the command below. You will be prompted to select of the "
"available templates (choose ``MLX``), give a name to your project, and "
"type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:53
msgid "To run the project do:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:102
msgid ""
"You can also override the parameters defined in "
"``[tool.flwr.app.config]`` section in the ``pyproject.toml`` like this:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:116
msgid ""
"We will use `Flower Datasets <https://flower.ai/docs/datasets/>`_ to "
"easily download and partition the `MNIST` dataset. In this example you'll"
" make use of the `IidPartitioner <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_"
" to generate `num_partitions` partitions. You can choose `other "
"partitioners <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.html>`_ available in Flower Datasets:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:157
msgid ""
"We define the model as in the `centralized MLX example "
"<https://github.com/ml-explore/mlx-examples/tree/main/mnist>`_, it's a "
"simple MLP:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:180
msgid ""
"We also define some utility functions to test our model and to iterate "
"over batches."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:201
msgid ""
"The main changes we have to make to use `MLX` with `Flower` will be found"
" in the ``get_params()`` and ``set_params()`` functions. Indeed, MLX "
"doesn't provide an easy way to convert the model parameters into a list "
"of ``np.array`` objects (the format we need for the serialization of the "
"messages to work)."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:206
msgid "The way MLX stores its parameters is as follows:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:219
msgid ""
"Therefore, to get our list of ``np.array`` objects, we need to extract "
"each array and convert them into a NumPy array:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:228
msgid ""
"For the ``set_params()`` function, we perform the reverse operation. We "
"receive a list of NumPy arrays and want to convert them into MLX "
"parameters. Therefore, we iterate through pairs of parameters and assign "
"them to the `weight` and `bias` keys of each layer dict:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:243
msgid ""
"The rest of the functionality is directly inspired by the centralized "
"case. The ``fit()`` method in the client trains the model using the local"
" dataset:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:259
msgid ""
"Here, after updating the parameters, we perform the training as in the "
"centralized case, and return the new parameters."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:262
msgid "And for the ``evaluate()`` method of the client:"
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:272
msgid ""
"We also begin by updating the parameters with the ones sent by the "
"server, and then we compute the loss and accuracy using the functions "
"defined above. In the constructor of the ``FlowerClient`` we instantiate "
"the `MLP` model as well as other components such as the optimizer."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:277
#, fuzzy
msgid "Putting everything together we have:"
msgstr "Tout assembler"

#: ../../source/tutorial-quickstart-mlx.rst:331
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that "
"``context`` enables you to get access to hyperparemeters defined in "
"``pyproject.toml`` to configure the run. In this tutorial we access, "
"among other hyperparameters, the ``local-epochs`` setting to control the "
"number of epochs a ``ClientApp`` will perform when running the ``fit()`` "
"method."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:363
msgid ""
"To construct a ``ServerApp``, we define a ``server_fn()`` callback with "
"an identical signature to that of ``client_fn()``, but the return type is"
" `ServerAppComponents <https://flower.ai/docs/framework/ref-"
"api/flwr.server.ServerAppComponents.html#serverappcomponents>`_ as "
"opposed to `Client <https://flower.ai/docs/framework/ref-"
"api/flwr.client.Client.html#client>`_. In this example we use the "
"``FedAvg`` strategy."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:386
#: ../../source/tutorial-quickstart-pytorch.rst:344
#: ../../source/tutorial-quickstart-tensorflow.rst:266
msgid ""
"Congratulations! You've successfully built and run your first federated "
"learning system."
msgstr ""

#: ../../source/tutorial-quickstart-mlx.rst:390
#, fuzzy
msgid ""
"Check the `source code <https://github.com/adap/flower/blob/main/examples"
"/quickstart-mlx>`_ of the extended version of this tutorial in ``examples"
"/quickstart-mlx`` in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-pandas.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with Pandas to perform Federated Analytics."
msgstr ""

#: ../../source/tutorial-quickstart-pandas.rst:4
msgid "Quickstart Pandas"
msgstr "Démarrage rapide des Pandas"

#: ../../source/tutorial-quickstart-pandas.rst:9
msgid "Let's build a federated analytics system using Pandas and Flower!"
msgstr "Construisons un système d'analyse fédéré à l'aide de Pandas et de Flower !"

#: ../../source/tutorial-quickstart-pandas.rst:11
#, fuzzy
msgid ""
"Please refer to the `full code example "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pandas>`_ "
"to learn more."
msgstr ""
"Réfère-toi à l'exemple de code complet "
"<https://github.com/adap/flower/tree/main/examples/quickstart-pandas>`_ "
"pour en savoir plus."

#: ../../source/tutorial-quickstart-pytorch.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with PyTorch to train a CNN model on MNIST."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train a "
"Convolutional Neural Network on CIFAR-10 using Flower and PyTorch. It is "
"recommended to create a virtual environment and run everything within a "
":doc:`virtualenv <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-pytorch.rst:11
msgid ""
"Let's use `flwr new` to create a complete Flower+PyTorch project. It will"
" generate all the files needed to run, by default with the Flower "
"Simulation Engine, a federation of 10 nodes using `FedAvg "
"<https://flower.ai/docs/framework/ref-"
"api/flwr.server.strategy.FedAvg.html#flwr.server.strategy.FedAvg>`_. The "
"dataset will be partitioned using Flower Dataset's `IidPartitioner "
"<https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:26
msgid ""
"Then, run the command below. You will be prompted to select one of the "
"available templates (choose ``PyTorch``), give a name to your project, "
"and type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:117
msgid ""
"This tutorial uses `Flower Datasets <https://flower.ai/docs/datasets/>`_ "
"to easily download and partition the `CIFAR-10` dataset. In this example "
"you'll make use of the `IidPartitioner <https://flower.ai/docs/datasets"
"/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_"
" to generate `num_partitions` partitions. You can choose `other "
"partitioners <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.html>`_ available in Flower Datasets. Each "
"``ClientApp`` will call this function to create dataloaders with the data"
" that correspond to their data partition."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:152
msgid ""
"We defined a simple Convolutional Neural Network (CNN), but feel free to "
"replace it with a more sophisticated model if you'd like:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:177
msgid ""
"In addition to defining the model architecture, we also include two "
"utility functions to perform both training (i.e. ``train()``) and "
"evaluation (i.e. ``test()``) using the above model. These functions "
"should look fairly familiar if you have some prior experience with "
"PyTorch. Note these functions do not have anything specific to Flower. "
"That being said, the training function will normally be called, as we'll "
"see later, from a Flower client passing its own data. In summary, your "
"clients can use standard training/testing functions to perform local "
"training or evaluation:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:226
msgid ""
"The main changes we have to make to use `PyTorch` with `Flower` will be "
"found in the ``get_weights()`` and ``set_weights()`` functions. In "
"``get_weights()`` PyTorch model parameters are extracted and represented "
"as a list of NumPy arrays. The ``set_weights()`` function that's the "
"oposite: given a list of NumPy arrays it applies them to an existing "
"PyTorch model. Doing this in fairly easy in PyTorch."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:282
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that the "
"`context` enables you to get access to hyperparemeters defined in your "
"``pyproject.toml`` to configure the run. In this tutorial we access the "
"`local-epochs` setting to control the number of epochs a ``ClientApp`` "
"will perform when running the ``fit()`` method. You could define "
"additioinal hyperparameters in ``pyproject.toml`` and access them here."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:309
msgid ""
"To construct a ``ServerApp`` we define a ``server_fn()`` callback with an"
" identical signature to that of ``client_fn()`` but the return type is "
"`ServerAppComponents <https://flower.ai/docs/framework/ref-"
"api/flwr.server.ServerAppComponents.html#serverappcomponents>`_ as "
"opposed to a `Client <https://flower.ai/docs/framework/ref-"
"api/flwr.client.Client.html#client>`_. In this example we use the "
"`FedAvg`. To it we pass a randomly initialized model that will server as "
"the global model to federated. Note that the value of ``fraction_fit`` is"
" read from the run config. You can find the default value defined in the "
"``pyproject.toml``."
msgstr ""

#: ../../source/tutorial-quickstart-pytorch.rst:348
#, fuzzy
msgid ""
"Check the `source code <https://github.com/adap/flower/blob/main/examples"
"/quickstart-pytorch>`_ of the extended version of this tutorial in "
"``examples/quickstart-pytorch`` in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-pytorch.rst:354
#: ../../source/tutorial-quickstart-tensorflow.rst:278
#, fuzzy
msgid "Video tutorial"
msgstr "Tutoriel"

#: ../../source/tutorial-quickstart-pytorch.rst:358
msgid ""
"The video shown below shows how to setup a PyTorch + Flower project using"
" our previously recommended APIs. A new video tutorial will be released "
"that shows the new APIs (as the content above does)"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:4
msgid "Quickstart PyTorch Lightning"
msgstr "Démarrage rapide de PyTorch Lightning"

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train an "
"AutoEncoder model on MNIST using Flower and PyTorch Lightning. It is "
"recommended to create a virtual environment and run everything within a "
":doc:`virtualenv <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:19
msgid ""
"This will create a new directory called `quickstart-pytorch-lightning` "
"containing the following files:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:42
msgid ""
"By default, Flower Simulation Engine will be started and it will create a"
" federation of 4 nodes using `FedAvg <https://flower.ai/docs/framework"
"/ref-api/flwr.server.strategy.FedAvg.html#flwr.server.strategy.FedAvg>`_ "
"as the aggregation strategy. The dataset will be partitioned using Flower"
" Dataset's `IidPartitioner <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_."
" To run the project, do:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:93
msgid ""
"Each simulated `ClientApp` (two per round) will also log a summary of "
"their local training process. Expect this output to be similar to:"
msgstr ""

#: ../../source/tutorial-quickstart-pytorch-lightning.rst:115
#, fuzzy
msgid ""
"Check the `source code <https://github.com/adap/flower/tree/main/examples"
"/quickstart-pytorch-lightning>`_ of this tutorial in ``examples"
"/quickstart-pytorch-lightning`` in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-scikitlearn.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with scikit-learn to train a linear regression model."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:4
msgid "Quickstart scikit-learn"
msgstr "Démarrage rapide de scikit-learn"

#: ../../source/tutorial-quickstart-scikitlearn.rst:6
#, fuzzy
msgid ""
"In this federated learning tutorial we will learn how to train a Logistic"
" Regression on MNIST using Flower and scikit-learn. It is recommended to "
"create a virtual environment and run everything within a :doc:`virtualenv"
" <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-scikitlearn.rst:10
msgid ""
"Let's use ``flwr new`` to create a complete Flower+scikit-learn project. "
"It will generate all the files needed to run, by default with the Flower "
"Simulation Engine, a federation of 10 nodes using |fedavg|_ The dataset "
"will be partitioned using |flowerdatasets|_'s |iidpartitioner|_"
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:23
msgid ""
"Then, run the command below. You will be prompted to select one of the "
"available templates (choose ``sklearn``), give a name to your project, "
"and type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:115
msgid ""
"This tutorial uses |flowerdatasets|_ to easily download and partition the"
" `MNIST <https://huggingface.co/datasets/ylecun/mnist>`_ dataset. In this"
" example you'll make use of the |iidpartitioner|_ to generate "
"``num_partitions`` partitions. You can choose |otherpartitioners|_ "
"available in Flower Datasets. Each ``ClientApp`` will call this function "
"to create dataloaders with the data that correspond to their data "
"partition."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:140
msgid ""
"We define the |logisticregression|_ model from scikit-learn in the "
"``get_model()`` function:"
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:153
msgid ""
"To perform the training and evaluation, we will make use of the "
"``.fit()`` and ``.score()`` methods available in the "
"``LogisticRegression`` class."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:159
msgid ""
"The main changes we have to make to use scikit-learn with Flower will be "
"found in the ``get_model_params()``, ``set_model_params()``, and "
"``set_initial_params()`` functions. In ``get_model_params()``, the "
"coefficients and intercept of the logistic regression model are extracted"
" and represented as a list of NumPy arrays. In ``set_model_params()``, "
"that's the opposite: given a list of NumPy arrays it applies them to an "
"existing ``LogisticRegression`` model. Finally, in "
"``set_initial_params()``, we initialize the model parameters based on the"
" MNIST dataset, which has 10 classes (corresponding to the 10 digits) and"
" 784 features (corresponding to the size of the MNIST image array, which "
"is 28 × 28). Doing this is fairly easy in scikit-learn."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:198
msgid ""
"The rest of the functionality is directly inspired by the centralized "
"case:"
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:226
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that the "
"``context`` enables you to get access to hyperparemeters defined in your "
"``pyproject.toml`` to configure the run. In this tutorial we access the "
"`local-epochs` setting to control the number of epochs a ``ClientApp`` "
"will perform when running the ``fit()`` method. You could define "
"additioinal hyperparameters in ``pyproject.toml`` and access them here."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:257
msgid ""
"To construct a ``ServerApp`` we define a ``server_fn()`` callback with an"
" identical signature to that of ``client_fn()`` but the return type is "
"|serverappcomponents|_ as opposed to a |client|_ In this example we use "
"the `FedAvg` strategy. To it we pass a zero-initialized model that will "
"server as the global model to be federated. Note that the values of "
"``num-server-rounds``, ``penalty``, and ``local-epochs`` are read from "
"the run config. You can find the default values defined in the "
"``pyproject.toml``."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:295
msgid ""
"Congratulations! You've successfully built and run your first federated "
"learning system in scikit-learn."
msgstr ""

#: ../../source/tutorial-quickstart-scikitlearn.rst:300
#, fuzzy
msgid ""
"Check the source code of the extended version of this tutorial in "
"|quickstart_sklearn_link|_ in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-tensorflow.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with TensorFlow to train a CNN model on CIFAR-10."
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:4
msgid "Quickstart TensorFlow"
msgstr "Démarrage rapide de TensorFlow"

#: ../../source/tutorial-quickstart-tensorflow.rst:6
#, fuzzy
msgid ""
"In this tutorial we will learn how to train a Convolutional Neural "
"Network on CIFAR-10 using the Flower framework and TensorFlow. First of "
"all, it is recommended to create a virtual environment and run everything"
" within a :doc:`virtualenv <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Tout d'abord, il est recommandé de créer un environnement virtuel et de "
"tout exécuter au sein d'un `virtualenv <https://flower.ai/docs"
"/recommended-env-setup.html>`_."

#: ../../source/tutorial-quickstart-tensorflow.rst:11
msgid ""
"Let's use `flwr new` to create a complete Flower+TensorFlow project. It "
"will generate all the files needed to run, by default with the Flower "
"Simulation Engine, a federation of 10 nodes using `FedAvg "
"<https://flower.ai/docs/framework/ref-"
"api/flwr.server.strategy.FedAvg.html#flwr.server.strategy.FedAvg>`_. The "
"dataset will be partitioned using Flower Dataset's `IidPartitioner "
"<https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_."
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:26
msgid ""
"Then, run the command below. You will be prompted to select one of the "
"available templates (choose ``TensorFlow``), give a name to your project,"
" and type in your developer name:"
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:114
msgid ""
"This tutorial uses `Flower Datasets <https://flower.ai/docs/datasets/>`_ "
"to easily download and partition the `CIFAR-10` dataset. In this example "
"you'll make use of the `IidPartitioner <https://flower.ai/docs/datasets"
"/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_"
" to generate `num_partitions` partitions. You can choose `other "
"partitioners <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.html>`_ available in Flower Datasets. Each "
"``ClientApp`` will call this function to create the ``NumPy`` arrays that"
" correspond to their data partition."
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:141
msgid ""
"Next, we need a model. We defined a simple Convolutional Neural Network "
"(CNN), but feel free to replace it with a more sophisticated model if "
"you'd like:"
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:170
msgid ""
"With `TensorFlow`, we can use the built-in ``get_weights()`` and "
"``set_weights()`` functions, which simplifies the implementation with "
"`Flower`. The rest of the functionality in the ClientApp is directly "
"inspired by the centralized case. The ``fit()`` method in the client "
"trains the model using the local dataset. Similarly, the ``evaluate()`` "
"method is used to evaluate the model received on a held-out validation "
"set that the client might have:"
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:203
msgid ""
"Finally, we can construct a ``ClientApp`` using the ``FlowerClient`` "
"defined above by means of a ``client_fn()`` callback. Note that the "
"`context` enables you to get access to hyperparameters defined in your "
"``pyproject.toml`` to configure the run. For example, in this tutorial we"
" access the `local-epochs` setting to control the number of epochs a "
"``ClientApp`` will perform when running the ``fit()`` method, in addition"
" to `batch-size`. You could define additional hyperparameters in "
"``pyproject.toml`` and access them here."
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:234
msgid ""
"To construct a ``ServerApp`` we define a ``server_fn()`` callback with an"
" identical signature to that of ``client_fn()`` but the return type is "
"`ServerAppComponents <https://flower.ai/docs/framework/ref-"
"api/flwr.server.ServerAppComponents.html#serverappcomponents>`_ as "
"opposed to a `Client <https://flower.ai/docs/framework/ref-"
"api/flwr.client.Client.html#client>`_. In this example we use the "
"`FedAvg`. To it we pass a randomly initialized model that will serve as "
"the global model to federate."
msgstr ""

#: ../../source/tutorial-quickstart-tensorflow.rst:270
#, fuzzy
msgid ""
"Check the source code of the extended version of this tutorial in "
"|quickstart_tf_link|_ in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-tensorflow.rst:282
msgid ""
"The video shown below shows how to setup a TensorFlow + Flower project "
"using our previously recommended APIs. A new video tutorial will be "
"released that shows the new APIs (as the content above does)"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:-1
msgid ""
"Check out this Federated Learning quickstart tutorial for using Flower "
"with XGBoost to train classification models on trees."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:4
msgid "Quickstart XGBoost"
msgstr "Démarrage rapide XGBoost"

#: ../../source/tutorial-quickstart-xgboost.rst:9
msgid ""
"EXtreme Gradient Boosting (**XGBoost**) is a robust and efficient "
"implementation of gradient-boosted decision tree (**GBDT**), that "
"maximises the computational boundaries for boosted tree methods. It's "
"primarily designed to enhance both the performance and computational "
"speed of machine learning models. In XGBoost, trees are constructed "
"concurrently, unlike the sequential approach taken by GBDT."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:15
msgid ""
"Often, for tabular data on medium-sized datasets with fewer than 10k "
"training examples, XGBoost surpasses the results of deep learning "
"techniques."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:19
#, fuzzy
msgid "Why Federated XGBoost?"
msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#: ../../source/tutorial-quickstart-xgboost.rst:21
msgid ""
"As the demand for data privacy and decentralized learning grows, there's "
"an increasing requirement to implement federated XGBoost systems for "
"specialised applications, like survival analysis and financial fraud "
"detection."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:25
msgid ""
"Federated learning ensures that raw data remains on the local device, "
"making it an attractive approach for sensitive domains where data privacy"
" is paramount. Given the robustness and efficiency of XGBoost, combining "
"it with federated learning offers a promising solution for these specific"
" challenges."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:31
msgid "Environment Setup"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:33
msgid ""
"In this tutorial, we learn how to train a federated XGBoost model on the "
"HIGGS dataset using Flower and the ``xgboost`` package to perform a "
"binary classification task. We use a simple example (`full code xgboost-"
"quickstart <https://github.com/adap/flower/tree/main/examples/xgboost-"
"quickstart>`_) to demonstrate how federated XGBoost works, and then we "
"dive into a more complex comprehensive example (`full code xgboost-"
"comprehensive <https://github.com/adap/flower/tree/main/examples/xgboost-"
"comprehensive>`_) to run various experiments."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:42
#, fuzzy
msgid ""
"It is recommended to create a virtual environment and run everything "
"within a :doc:`virtualenv <contributor-how-to-set-up-a-virtual-env>`."
msgstr ""
"Il est recommandé de créer un environnement virtuel et de tout exécuter "
"dans ce `virtualenv <https://flower.ai/docs/recommended-env-"
"setup.html>`_."

#: ../../source/tutorial-quickstart-xgboost.rst:45
msgid ""
"We first need to install Flower and Flower Datasets. You can do this by "
"running :"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:52
#, fuzzy
msgid ""
"Since we want to use ``xgboost`` package to build up XGBoost trees, let's"
" go ahead and install ``xgboost``:"
msgstr "Puisque nous voulons utiliser scikt-learn, allons-y et installons-le :"

#: ../../source/tutorial-quickstart-xgboost.rst:60
#, fuzzy
msgid "The Configurations"
msgstr "Valeurs de configuration"

#: ../../source/tutorial-quickstart-xgboost.rst:62
msgid ""
"We define all required configurations / hyper-parameters inside the "
"``pyproject.toml`` file:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:84
msgid ""
"The ``local-epochs`` represents the number of iterations for local tree "
"boost. We use CPU for the training in default. One can assign it to a GPU"
" by setting ``tree_method`` to ``gpu_hist``. We use AUC as evaluation "
"metric."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:91
msgid ""
"This tutorial uses `Flower Datasets <https://flower.ai/docs/datasets/>`_ "
"to easily download and partition the `HIGGS` dataset."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:105
msgid ""
"In this example, we split the dataset into 20 partitions with uniform "
"distribution (`IidPartitioner <https://flower.ai/docs/datasets/ref-"
"api/flwr_datasets.partitioner.IidPartitioner.html#flwr_datasets.partitioner.IidPartitioner>`_)."
" Then, we load the partition for the given client based on "
"``partition_id``."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:110
msgid ""
"Subsequently, we train/test split using the given partition (client's "
"local data), and reformat data to DMatrix for the ``xgboost`` package."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:124
msgid ""
"The functions of ``train_test_split`` and "
"``transform_dataset_to_dmatrix`` are defined as below:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:151
msgid ""
"*Clients* are responsible for generating individual weight-updates for "
"the model based on their local datasets. Let's first see how we define "
"Flower client for XGBoost. We follow the general rule to define "
"``FlowerClient`` class inherited from ``fl.client.Client``."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:176
msgid ""
"All required parameters defined above are passed to ``FlowerClient``'s "
"constructor."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:178
msgid ""
"Then, we override ``fit`` and ``evaluate`` methods insides "
"``FlowerClient`` class as follows."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:217
msgid ""
"In ``fit``, at the first round, we call ``xgb.train()`` to build up the "
"first set of trees. From the second round, we load the global model sent "
"from server to new build Booster object, and then update model weights on"
" local training data with function ``_local_boost`` as follows:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:237
msgid ""
"Given ``num_local_round``, we update trees by calling "
"``bst_input.update`` method. After training, the last "
"``N=num_local_round`` trees will be extracted to send to the server."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:265
msgid ""
"In ``evaluate``, after loading the global model, we call ``bst.eval_set``"
" function to conduct evaluation on valid set. The AUC value will be "
"returned."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:271
#, fuzzy
msgid ""
"After the local training on clients, clients' model updates are sent to "
"the *server*, which aggregates them to produce a better model. Finally, "
"the *server* sends this improved model version back to each *client* to "
"complete a federated round."
msgstr ""
"*Les clients* sont chargés de générer des mises à jour de poids "
"individuelles pour le modèle en fonction de leurs ensembles de données "
"locales. Ces mises à jour sont ensuite envoyées au *serveur* qui les "
"agrège pour produire un meilleur modèle. Enfin, le *serveur* renvoie "
"cette version améliorée du modèle à chaque *client*. Un cycle complet de "
"mises à jour de poids s'appelle un *round*."

#: ../../source/tutorial-quickstart-xgboost.rst:275
msgid ""
"In the file named ``server_app.py``, we define a strategy for XGBoost "
"bagging aggregation:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:308
msgid ""
"An ``evaluate_metrics_aggregation`` function is defined to collect and "
"wighted average the AUC values from clients. The ``config_func`` function"
" is to return the current FL round number to client's ``fit()`` and "
"``evaluate()`` methods."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:313
msgid "Tree-based Bagging Aggregation"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:315
msgid ""
"You must be curious about how bagging aggregation works. Let's look into "
"the details."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:317
msgid ""
"In file ``flwr.server.strategy.fedxgb_bagging.py``, we define "
"``FedXgbBagging`` inherited from ``flwr.server.strategy.FedAvg``. Then, "
"we override the ``aggregate_fit``, ``aggregate_evaluate`` and "
"``evaluate`` methods as follows:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:414
msgid ""
"In ``aggregate_fit``, we sequentially aggregate the clients' XGBoost "
"trees by calling ``aggregate()`` function:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:474
msgid ""
"In this function, we first fetch the number of trees and the number of "
"parallel trees for the current and previous model by calling "
"``_get_tree_nums``. Then, the fetched information will be aggregated. "
"After that, the trees (containing model weights) are aggregated to "
"generate a new tree model."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:479
msgid ""
"After traversal of all clients' models, a new global model is generated, "
"followed by serialisation, and sending the global model back to each "
"client."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:483
msgid "Launch Federated XGBoost!"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:533
msgid ""
"Congratulations! You've successfully built and run your first federated "
"XGBoost system. The AUC values can be checked in ``History (metrics, "
"distributed, evaluate)``. One can see that the average AUC increases over"
" FL rounds."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:547
#, fuzzy
msgid ""
"Check the full `source code "
"<https://github.com/adap/flower/blob/main/examples/xgboost-quickstart>`_ "
"for this example in ``examples/xgboost-quickstart`` in the Flower GitHub "
"repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-xgboost.rst:552
msgid "Comprehensive Federated XGBoost"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:554
msgid ""
"Now that you know how federated XGBoost works with Flower, it's time to "
"run some more comprehensive experiments by customising the experimental "
"settings. In the xgboost-comprehensive example (`full code "
"<https://github.com/adap/flower/tree/main/examples/xgboost-"
"comprehensive>`_), we provide more options to define various experimental"
" setups, including aggregation strategies, data partitioning and "
"centralised / distributed evaluation. Let's take a look!"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:562
#, fuzzy
msgid "Cyclic Training"
msgstr "Formation centralisée"

#: ../../source/tutorial-quickstart-xgboost.rst:564
msgid ""
"In addition to bagging aggregation, we offer a cyclic training scheme, "
"which performs FL in a client-by-client fashion. Instead of aggregating "
"multiple clients, there is only one single client participating in the "
"training per round in the cyclic training scenario. The trained local "
"XGBoost trees will be passed to the next client as an initialised model "
"for next round's boosting."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:570
msgid "To do this, we first customise a ``ClientManager`` in ``server_app.py``:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:610
msgid ""
"The customised ``ClientManager`` samples all available clients in each FL"
" round based on the order of connection to the server. Then, we define a "
"new strategy ``FedXgbCyclic`` in "
"``flwr.server.strategy.fedxgb_cyclic.py``, in order to sequentially "
"select only one client in given round and pass the received model to the "
"next client."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:652
msgid ""
"Unlike the original ``FedAvg``, we don't perform aggregation here. "
"Instead, we just make a copy of the received client model as global model"
" by overriding ``aggregate_fit``."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:655
msgid ""
"Also, the customised ``configure_fit`` and ``configure_evaluate`` methods"
" ensure the clients to be sequentially selected given FL round:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:685
msgid "Customised Data Partitioning"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:687
msgid ""
"In ``task.py``, we use the ``instantiate_fds`` function to instantiate "
"Flower Datasets and the data partitioner based on the given "
"``partitioner_type`` and ``num_partitions``. Currently, we provide four "
"supported partitioner type to simulate the uniformity/non-uniformity in "
"data quantity (uniform, linear, square, exponential)."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:726
#, fuzzy
msgid "Customised Centralised / Distributed Evaluation"
msgstr "Évaluation centralisée"

#: ../../source/tutorial-quickstart-xgboost.rst:728
msgid ""
"To facilitate centralised evaluation, we define a function in "
"``server_app.py``:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:759
msgid ""
"This function returns an evaluation function, which instantiates a "
"``Booster`` object and loads the global model weights to it. The "
"evaluation is conducted by calling ``eval_set()`` method, and the tested "
"AUC value is reported."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:763
msgid ""
"As for distributed evaluation on the clients, it's same as the quick-"
"start example by overriding the ``evaluate()`` method insides the "
"``XgbClient`` class in ``client_app.py``."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:768
#, fuzzy
msgid "Arguments Explainer"
msgstr "Amélioration de la documentation"

#: ../../source/tutorial-quickstart-xgboost.rst:770
msgid ""
"We define all hyper-parameters under ``[tool.flwr.app.config]`` entry in "
"``pyproject.toml``:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:799
msgid ""
"On the server side, we allow user to specify training strategies / FL "
"rounds / participating clients / clients for evaluation, and evaluation "
"fashion. Note that with ``centralised-eval = true``, the sever will do "
"centralised evaluation and all functionalities for client evaluation will"
" be disabled."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:804
msgid ""
"On the client side, we can define various options for client data "
"partitioning. Besides, clients also have an option to conduct evaluation "
"on centralised test set by setting ``centralised-eval = true``, as well "
"as an option to perform scaled learning rate based on the number of "
"clients by setting ``scaled-lr = true``."
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:810
#, fuzzy
msgid "Example Commands"
msgstr "Exemples de PyTorch"

#: ../../source/tutorial-quickstart-xgboost.rst:812
msgid "To run bagging aggregation for 5 rounds evaluated on centralised test set:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:818
msgid ""
"To run cyclic training with linear partitioner type evaluated on "
"centralised test set:"
msgstr ""

#: ../../source/tutorial-quickstart-xgboost.rst:827
#, fuzzy
msgid ""
"The full `code <https://github.com/adap/flower/blob/main/examples"
"/xgboost-comprehensive/>`_ for this comprehensive example can be found in"
" ``examples/xgboost-comprehensive`` in the Flower GitHub repository."
msgstr ""
"Félicitations ! Tu as réussi à construire et à faire fonctionner ton "
"premier système d'apprentissage fédéré. Le code source complet "
"<https://github.com/adap/flower/blob/main/examples/quickstart-"
"mxnet/client.py>`_ de cet exemple se trouve dans :code:`examples"
"/quickstart-mxnet`."

#: ../../source/tutorial-quickstart-xgboost.rst:833
#, fuzzy
msgid "Video Tutorial"
msgstr "Tutoriel"

#: ../../source/tutorial-quickstart-xgboost.rst:837
msgid ""
"The video shown below shows how to setup a XGBoost + Flower project using"
" our previously recommended APIs. A new video tutorial will be released "
"that shows the new APIs (as the content above does)"
msgstr ""

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:9
#, fuzzy
msgid "Build a strategy from scratch"
msgstr "Élaborer une stratégie à partir de zéro"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:11
#, fuzzy
msgid ""
"Welcome to the third part of the Flower federated learning tutorial. In "
"previous parts of this tutorial, we introduced federated learning with "
"PyTorch and the Flower framework (`part 1 "
"<https://flower.ai/docs/framework/tutorial-get-started-with-flower-"
"pytorch.html>`__) and we learned how strategies can be used to customize "
"the execution on both the server and the clients (`part 2 "
"<https://flower.ai/docs/framework/tutorial-use-a-federated-learning-"
"strategy-pytorch.html>`__)."
msgstr ""
"Bienvenue dans la troisième partie du tutoriel sur l'apprentissage fédéré"
" Flower. Dans les parties précédentes de ce tutoriel, nous avons présenté"
" l'apprentissage fédéré avec PyTorch et Flower (`partie 1 "
"<https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html>`__) "
"et nous avons appris comment les stratégies peuvent être utilisées pour "
"personnaliser l'exécution à la fois sur le serveur et sur les clients "
"(`partie 2 <https://flower.ai/docs/tutorial/Flower-2-Strategies-in-FL-"
"PyTorch.html>`__)."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:13
#, fuzzy
msgid ""
"In this notebook, we'll continue to customize the federated learning "
"system we built previously by creating a custom version of FedAvg using "
"the Flower framework, Flower Datasets, and PyTorch."
msgstr ""
"Dans ce carnet, nous allons continuer à personnaliser le système "
"d'apprentissage fédéré que nous avons construit précédemment en créant "
"une version personnalisée de FedAvg (encore une fois, en utilisant "
"`Flower <https://flower.ai/>`__ et `PyTorch <https://pytorch.org/>`__)."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:15
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:16
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:15
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:15
#, fuzzy
msgid ""
"`Star Flower on GitHub <https://github.com/adap/flower>`__ ⭐️ and join "
"the Flower community on Flower Discuss and the Flower Slack to connect, "
"ask questions, and get help: - `Join Flower Discuss "
"<https://discuss.flower.ai/>`__ We'd love to hear from you in the "
"``Introduction`` topic! If anything is unclear, post in ``Flower Help - "
"Beginners``. - `Join Flower Slack <https://flower.ai/join-slack>`__ We'd "
"love to hear from you in the ``#introductions`` channel! If anything is "
"unclear, head over to the ``#questions`` channel."
msgstr ""
"`Star Flower on GitHub <https://github.com/adap/flower>`__ ⭐️ et "
"rejoignez la communauté Flower sur Slack pour vous connecter, poser des "
"questions et obtenir de l'aide : `Join Slack <https://flower.ai/join-"
"slack>`__ 🌼 Nous serions ravis d'avoir de vos nouvelles dans le canal "
"``#introductions`` ! Et si quelque chose n'est pas clair, rendez-vous sur"
" le canal ``#questions``."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:18
#, fuzzy
msgid "Let's build a new ``Strategy`` from scratch! 🌼"
msgstr "Construisons une nouvelle ``Stratégie`` à partir de zéro !"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:30
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:30
msgid "Preparation"
msgstr "Préparation"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:32
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:33
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:32
msgid ""
"Before we begin with the actual code, let's make sure that we have "
"everything we need."
msgstr ""
"Avant de commencer le code proprement dit, assurons-nous que nous "
"disposons de tout ce dont nous avons besoin."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:44
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:45
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:44
msgid "Installing dependencies"
msgstr "Installation des dépendances"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:46
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:47
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:46
msgid "First, we install the necessary packages:"
msgstr "Tout d'abord, nous installons les paquets nécessaires :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:66
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:67
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:66
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:66
msgid ""
"Now that we have all dependencies installed, we can import everything we "
"need for this tutorial:"
msgstr ""
"Maintenant que toutes les dépendances sont installées, nous pouvons "
"importer tout ce dont nous avons besoin pour ce tutoriel :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:106
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:106
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:106
msgid ""
"It is possible to switch to a runtime that has GPU acceleration enabled "
"(on Google Colab: ``Runtime > Change runtime type > Hardware acclerator: "
"GPU > Save``). Note, however, that Google Colab is not always able to "
"offer GPU acceleration. If you see an error related to GPU availability "
"in one of the following sections, consider switching back to CPU-based "
"execution by setting ``DEVICE = torch.device(\"cpu\")``. If the runtime "
"has GPU acceleration enabled, you should see the output ``Training on "
"cuda``, otherwise it'll say ``Training on cpu``."
msgstr ""
"Il est possible de passer à un runtime dont l'accélération GPU est "
"activée (sur Google Colab : ``Runtime > Change runtime type > Hardware "
"acclerator : GPU > Save``). Note cependant que Google Colab n'est pas "
"toujours en mesure de proposer l'accélération GPU. Si tu vois une erreur "
"liée à la disponibilité du GPU dans l'une des sections suivantes, "
"envisage de repasser à une exécution basée sur le CPU en définissant "
"``DEVICE = torch.device(\"cpu\")``. Si le runtime a activé l'accélération"
" GPU, tu devrais voir apparaître le résultat ``Training on cuda``, sinon "
"il dira ``Training on cpu``."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:119
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:119
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:119
msgid "Data loading"
msgstr "Chargement des données"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:121
msgid ""
"Let's now load the CIFAR-10 training and test set, partition them into "
"ten smaller datasets (each split into training and validation set), and "
"wrap everything in their own ``DataLoader``."
msgstr ""
"Chargeons maintenant les ensembles d'entraînement et de test CIFAR-10, "
"divisons-les en dix ensembles de données plus petits (chacun divisé en "
"ensemble d'entraînement et de validation) et enveloppons le tout dans "
"leur propre ``DataLoader``."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:163
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:163
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:169
msgid "Model training/evaluation"
msgstr "Formation/évaluation du modèle"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:165
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:165
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:171
msgid ""
"Let's continue with the usual model definition (including "
"``set_parameters`` and ``get_parameters``), training and test functions:"
msgstr ""
"Continuons avec la définition habituelle du modèle (y compris "
"``set_parameters`` et ``get_parameters``), les fonctions d'entraînement "
"et de test :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:256
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:262
msgid "Flower client"
msgstr "Client de Flower"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:258
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:264
#, fuzzy
msgid ""
"To implement the Flower client, we (again) create a subclass of "
"``flwr.client.NumPyClient`` and implement the three methods "
"``get_parameters``, ``fit``, and ``evaluate``. Here, we also pass the "
"``partition_id`` to the client and use it log additional details. We then"
" create an instance of ``ClientApp`` and pass it the ``client_fn``."
msgstr ""
"Pour mettre en œuvre le client Flower, nous créons (à nouveau) une sous-"
"classe de ``flwr.client.NumPyClient`` et mettons en œuvre les trois "
"méthodes ``get_parameters``, ``fit`` et ``evaluate``. Ici, nous "
"transmettons également le ``cid`` au client et l'utilisons pour consigner"
" des détails supplémentaires :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:311
msgid "Let's test what we have so far before we continue:"
msgstr "Testons ce que nous avons jusqu'à présent avant de continuer :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:357
msgid "Build a Strategy from scratch"
msgstr "Élaborer une stratégie à partir de zéro"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:359
msgid ""
"Let’s overwrite the ``configure_fit`` method such that it passes a higher"
" learning rate (potentially also other hyperparameters) to the optimizer "
"of a fraction of the clients. We will keep the sampling of the clients as"
" it is in ``FedAvg`` and then change the configuration dictionary (one of"
" the ``FitIns`` attributes)."
msgstr ""
"Remplaçons la méthode ``configure_fit`` de façon à ce qu'elle transmette "
"un taux d'apprentissage plus élevé (potentiellement aussi d'autres "
"hyperparamètres) à l'optimiseur d'une fraction des clients. Nous "
"garderons l'échantillonnage des clients tel qu'il est dans ``FedAvg`` et "
"changerons ensuite le dictionnaire de configuration (l'un des attributs "
"``FitIns``)."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:523
msgid ""
"The only thing left is to use the newly created custom Strategy "
"``FedCustom`` when starting the experiment:"
msgstr ""
"Il ne reste plus qu'à utiliser la stratégie personnalisée nouvellement "
"créée ``FedCustom`` lors du démarrage de l'expérience :"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:559
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:998
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:841
msgid "Recap"
msgstr "Récapitulation"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:561
msgid ""
"In this notebook, we’ve seen how to implement a custom strategy. A custom"
" strategy enables granular control over client node configuration, result"
" aggregation, and more. To define a custom strategy, you only have to "
"overwrite the abstract methods of the (abstract) base class ``Strategy``."
" To make custom strategies even more powerful, you can pass custom "
"functions to the constructor of your new class (``__init__``) and then "
"call these functions whenever needed."
msgstr ""
"Dans ce carnet, nous avons vu comment mettre en place une stratégie "
"personnalisée. Une stratégie personnalisée permet un contrôle granulaire "
"sur la configuration des nœuds clients, l'agrégation des résultats, et "
"bien plus encore. Pour définir une stratégie personnalisée, il te suffit "
"d'écraser les méthodes abstraites de la classe de base (abstraite) "
"``Strategy``. Pour rendre les stratégies personnalisées encore plus "
"puissantes, tu peux passer des fonctions personnalisées au constructeur "
"de ta nouvelle classe (``__init__``) et appeler ensuite ces fonctions à "
"chaque fois que c'est nécessaire."

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:575
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1014
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:813
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:859
#, fuzzy
msgid ""
"Before you continue, make sure to join the Flower community on Flower "
"Discuss (`Join Flower Discuss <https://discuss.flower.ai>`__) and on "
"Slack (`Join Slack <https://flower.ai/join-slack/>`__)."
msgstr ""
"Avant de continuer, n'oublie pas de rejoindre la communauté Flower sur "
"Slack : `Join Slack <https://flower.ai/join-slack/>`__"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:577
#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1016
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:815
#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:861
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:371
msgid ""
"There's a dedicated ``#questions`` channel if you need help, but we'd "
"also love to hear who you are in ``#introductions``!"
msgstr ""
"Il existe un canal dédié aux ``questions`` si vous avez besoin d'aide, "
"mais nous aimerions aussi savoir qui vous êtes dans ``#introductions`` !"

#: ../../source/tutorial-series-build-a-strategy-from-scratch-pytorch.ipynb:579
#, fuzzy
msgid ""
"The `Flower Federated Learning Tutorial - Part 4 "
"<https://flower.ai/docs/framework/tutorial-customize-the-client-"
"pytorch.html>`__ introduces ``Client``, the flexible API underlying "
"``NumPyClient``."
msgstr ""
"Le `Tutoriel d'apprentissage fédéré Flower - Partie 4 "
"<https://flower.ai/docs/tutorial/Flower-4-Client-and-NumPyClient-"
"PyTorch.html>`__ présente ``Client``, l'API flexible qui sous-tend "
"``NumPyClient``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:9
#, fuzzy
msgid "Customize the client"
msgstr "Création du client IMDBC"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:11
#, fuzzy
msgid ""
"Welcome to the fourth part of the Flower federated learning tutorial. In "
"the previous parts of this tutorial, we introduced federated learning "
"with PyTorch and Flower (`part 1 <https://flower.ai/docs/framework"
"/tutorial-get-started-with-flower-pytorch.html>`__), we learned how "
"strategies can be used to customize the execution on both the server and "
"the clients (`part 2 <https://flower.ai/docs/framework/tutorial-use-a"
"-federated-learning-strategy-pytorch.html>`__), and we built our own "
"custom strategy from scratch (`part 3 <https://flower.ai/docs/framework"
"/tutorial-build-a-strategy-from-scratch-pytorch.html>`__)."
msgstr ""
"Bienvenue dans la quatrième partie du tutoriel sur l'apprentissage fédéré"
" Flower. Dans les parties précédentes de ce tutoriel, nous avons présenté"
" l'apprentissage fédéré avec PyTorch et Flower (`partie 1 "
"<https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html>`__), "
"nous avons appris comment les stratégies peuvent être utilisées pour "
"personnaliser l'exécution à la fois sur le serveur et les clients "
"(`partie 2 <https://flower.ai/docs/tutorial/Flower-2-Strategies-in-FL-"
"PyTorch.html>`__), et nous avons construit notre propre stratégie "
"personnalisée à partir de zéro (`partie 3 - WIP "
"<https://flower.ai/docs/tutorial/Flower-3-Building-a-Strategy-"
"PyTorch.html>`__)."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:14
msgid ""
"In this notebook, we revisit ``NumPyClient`` and introduce a new "
"baseclass for building clients, simply named ``Client``. In previous "
"parts of this tutorial, we've based our client on ``NumPyClient``, a "
"convenience class which makes it easy to work with machine learning "
"libraries that have good NumPy interoperability. With ``Client``, we gain"
" a lot of flexibility that we didn't have before, but we'll also have to "
"do a few things the we didn't have to do before."
msgstr ""
"Dans ce carnet, nous revisitons `NumPyClient`` et introduisons une "
"nouvelle classe de base pour construire des clients, simplement appelée "
"`Client``. Dans les parties précédentes de ce tutoriel, nous avons basé "
"notre client sur ``NumPyClient``, une classe de commodité qui facilite le"
" travail avec les bibliothèques d'apprentissage automatique qui ont une "
"bonne interopérabilité NumPy. Avec ``Client``, nous gagnons beaucoup de "
"flexibilité que nous n'avions pas auparavant, mais nous devrons également"
" faire quelques choses que nous n'avions pas à faire auparavant."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:19
#, fuzzy
msgid ""
"Let's go deeper and see what it takes to move from ``NumPyClient`` to "
"``Client``! 🌼"
msgstr ""
"Allons plus loin et voyons ce qu'il faut faire pour passer de "
"``NumPyClient`` à ``Client`` !"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:31
#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:30
msgid "Step 0: Preparation"
msgstr "Étape 0 : Préparation"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:121
#, fuzzy
msgid ""
"Let's now define a loading function for the CIFAR-10 training and test "
"set, partition them into ``num_partitions`` smaller datasets (each split "
"into training and validation set), and wrap everything in their own "
"``DataLoader``."
msgstr ""
"Chargeons maintenant les ensembles d'entraînement et de test CIFAR-10, "
"divisons-les en dix ensembles de données plus petits (chacun divisé en "
"ensemble d'entraînement et de validation) et enveloppons le tout dans "
"leur propre ``DataLoader``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:256
msgid "Step 1: Revisiting NumPyClient"
msgstr "Étape 1 : Revoir NumPyClient"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:258
#, fuzzy
msgid ""
"So far, we've implemented our client by subclassing "
"``flwr.client.NumPyClient``. The three methods we implemented are "
"``get_parameters``, ``fit``, and ``evaluate``."
msgstr ""
"Jusqu'à présent, nous avons implémenté notre client en sous-classant "
"``flwr.client.NumPyClient``. Les trois méthodes que nous avons "
"implémentées sont ``get_parameters``, ``fit`` et ``evaluate``. Enfin, "
"nous enveloppons la création d'instances de cette classe dans une "
"fonction appelée ``client_fn`` :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:299
msgid ""
"Then, we define the function ``numpyclient_fn`` that is used by Flower to"
" create the ``FlowerNumpyClient`` instances on demand. Finally, we create"
" the ``ClientApp`` and pass the ``numpyclient_fn`` to it."
msgstr ""

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:328
#, fuzzy
msgid ""
"We've seen this before, there's nothing new so far. The only *tiny* "
"difference compared to the previous notebook is naming, we've changed "
"``FlowerClient`` to ``FlowerNumPyClient`` and ``client_fn`` to "
"``numpyclient_fn``. Next, we configure the number of federated learning "
"rounds using ``ServerConfig`` and create the ``ServerApp`` with this "
"config:"
msgstr ""
"Nous avons déjà vu cela auparavant, il n'y a rien de nouveau jusqu'à "
"présent. La seule *petite* différence par rapport au carnet précédent est"
" le nommage, nous avons changé ``FlowerClient`` en ``FlowerNumPyClient`` "
"et ``client_fn`` en ``numpyclient_fn``. Exécutons-le pour voir la sortie "
"que nous obtenons :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:355
msgid ""
"Finally, we specify the resources for each client and run the simulation "
"to see the output we get:"
msgstr ""

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:389
#, fuzzy
msgid ""
"This works as expected, ten clients are training for three rounds of "
"federated learning."
msgstr ""
"Cela fonctionne comme prévu, deux clients s'entraînent pour trois tours "
"d'apprentissage fédéré."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:391
#, fuzzy
msgid ""
"Let's dive a little bit deeper and discuss how Flower executes this "
"simulation. Whenever a client is selected to do some work, "
"``run_simulation`` launches the ``ClientApp`` object which in turn calls "
"the function ``numpyclient_fn`` to create an instance of our "
"``FlowerNumPyClient`` (along with loading the model and the data)."
msgstr ""
"Plongeons un peu plus profondément et discutons de la façon dont Flower "
"exécute cette simulation. Chaque fois qu'un client est sélectionné pour "
"effectuer un travail, ``start_simulation`` appelle la fonction "
"``numpyclient_fn`` pour créer une instance de notre ``FlowerNumPyClient``"
" (en même temps qu'il charge le modèle et les données)."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:393
msgid ""
"But here's the perhaps surprising part: Flower doesn't actually use the "
"``FlowerNumPyClient`` object directly. Instead, it wraps the object to "
"makes it look like a subclass of ``flwr.client.Client``, not "
"``flwr.client.NumPyClient``. In fact, the Flower core framework doesn't "
"know how to handle ``NumPyClient``'s, it only knows how to handle "
"``Client``'s. ``NumPyClient`` is just a convenience abstraction built on "
"top of ``Client``."
msgstr ""
"Mais voici la partie la plus surprenante : Flower n'utilise pas "
"directement l'objet `FlowerNumPyClient`. Au lieu de cela, il enveloppe "
"l'objet pour le faire ressembler à une sous-classe de "
"`flwr.client.Client`, et non de `flwr.client.NumPyClient`. En fait, le "
"noyau de Flower ne sait pas comment gérer les `NumPyClient`, il sait "
"seulement comment gérer les `Client`. `NumPyClient` est juste une "
"abstraction de commodité construite au dessus de `Client`."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:395
msgid ""
"Instead of building on top of ``NumPyClient``, we can directly build on "
"top of ``Client``."
msgstr ""
"Au lieu de construire par-dessus `NumPyClient``, nous pouvons construire "
"directement par-dessus `Client``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:407
msgid "Step 2: Moving from ``NumPyClient`` to ``Client``"
msgstr "Étape 2 : Passer de ``NumPyClient`` à ``Client``"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:409
msgid ""
"Let's try to do the same thing using ``Client`` instead of "
"``NumPyClient``."
msgstr ""
"Essayons de faire la même chose en utilisant ``Client`` au lieu de "
"``NumPyClient``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:519
msgid ""
"Before we discuss the code in more detail, let's try to run it! Gotta "
"make sure our new ``Client``-based client works, right?"
msgstr ""
"Avant de discuter du code plus en détail, essayons de l'exécuter ! Nous "
"devons nous assurer que notre nouveau client basé sur le ``Client`` "
"fonctionne, n'est-ce pas ?"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:545
msgid ""
"That's it, we're now using ``Client``. It probably looks similar to what "
"we've done with ``NumPyClient``. So what's the difference?"
msgstr ""
"Voilà, nous utilisons maintenant ``Client``. Cela ressemble probablement "
"à ce que nous avons fait avec ``NumPyClient``. Alors quelle est la "
"différence ?"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:547
msgid ""
"First of all, it's more code. But why? The difference comes from the fact"
" that ``Client`` expects us to take care of parameter serialization and "
"deserialization. For Flower to be able to send parameters over the "
"network, it eventually needs to turn these parameters into ``bytes``. "
"Turning parameters (e.g., NumPy ``ndarray``'s) into raw bytes is called "
"serialization. Turning raw bytes into something more useful (like NumPy "
"``ndarray``'s) is called deserialization. Flower needs to do both: it "
"needs to serialize parameters on the server-side and send them to the "
"client, the client needs to deserialize them to use them for local "
"training, and then serialize the updated parameters again to send them "
"back to the server, which (finally!) deserializes them again in order to "
"aggregate them with the updates received from other clients."
msgstr ""
"First of all, it's more code. But why? The difference comes from the fact"
" that ``Client`` expects us to take care of parameter serialization and "
"deserialization. For Flower to be able to send parameters over the "
"network, it eventually needs to turn these parameters into ``bytes``. "
"Turning parameters (e.g., NumPy ``ndarray``'s) into raw bytes is called "
"serialization. Turning raw bytes into something more useful (like NumPy "
"``ndarray``'s) is called deserialization. Flower needs to do both: it "
"needs to serialize parameters on the server-side and send them to the "
"client, the client needs to deserialize them to use them for local "
"training, and then serialize the updated parameters again to send them "
"back to the server, which (finally!) deserializes them again in order to "
"aggregate them with the updates received from other clients."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:550
msgid ""
"The only *real* difference between Client and NumPyClient is that "
"NumPyClient takes care of serialization and deserialization for you. It "
"can do so because it expects you to return parameters as NumPy ndarray's,"
" and it knows how to handle these. This makes working with machine "
"learning libraries that have good NumPy support (most of them) a breeze."
msgstr ""
"La seule *vraie* différence entre Client et NumPyClient est que "
"NumPyClient s'occupe de la sérialisation et de la désérialisation pour "
"toi. Il peut le faire parce qu'il s'attend à ce que tu renvoies des "
"paramètres sous forme de NumPy ndarray, et il sait comment les gérer. "
"Cela permet de travailler avec des bibliothèques d'apprentissage "
"automatique qui ont une bonne prise en charge de NumPy (la plupart "
"d'entre elles) en un clin d'œil."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:552
msgid ""
"In terms of API, there's one major difference: all methods in Client take"
" exactly one argument (e.g., ``FitIns`` in ``Client.fit``) and return "
"exactly one value (e.g., ``FitRes`` in ``Client.fit``). The methods in "
"``NumPyClient`` on the other hand have multiple arguments (e.g., "
"``parameters`` and ``config`` in ``NumPyClient.fit``) and multiple return"
" values (e.g., ``parameters``, ``num_example``, and ``metrics`` in "
"``NumPyClient.fit``) if there are multiple things to handle. These "
"``*Ins`` and ``*Res`` objects in ``Client`` wrap all the individual "
"values you're used to from ``NumPyClient``."
msgstr ""
"In terms of API, there's one major difference: all methods in Client take"
" exactly one argument (e.g., ``FitIns`` in ``Client.fit``) and return "
"exactly one value (e.g., ``FitRes`` in ``Client.fit``). The methods in "
"``NumPyClient`` on the other hand have multiple arguments (e.g., "
"``parameters`` and ``config`` in ``NumPyClient.fit``) and multiple return"
" values (e.g., ``parameters``, ``num_example``, and ``metrics`` in "
"``NumPyClient.fit``) if there are multiple things to handle. These "
"``*Ins`` and ``*Res`` objects in ``Client`` wrap all the individual "
"values you're used to from ``NumPyClient``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:565
msgid "Step 3: Custom serialization"
msgstr "Étape 3 : Sérialisation personnalisée"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:567
msgid ""
"Here we will explore how to implement custom serialization with a simple "
"example."
msgstr ""
"Nous allons ici explorer comment mettre en œuvre une sérialisation "
"personnalisée à l'aide d'un exemple simple."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:569
msgid ""
"But first what is serialization? Serialization is just the process of "
"converting an object into raw bytes, and equally as important, "
"deserialization is the process of converting raw bytes back into an "
"object. This is very useful for network communication. Indeed, without "
"serialization, you could not just a Python object through the internet."
msgstr ""
"Mais d'abord, qu'est-ce que la sérialisation ? La sérialisation est "
"simplement le processus de conversion d'un objet en octets bruts, et tout"
" aussi important, la désérialisation est le processus de reconversion des"
" octets bruts en objet. Ceci est très utile pour la communication réseau."
" En effet, sans la sérialisation, tu ne pourrais pas faire passer un "
"objet Python par Internet."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:571
msgid ""
"Federated Learning relies heavily on internet communication for training "
"by sending Python objects back and forth between the clients and the "
"server. This means that serialization is an essential part of Federated "
"Learning."
msgstr ""
"L'apprentissage fédéré s'appuie fortement sur la communication Internet "
"pour la formation en envoyant des objets Python dans les deux sens entre "
"les clients et le serveur, ce qui signifie que la sérialisation est un "
"élément essentiel de l'apprentissage fédéré."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:573
msgid ""
"In the following section, we will write a basic example where instead of "
"sending a serialized version of our ``ndarray``\\ s containing our "
"parameters, we will first convert the ``ndarray`` into sparse matrices, "
"before sending them. This technique can be used to save bandwidth, as in "
"certain cases where the weights of a model are sparse (containing many 0 "
"entries), converting them to a sparse matrix can greatly improve their "
"bytesize."
msgstr ""
"Dans la section suivante, nous allons écrire un exemple de base où, au "
"lieu d'envoyer une version sérialisée de nos ``ndarray`` contenant nos "
"paramètres, nous allons d'abord convertir les ``ndarray`` en matrices "
"éparses, avant de les envoyer. Cette technique peut être utilisée pour "
"économiser de la bande passante, car dans certains cas où les poids d'un "
"modèle sont épars (contenant de nombreuses entrées 0), les convertir en "
"une matrice éparse peut grandement améliorer leur taille en octets."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:576
msgid "Our custom serialization/deserialization functions"
msgstr "Nos fonctions de sérialisation/désérialisation personnalisées"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:578
msgid ""
"This is where the real serialization/deserialization will happen, "
"especially in ``ndarray_to_sparse_bytes`` for serialization and "
"``sparse_bytes_to_ndarray`` for deserialization."
msgstr ""
"C'est là que la véritable sérialisation/désérialisation se produira, en "
"particulier dans ``ndarray_to_sparse_bytes`` pour la sérialisation et "
"``sparse_bytes_to_ndarray`` pour la désérialisation."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:580
msgid ""
"Note that we imported the ``scipy.sparse`` library in order to convert "
"our arrays."
msgstr ""
"Notez que nous avons importé la bibliothèque ``scipy.sparse`` afin de "
"convertir nos tableaux."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:668
msgid "Client-side"
msgstr "Côté client"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:670
msgid ""
"To be able to serialize our ``ndarray``\\ s into sparse parameters, we "
"will just have to call our custom functions in our "
"``flwr.client.Client``."
msgstr ""
"Pour pouvoir sérialiser nos ``ndarray`` en paramètres sparse, il nous "
"suffira d'appeler nos fonctions personnalisées dans notre "
"``flwr.client.Client``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:672
msgid ""
"Indeed, in ``get_parameters`` we need to serialize the parameters we got "
"from our network using our custom ``ndarrays_to_sparse_parameters`` "
"defined above."
msgstr ""
"En effet, dans ``get_parameters`` nous devons sérialiser les paramètres "
"que nous avons obtenus de notre réseau en utilisant nos "
"``ndarrays_to_sparse_parameters`` personnalisés définis ci-dessus."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:674
msgid ""
"In ``fit``, we first need to deserialize the parameters coming from the "
"server using our custom ``sparse_parameters_to_ndarrays`` and then we "
"need to serialize our local results with "
"``ndarrays_to_sparse_parameters``."
msgstr ""
"Dans ``fit``, nous devons d'abord désérialiser les paramètres provenant "
"du serveur en utilisant notre ``sparse_parameters_to_ndarrays`` "
"personnalisé, puis nous devons sérialiser nos résultats locaux avec "
"``ndarrays_to_sparse_parameters``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:676
msgid ""
"In ``evaluate``, we will only need to deserialize the global parameters "
"with our custom function."
msgstr ""
"Dans ``evaluate``, nous n'aurons besoin que de désérialiser les "
"paramètres globaux avec notre fonction personnalisée."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:781
msgid "Server-side"
msgstr "Côté serveur"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:783
msgid ""
"For this example, we will just use ``FedAvg`` as a strategy. To change "
"the serialization and deserialization here, we only need to reimplement "
"the ``evaluate`` and ``aggregate_fit`` functions of ``FedAvg``. The other"
" functions of the strategy will be inherited from the super class "
"``FedAvg``."
msgstr ""
"Pour cet exemple, nous utiliserons simplement ``FedAvg`` comme stratégie."
" Pour modifier la sérialisation et la désérialisation ici, il suffit de "
"réimplémenter les fonctions ``evaluate`` et ``aggregate_fit`` de "
"``FedAvg``. Les autres fonctions de la stratégie seront héritées de la "
"super-classe ``FedAvg``."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:785
msgid "As you can see only one line as change in ``evaluate``:"
msgstr "Comme tu peux le voir, seule une ligne a été modifiée dans ``evaluate`` :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:791
msgid ""
"And for ``aggregate_fit``, we will first deserialize every result we "
"received:"
msgstr ""
"Et pour ``aggregate_fit``, nous allons d'abord désérialiser chaque "
"résultat que nous avons reçu :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:800
msgid "And then serialize the aggregated result:"
msgstr "Puis sérialise le résultat agrégé :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:959
msgid "We can now run our custom serialization example!"
msgstr ""
"Nous pouvons maintenant exécuter notre exemple de sérialisation "
"personnalisée !"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1000
msgid ""
"In this part of the tutorial, we've seen how we can build clients by "
"subclassing either ``NumPyClient`` or ``Client``. ``NumPyClient`` is a "
"convenience abstraction that makes it easier to work with machine "
"learning libraries that have good NumPy interoperability. ``Client`` is a"
" more flexible abstraction that allows us to do things that are not "
"possible in ``NumPyClient``. In order to do so, it requires us to handle "
"parameter serialization and deserialization ourselves."
msgstr ""
"Dans cette partie du tutoriel, nous avons vu comment construire des "
"clients en sous-classant soit ``NumPyClient``, soit ``Client``. "
"``NumPyClient`` est une abstraction de commodité qui facilite le travail "
"avec les bibliothèques d'apprentissage automatique qui ont une bonne "
"interopérabilité NumPy. ``Client`` est une abstraction plus flexible qui "
"nous permet de faire des choses qui ne sont pas possibles dans "
"``NumPyClient``. Pour ce faire, elle nous oblige à gérer nous-mêmes la "
"sérialisation et la désérialisation des paramètres."

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1018
msgid ""
"This is the final part of the Flower tutorial (for now!), "
"congratulations! You're now well equipped to understand the rest of the "
"documentation. There are many topics we didn't cover in the tutorial, we "
"recommend the following resources:"
msgstr ""
"C'est la dernière partie du tutoriel Flower (pour l'instant !), "
"félicitations ! Tu es maintenant bien équipé pour comprendre le reste de "
"la documentation. Il y a de nombreux sujets que nous n'avons pas abordés "
"dans le tutoriel, nous te recommandons les ressources suivantes :"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1020
msgid "`Read Flower Docs <https://flower.ai/docs/>`__"
msgstr "`Lire les docs sur les fleurs <https://flower.ai/docs/>`__"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1021
#, fuzzy
msgid "`Check out Flower Code Examples <https://flower.ai/docs/examples/>`__"
msgstr ""
"`Check out Flower Code Examples "
"<https://github.com/adap/flower/tree/main/examples>`__"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1022
#, fuzzy
msgid ""
"`Use Flower Baselines for your research "
"<https://flower.ai/docs/baselines/>`__"
msgstr ""
"`Utilise les lignes de base des fleurs pour ta recherche "
"<https://flower.ai/docs/using-baselines.html>`__"

#: ../../source/tutorial-series-customize-the-client-pytorch.ipynb:1023
#, fuzzy
msgid ""
"`Watch Flower AI Summit 2024 videos <https://flower.ai/conf/flower-ai-"
"summit-2024/>`__"
msgstr ""
"`Regardez les vidéos du Flower Summit 2022 <https://flower.ai/conf"
"/flower-summit-2022/>`__"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:9
msgid "Get started with Flower"
msgstr ""

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:11
#: ../../source/tutorial-series-what-is-federated-learning.ipynb:11
msgid "Welcome to the Flower federated learning tutorial!"
msgstr "Bienvenue au tutoriel sur l'apprentissage fédéré de la fleur !"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:13
#, fuzzy
msgid ""
"In this notebook, we'll build a federated learning system using the "
"Flower framework, Flower Datasets and PyTorch. In part 1, we use PyTorch "
"for the model training pipeline and data loading. In part 2, we federate "
"the PyTorch project using Flower."
msgstr ""
"Dans ce carnet, nous allons construire un système d'apprentissage fédéré "
"en utilisant Flower et PyTorch. Dans la première partie, nous utilisons "
"PyTorch pour le pipeline d'entraînement des modèles et le chargement des "
"données. Dans la deuxième partie, nous continuons à fédérer le pipeline "
"basé sur PyTorch en utilisant Flower."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:18
#, fuzzy
msgid "Let's get started! 🌼"
msgstr "Allons-y, déclarons-le !"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:32
msgid ""
"Before we begin with any actual code, let's make sure that we have "
"everything we need."
msgstr ""
"Avant de commencer à coder, assurons-nous que nous disposons de tout ce "
"dont nous avons besoin."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:44
#, fuzzy
msgid "Install dependencies"
msgstr "Installation des dépendances"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:46
#, fuzzy
msgid ""
"Next, we install the necessary packages for PyTorch (``torch`` and "
"``torchvision``), Flower Datasets (``flwr-datasets``) and Flower "
"(``flwr``):"
msgstr ""
"Ensuite, nous installons les paquets nécessaires pour PyTorch (``torch`` "
"et ``torchvision``) et Flower (``flwr``) :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:109
#, fuzzy
msgid ""
"It is possible to switch to a runtime that has GPU acceleration enabled "
"(on Google Colab: ``Runtime > Change runtime type > Hardware accelerator:"
" GPU > Save``). Note, however, that Google Colab is not always able to "
"offer GPU acceleration. If you see an error related to GPU availability "
"in one of the following sections, consider switching back to CPU-based "
"execution by setting ``DEVICE = torch.device(\"cpu\")``. If the runtime "
"has GPU acceleration enabled, you should see the output ``Training on "
"cuda``, otherwise it'll say ``Training on cpu``."
msgstr ""
"Il est possible de passer à un runtime dont l'accélération GPU est "
"activée (sur Google Colab : ``Runtime > Change runtime type > Hardware "
"acclerator : GPU > Save``). Note cependant que Google Colab n'est pas "
"toujours en mesure de proposer l'accélération GPU. Si tu vois une erreur "
"liée à la disponibilité du GPU dans l'une des sections suivantes, "
"envisage de repasser à une exécution basée sur le CPU en définissant "
"``DEVICE = torch.device(\"cpu\")``. Si le runtime a activé l'accélération"
" GPU, tu devrais voir apparaître le résultat ``Training on cuda``, sinon "
"il dira ``Training on cpu``."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:122
#, fuzzy
msgid "Load the data"
msgstr "Chargement des données"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:124
#, fuzzy
msgid ""
"Federated learning can be applied to many different types of tasks across"
" different domains. In this tutorial, we introduce federated learning by "
"training a simple convolutional neural network (CNN) on the popular "
"CIFAR-10 dataset. CIFAR-10 can be used to train image classifiers that "
"distinguish between images from ten different classes: 'airplane', "
"'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', and "
"'truck'."
msgstr ""
"L'apprentissage fédéré peut être appliqué à de nombreux types de tâches "
"dans différents domaines. Dans ce tutoriel, nous présentons "
"l'apprentissage fédéré en formant un simple réseau neuronal "
"convolutionnel (CNN) sur l'ensemble de données populaire CIFAR-10. "
"CIFAR-10 peut être utilisé pour former des classificateurs d'images qui "
"font la distinction entre les images de dix classes différentes :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:135
#, fuzzy
msgid ""
"We simulate having multiple datasets from multiple organizations (also "
"called the \"cross-silo\" setting in federated learning) by splitting the"
" original CIFAR-10 dataset into multiple partitions. Each partition will "
"represent the data from a single organization. We're doing this purely "
"for experimentation purposes, in the real world there's no need for data "
"splitting because each organization already has their own data (the data "
"is naturally partitioned)."
msgstr ""
"Nous simulons le fait d'avoir plusieurs ensembles de données provenant de"
" plusieurs organisations (également appelé le paramètre \"cross-silo\" "
"dans l'apprentissage fédéré) en divisant l'ensemble de données CIFAR-10 "
"original en plusieurs partitions. Chaque partition représentera les "
"données d'une seule organisation. Nous faisons cela purement à des fins "
"d'expérimentation, dans le monde réel, il n'y a pas besoin de diviser les"
" données parce que chaque organisation a déjà ses propres données (les "
"données sont donc naturellement partitionnées)."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:137
#, fuzzy
msgid ""
"Each organization will act as a client in the federated learning system. "
"Having ten organizations participate in a federation means having ten "
"clients connected to the federated learning server."
msgstr ""
"Chaque organisation agira comme un client dans le système d'apprentissage"
" fédéré. Ainsi, le fait que dix organisations participent à une "
"fédération signifie que dix clients sont connectés au serveur "
"d'apprentissage fédéré :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:148
msgid ""
"We use the Flower Datasets library (``flwr-datasets``) to partition "
"CIFAR-10 into ten partitions using ``FederatedDataset``. We will create a"
" small training and test set for each of the ten organizations and wrap "
"each of these into a PyTorch ``DataLoader``:"
msgstr ""

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:196
#, fuzzy
msgid ""
"We now have a function that can return a training set and validation set "
"(``trainloader`` and ``valloader``) representing one dataset from one of "
"ten different organizations. Each ``trainloader``/``valloader`` pair "
"contains 4000 training examples and 1000 validation examples. There's "
"also a single ``testloader`` (we did not split the test set). Again, this"
" is only necessary for building research or educational systems, actual "
"federated learning systems have their data naturally distributed across "
"multiple partitions."
msgstr ""
"Nous avons maintenant une liste de dix ensembles de formation et dix "
"ensembles de validation (``trainloaders`` et ``valloaders``) représentant"
" les données de dix organisations différentes. Chaque paire "
"``trainloader`/``valloader`` contient 4500 exemples de formation et 500 "
"exemples de validation. Il y a également un seul ``testloader`` (nous "
"n'avons pas divisé l'ensemble de test). Encore une fois, cela n'est "
"nécessaire que pour construire des systèmes de recherche ou d'éducation, "
"les systèmes d'apprentissage fédérés actuels ont leurs données "
"naturellement distribuées à travers plusieurs partitions."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:199
#, fuzzy
msgid ""
"Let's take a look at the first batch of images and labels in the first "
"training set (i.e., ``trainloader`` from ``partition_id=0``) before we "
"move on:"
msgstr ""
"Jetons un coup d'œil au premier lot d'images et d'étiquettes du premier "
"ensemble d'entraînement (c'est-à-dire ``trainloaders[0]``) avant de "
"poursuivre :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:241
#, fuzzy
msgid ""
"The output above shows a random batch of images from the ``trainloader`` "
"from the first of ten partitions. It also prints the labels associated "
"with each image (i.e., one of the ten possible labels we've seen above). "
"If you run the cell again, you should see another batch of images."
msgstr ""
"La sortie ci-dessus montre un lot aléatoire d'images provenant du premier"
" ``chargeur de formation`` de notre liste de dix ``chargeurs de "
"formation``. Elle imprime également les étiquettes associées à chaque "
"image (c'est-à-dire l'une des dix étiquettes possibles que nous avons "
"vues ci-dessus). Si tu exécutes à nouveau la cellule, tu devrais voir un "
"autre lot d'images."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:253
msgid "Step 1: Centralized Training with PyTorch"
msgstr "Étape 1 : Formation centralisée avec PyTorch"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:264
msgid ""
"Next, we're going to use PyTorch to define a simple convolutional neural "
"network. This introduction assumes basic familiarity with PyTorch, so it "
"doesn't cover the PyTorch-related aspects in full detail. If you want to "
"dive deeper into PyTorch, we recommend `DEEP LEARNING WITH PYTORCH: A 60 "
"MINUTE BLITZ "
"<https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html>`__."
msgstr ""
"Ensuite, nous allons utiliser PyTorch pour définir un simple réseau "
"neuronal convolutif. Cette introduction suppose une familiarité de base "
"avec PyTorch, elle ne couvre donc pas en détail les aspects liés à "
"PyTorch. Si tu veux plonger plus profondément dans PyTorch, nous te "
"recommandons `DEEP LEARNING WITH PYTORCH : A 60 MINUTE BLITZ "
"<https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html>`__."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:276
#, fuzzy
msgid "Define the model"
msgstr "Définir le modèle"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:278
msgid ""
"We use the simple CNN described in the `PyTorch tutorial "
"<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#define-a"
"-convolutional-neural-network>`__:"
msgstr ""
"Nous utilisons le CNN simple décrit dans le tutoriel `PyTorch "
"<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#define-a"
"-convolutional-neural-network>`__ :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:315
msgid "Let's continue with the usual training and test functions:"
msgstr "Poursuivons avec les fonctions habituelles de formation et de test :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:375
#, fuzzy
msgid "Train the model"
msgstr "Entraîne le modèle"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:377
#, fuzzy
msgid ""
"We now have all the basic building blocks we need: a dataset, a model, a "
"training function, and a test function. Let's put them together to train "
"the model on the dataset of one of our organizations "
"(``partition_id=0``). This simulates the reality of most machine learning"
" projects today: each organization has their own data and trains models "
"only on this internal data:"
msgstr ""
"Nous avons maintenant tous les éléments de base dont nous avons besoin : "
"un ensemble de données, un modèle, une fonction d'entraînement et une "
"fonction de test. Assemblons-les pour entraîner le modèle sur l'ensemble "
"de données de l'une de nos organisations (``trainloaders[0]``). Cela "
"simule la réalité de la plupart des projets d'apprentissage automatique "
"aujourd'hui : chaque organisation possède ses propres données et entraîne"
" les modèles uniquement sur ces données internes :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:406
#, fuzzy
msgid ""
"Training the simple CNN on our CIFAR-10 split for 5 epochs should result "
"in a test set accuracy of about 41%, which is not good, but at the same "
"time, it doesn't really matter for the purposes of this tutorial. The "
"intent was just to show a simple centralized training pipeline that sets "
"the stage for what comes next - federated learning!"
msgstr ""
"L'entraînement du CNN simple sur notre fractionnement CIFAR-10 pendant 5 "
"époques devrait se traduire par une précision de l'ensemble de test "
"d'environ 41 %, ce qui n'est pas bon, mais en même temps, cela n'a pas "
"vraiment d'importance pour les besoins de ce tutoriel. L'intention était "
"juste de montrer un pipeline d'entraînement centralisé simpliste qui "
"prépare le terrain pour ce qui vient ensuite - l'apprentissage fédéré !"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:418
msgid "Step 2: Federated Learning with Flower"
msgstr "Étape 2 : Apprentissage fédéré avec Flower"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:420
msgid ""
"Step 1 demonstrated a simple centralized training pipeline. All data was "
"in one place (i.e., a single ``trainloader`` and a single ``valloader``)."
" Next, we'll simulate a situation where we have multiple datasets in "
"multiple organizations and where we train a model over these "
"organizations using federated learning."
msgstr ""
"L'étape 1 a montré un simple pipeline de formation centralisé. Toutes les"
" données étaient au même endroit (c'est-à-dire un seul ``trainloader`` et"
" un seul ``valloader``). Ensuite, nous allons simuler une situation où "
"nous avons plusieurs ensembles de données dans plusieurs organisations et"
" où nous formons un modèle sur ces organisations à l'aide de "
"l'apprentissage fédéré."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:432
#, fuzzy
msgid "Update model parameters"
msgstr "Mise à jour des paramètres du modèle"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:434
#, fuzzy
msgid ""
"In federated learning, the server sends global model parameters to the "
"client, and the client updates the local model with parameters received "
"from the server. It then trains the model on the local data (which "
"changes the model parameters locally) and sends the updated/changed model"
" parameters back to the server (or, alternatively, it sends just the "
"gradients back to the server, not the full model parameters)."
msgstr ""
"Dans l'apprentissage fédéré, le serveur envoie les paramètres du modèle "
"global au client, et le client met à jour le modèle local avec les "
"paramètres reçus du serveur. Il entraîne ensuite le modèle sur les "
"données locales (ce qui modifie les paramètres du modèle localement) et "
"renvoie les paramètres du modèle mis à jour/changés au serveur (ou, "
"alternativement, il renvoie seulement les gradients au serveur, et non "
"pas les paramètres complets du modèle)."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:436
msgid ""
"We need two helper functions to update the local model with parameters "
"received from the server and to get the updated model parameters from the"
" local model: ``set_parameters`` and ``get_parameters``. The following "
"two functions do just that for the PyTorch model above."
msgstr ""
"Nous avons besoin de deux fonctions d'aide pour mettre à jour le modèle "
"local avec les paramètres reçus du serveur et pour obtenir les paramètres"
" mis à jour du modèle local : ``set_parameters`` et ``get_parameters``. "
"Les deux fonctions suivantes font exactement cela pour le modèle PyTorch "
"ci-dessus."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:438
#, fuzzy
msgid ""
"The details of how this works are not really important here (feel free to"
" consult the PyTorch documentation if you want to learn more). In "
"essence, we use ``state_dict`` to access PyTorch model parameter tensors."
" The parameter tensors are then converted to/from a list of NumPy "
"ndarray's (which the Flower ``NumPyClient`` knows how to "
"serialize/deserialize):"
msgstr ""
"Les détails de ce fonctionnement ne sont pas vraiment importants ici "
"(n'hésite pas à consulter la documentation PyTorch si tu veux en savoir "
"plus). En substance, nous utilisons ``state_dict`` pour accéder aux "
"tenseurs de paramètres du modèle PyTorch. Les tenseurs de paramètres sont"
" ensuite convertis en/depuis une liste de ndarray NumPy (que Flower sait "
"sérialiser/désérialiser) :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:466
#, fuzzy
msgid "Define the Flower ClientApp"
msgstr "Client de Flower"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:468
#, fuzzy
msgid ""
"With that out of the way, let's move on to the interesting part. "
"Federated learning systems consist of a server and multiple clients. In "
"Flower, we create a ``ServerApp`` and a ``ClientApp`` to run the server-"
"side and client-side code, respectively."
msgstr ""
"Ceci étant dit, passons à la partie intéressante. Les systèmes "
"d'apprentissage fédérés se composent d'un serveur et de plusieurs "
"clients. Dans Flower, nous créons des clients en mettant en œuvre des "
"sous-classes de ``flwr.client.Client`` ou de ``flwr.client.NumPyClient``."
" Nous utilisons ``NumPyClient`` dans ce tutoriel parce qu'il est plus "
"facile à mettre en œuvre et qu'il nous oblige à rédiger moins de modèles "
"de chaudière."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:470
#, fuzzy
msgid ""
"The first step toward creating a ``ClientApp`` is to implement a "
"subclasses of ``flwr.client.Client`` or ``flwr.client.NumPyClient``. We "
"use ``NumPyClient`` in this tutorial because it is easier to implement "
"and requires us to write less boilerplate. To implement ``NumPyClient``, "
"we create a subclass that implements the three methods "
"``get_parameters``, ``fit``, and ``evaluate``:"
msgstr ""
"Ceci étant dit, passons à la partie intéressante. Les systèmes "
"d'apprentissage fédérés se composent d'un serveur et de plusieurs "
"clients. Dans Flower, nous créons des clients en mettant en œuvre des "
"sous-classes de ``flwr.client.Client`` ou de ``flwr.client.NumPyClient``."
" Nous utilisons ``NumPyClient`` dans ce tutoriel parce qu'il est plus "
"facile à mettre en œuvre et qu'il nous oblige à rédiger moins de modèles "
"de chaudière."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:472
msgid "``get_parameters``: Return the current local model parameters"
msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:473
#, fuzzy
msgid ""
"``fit``: Receive model parameters from the server, train the model on the"
" local data, and return the updated model parameters to the server"
msgstr ""
"``fit`` : reçoit les paramètres du modèle du serveur, entraîne les "
"paramètres du modèle sur les données locales et renvoie les paramètres du"
" modèle (mis à jour) au serveur"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:474
#, fuzzy
msgid ""
"``evaluate``: Receive model parameters from the server, evaluate the "
"model on the local data, and return the evaluation result to the server"
msgstr ""
"``evaluate`` : reçoit les paramètres du modèle du serveur, évalue les "
"paramètres du modèle sur les données locales et renvoie le résultat de "
"l'évaluation au serveur"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:476
msgid ""
"We mentioned that our clients will use the previously defined PyTorch "
"components for model training and evaluation. Let's see a simple Flower "
"client implementation that brings everything together:"
msgstr ""
"Nous avons mentionné que nos clients utiliseront les composants PyTorch "
"définis précédemment pour la formation et l'évaluation des modèles. "
"Voyons une simple mise en œuvre du client Flower qui réunit tout cela :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:513
#, fuzzy
msgid ""
"Our class ``FlowerClient`` defines how local training/evaluation will be "
"performed and allows Flower to call the local training/evaluation through"
" ``fit`` and ``evaluate``. Each instance of ``FlowerClient`` represents a"
" *single client* in our federated learning system. Federated learning "
"systems have multiple clients (otherwise, there's not much to federate), "
"so each client will be represented by its own instance of "
"``FlowerClient``. If we have, for example, three clients in our workload,"
" then we'd have three instances of ``FlowerClient`` (one on each of the "
"machines we'd start the client on). Flower calls ``FlowerClient.fit`` on "
"the respective instance when the server selects a particular client for "
"training (and ``FlowerClient.evaluate`` for evaluation)."
msgstr ""
"Our class ``FlowerClient`` defines how local training/evaluation will be "
"performed and allows Flower to call the local training/evaluation through"
" ``fit`` and ``evaluate``. Each instance of ``FlowerClient`` represents a"
" *single client* in our federated learning system. Federated learning "
"systems have multiple clients (otherwise, there's not much to federate), "
"so each client will be represented by its own instance of "
"``FlowerClient``. If we have, for example, three clients in our workload,"
" then we'd have three instances of ``FlowerClient``. Flower calls "
"``FlowerClient.fit`` on the respective instance when the server selects a"
" particular client for training (and ``FlowerClient.evaluate`` for "
"evaluation)."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:516
#, fuzzy
msgid ""
"In this notebook, we want to simulate a federated learning system with 10"
" clients *on a single machine*. This means that the server and all 10 "
"clients will live on a single machine and share resources such as CPU, "
"GPU, and memory. Having 10 clients would mean having 10 instances of "
"``FlowerClient`` in memory. Doing this on a single machine can quickly "
"exhaust the available memory resources, even if only a subset of these "
"clients participates in a single round of federated learning."
msgstr ""
"Dans ce carnet, nous voulons simuler un système d'apprentissage fédéré "
"avec 10 clients sur une seule machine. Cela signifie que le serveur et "
"les 10 clients vivront sur une seule machine et partageront des "
"ressources telles que le CPU, le GPU et la mémoire. Avoir 10 clients "
"signifierait avoir 10 instances de ``FlowerClient`` en mémoire. Faire "
"cela sur une seule machine peut rapidement épuiser les ressources mémoire"
" disponibles, même si seulement un sous-ensemble de ces clients participe"
" à un seul tour d'apprentissage fédéré."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:518
#, fuzzy
msgid ""
"In addition to the regular capabilities where server and clients run on "
"multiple machines, Flower, therefore, provides special simulation "
"capabilities that create ``FlowerClient`` instances only when they are "
"actually necessary for training or evaluation. To enable the Flower "
"framework to create clients when necessary, we need to implement a "
"function that creates a ``FlowerClient`` instance on demand. We typically"
" call this function ``client_fn``. Flower calls ``client_fn`` whenever it"
" needs an instance of one particular client to call ``fit`` or "
"``evaluate`` (those instances are usually discarded after use, so they "
"should not keep any local state). In federated learning experiments using"
" Flower, clients are identified by a partition ID, or ``partition-id``. "
"This ``partition-id`` is used to load different local data partitions for"
" different clients, as can be seen below. The value of ``partition-id`` "
"is retrieved from the ``node_config`` dictionary in the ``Context`` "
"object, which holds the information that persists throughout each "
"training round."
msgstr ""
"In addition to the regular capabilities where server and clients run on "
"multiple machines, Flower, therefore, provides special simulation "
"capabilities that create ``FlowerClient`` instances only when they are "
"actually necessary for training or evaluation. To enable the Flower "
"framework to create clients when necessary, we need to implement a "
"function called ``client_fn`` that creates a ``FlowerClient`` instance on"
" demand. Flower calls ``client_fn`` whenever it needs an instance of one "
"particular client to call ``fit`` or ``evaluate`` (those instances are "
"usually discarded after use, so they should not keep any local state). "
"Clients are identified by a client ID, or short ``cid``. The ``cid`` can "
"be used, for example, to load different local data partitions for "
"different clients, as can be seen below:"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:522
#, fuzzy
msgid ""
"With this, we have the class ``FlowerClient`` which defines client-side "
"training/evaluation and ``client_fn`` which allows Flower to create "
"``FlowerClient`` instances whenever it needs to call ``fit`` or "
"``evaluate`` on one particular client. Last, but definitely not least, we"
" create an instance of ``ClientApp`` and pass it the ``client_fn``. "
"``ClientApp`` is the entrypoint that a running Flower client uses to call"
" your code (as defined in, for example, ``FlowerClient.fit``)."
msgstr ""
"Nous avons maintenant la classe ``FlowerClient`` qui définit "
"l'entraînement/évaluation côté client et ``client_fn`` qui permet à "
"Flower de créer des instances de ``FlowerClient`` chaque fois qu'il a "
"besoin d'appeler ``fit`` ou ``evaluate`` sur un client particulier. La "
"dernière étape consiste à démarrer la simulation réelle en utilisant "
"``flwr.simulation.start_simulation``."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:563
#, fuzzy
msgid "Define the Flower ServerApp"
msgstr "Serveur de Flower"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:565
#, fuzzy
msgid ""
"On the server side, we need to configure a strategy which encapsulates "
"the federated learning approach/algorithm, for example, *Federated "
"Averaging* (FedAvg). Flower has a number of built-in strategies, but we "
"can also use our own strategy implementations to customize nearly all "
"aspects of the federated learning approach. For this example, we use the "
"built-in ``FedAvg`` implementation and customize it using a few basic "
"parameters:"
msgstr ""
"Flower dispose d'un certain nombre de stratégies intégrées, mais nous "
"pouvons également utiliser nos propres implémentations de stratégies pour"
" personnaliser presque tous les aspects de l'approche de l'apprentissage "
"fédéré. Pour cet exemple, nous utilisons l'implémentation intégrée "
"``FedAvg`` et nous la personnalisons en utilisant quelques paramètres de "
"base. La dernière étape est l'appel à ``start_simulation`` qui - tu l'as "
"deviné - démarre la simulation :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:592
msgid ""
"Similar to ``ClientApp``, we create a ``ServerApp`` using a utility "
"function ``server_fn``. In ``server_fn``, we pass an instance of "
"``ServerConfig`` for defining the number of federated learning rounds "
"(``num_rounds``) and we also pass the previously created ``strategy``. "
"The ``server_fn`` returns a ``ServerAppComponents`` object containing the"
" settings that define the ``ServerApp`` behaviour. ``ServerApp`` is the "
"entrypoint that Flower uses to call all your server-side code (for "
"example, the strategy)."
msgstr ""

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:629
#, fuzzy
msgid "Run the training"
msgstr "Commencer la formation"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:631
msgid ""
"In simulation, we often want to control the amount of resources each "
"client can use. In the next cell, we specify a ``backend_config`` "
"dictionary with the ``client_resources`` key (required) for defining the "
"amount of CPU and GPU resources each client can access."
msgstr ""

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:659
msgid ""
"The last step is the actual call to ``run_simulation`` which - you "
"guessed it - runs the simulation. ``run_simulation`` accepts a number of "
"arguments: - ``server_app`` and ``client_app``: the previously created "
"``ServerApp`` and ``ClientApp`` objects, respectively - "
"``num_supernodes``: the number of ``SuperNodes`` to simulate which equals"
" the number of clients for Flower simulation - ``backend_config``: the "
"resource allocation used in this simulation"
msgstr ""

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:686
msgid "Behind the scenes"
msgstr "Dans les coulisses"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:688
msgid "So how does this work? How does Flower execute this simulation?"
msgstr ""
"Alors, comment cela fonctionne-t-il ? Comment Flower exécute-t-il cette "
"simulation ?"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:690
#, fuzzy, python-format
msgid ""
"When we call ``run_simulation``, we tell Flower that there are 10 clients"
" (``num_supernodes=10``, where 1 ``SuperNode`` launches 1 ``ClientApp``)."
" Flower then goes ahead an asks the ``ServerApp`` to issue an "
"instructions to those nodes using the ``FedAvg`` strategy. ``FedAvg`` "
"knows that it should select 100% of the available clients "
"(``fraction_fit=1.0``), so it goes ahead and selects 10 random clients "
"(i.e., 100% of 10)."
msgstr ""
"Lorsque nous appelons ``start_simulation``, nous disons à Flower qu'il y "
"a 10 clients (``num_clients=10``). Flower demande alors à la stratégie "
"``FedAvg`` de sélectionner des clients. ``FedAvg` sait qu'il doit "
"sélectionner 100% des clients disponibles (``fraction_fit=1.0``), alors "
"il choisit 10 clients au hasard (c'est à dire 100% de 10)."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:692
#, fuzzy
msgid ""
"Flower then asks the selected 10 clients to train the model. Each of the "
"10 ``ClientApp`` instances receives a message, which causes it to call "
"``client_fn`` to create an instance of ``FlowerClient``. It then calls "
"``.fit()`` on each the ``FlowerClient`` instances and returns the "
"resulting model parameter updates to the ``ServerApp``. When the "
"``ServerApp`` receives the model parameter updates from the clients, it "
"hands those updates over to the strategy (*FedAvg*) for aggregation. The "
"strategy aggregates those updates and returns the new global model, which"
" then gets used in the next round of federated learning."
msgstr ""
"Flower demande ensuite aux 10 clients sélectionnés d'entraîner le modèle."
" Lorsque le serveur reçoit les mises à jour des paramètres du modèle de "
"la part des clients, il les transmet à la stratégie (*FedAvg*) pour "
"qu'elle les agrège. La stratégie agrège ces mises à jour et renvoie le "
"nouveau modèle global, qui est ensuite utilisé dans le prochain cycle "
"d'apprentissage fédéré."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:705
msgid "Where's the accuracy?"
msgstr "Où est la précision ?"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:707
msgid ""
"You may have noticed that all metrics except for ``losses_distributed`` "
"are empty. Where did the ``{\"accuracy\": float(accuracy)}`` go?"
msgstr ""
"Tu as peut-être remarqué que toutes les mesures, à l'exception de "
"``pertes_distribuées``, sont vides. Où est passée la ``{\"précision\" : "
"float(précision)}`` ?"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:709
msgid ""
"Flower can automatically aggregate losses returned by individual clients,"
" but it cannot do the same for metrics in the generic metrics dictionary "
"(the one with the ``accuracy`` key). Metrics dictionaries can contain "
"very different kinds of metrics and even key/value pairs that are not "
"metrics at all, so the framework does not (and can not) know how to "
"handle these automatically."
msgstr ""
"Flower peut automatiquement agréger les pertes renvoyées par les clients "
"individuels, mais il ne peut pas faire la même chose pour les mesures "
"dans le dictionnaire de mesures générique (celui avec la clé "
"``accuracy``). Les dictionnaires de mesures peuvent contenir des types de"
" mesures très différents et même des paires clé/valeur qui ne sont pas "
"des mesures du tout, donc le cadre ne sait pas (et ne peut pas) savoir "
"comment les gérer automatiquement."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:711
msgid ""
"As users, we need to tell the framework how to handle/aggregate these "
"custom metrics, and we do so by passing metric aggregation functions to "
"the strategy. The strategy will then call these functions whenever it "
"receives fit or evaluate metrics from clients. The two possible functions"
" are ``fit_metrics_aggregation_fn`` and "
"``evaluate_metrics_aggregation_fn``."
msgstr ""
"En tant qu'utilisateurs, nous devons indiquer au framework comment "
"gérer/agréger ces métriques personnalisées, et nous le faisons en passant"
" des fonctions d'agrégation de métriques à la stratégie. La stratégie "
"appellera alors ces fonctions chaque fois qu'elle recevra des métriques "
"d'ajustement ou d'évaluation de la part des clients. Les deux fonctions "
"possibles sont ``fit_metrics_aggregation_fn`` et "
"``evaluate_metrics_aggregation_fn``."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:713
msgid ""
"Let's create a simple weighted averaging function to aggregate the "
"``accuracy`` metric we return from ``evaluate``:"
msgstr ""
"Créons une simple fonction de calcul de la moyenne pondérée pour agréger "
"la mesure de \"précision\" que nous renvoie ``evaluate`` :"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:781
msgid ""
"We now have a full system that performs federated training and federated "
"evaluation. It uses the ``weighted_average`` function to aggregate custom"
" evaluation metrics and calculates a single ``accuracy`` metric across "
"all clients on the server side."
msgstr ""
"Nous avons maintenant un système complet qui effectue la formation "
"fédérée et l'évaluation fédérée. Il utilise la fonction ``moyenne "
"pondérée`` pour agréger les mesures d'évaluation personnalisées et "
"calcule une seule mesure de ``précision`` pour tous les clients du côté "
"du serveur."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:783
msgid ""
"The other two categories of metrics (``losses_centralized`` and "
"``metrics_centralized``) are still empty because they only apply when "
"centralized evaluation is being used. Part two of the Flower tutorial "
"will cover centralized evaluation."
msgstr ""
"Les deux autres catégories de mesures (``pertes_centralisées`` et "
"``métriques_centralisées``) sont toujours vides car elles ne s'appliquent"
" que lorsque l'évaluation centralisée est utilisée. La deuxième partie du"
" tutoriel sur les fleurs couvrira l'évaluation centralisée."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:795
msgid "Final remarks"
msgstr "Remarques finales"

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:797
msgid ""
"Congratulations, you just trained a convolutional neural network, "
"federated over 10 clients! With that, you understand the basics of "
"federated learning with Flower. The same approach you've seen can be used"
" with other machine learning frameworks (not just PyTorch) and tasks (not"
" just CIFAR-10 images classification), for example NLP with Hugging Face "
"Transformers or speech with SpeechBrain."
msgstr ""
"Félicitations, tu viens d'entraîner un réseau neuronal convolutif, fédéré"
" sur 10 clients ! Avec ça, tu comprends les bases de l'apprentissage "
"fédéré avec Flower. La même approche que tu as vue peut être utilisée "
"avec d'autres cadres d'apprentissage automatique (pas seulement PyTorch) "
"et d'autres tâches (pas seulement la classification des images CIFAR-10),"
" par exemple le NLP avec Hugging Face Transformers ou la parole avec "
"SpeechBrain."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:799
msgid ""
"In the next notebook, we're going to cover some more advanced concepts. "
"Want to customize your strategy? Initialize parameters on the server "
"side? Or evaluate the aggregated model on the server side? We'll cover "
"all this and more in the next tutorial."
msgstr ""
"Dans le prochain cahier, nous allons aborder des concepts plus avancés. "
"Tu veux personnaliser ta stratégie ? Initialiser des paramètres côté "
"serveur ? Ou évaluer le modèle agrégé côté serveur ? Nous aborderons tout"
" cela et bien plus encore dans le prochain tutoriel."

#: ../../source/tutorial-series-get-started-with-flower-pytorch.ipynb:817
#, fuzzy
msgid ""
"The `Flower Federated Learning Tutorial - Part 2 "
"<https://flower.ai/docs/framework/tutorial-use-a-federated-learning-"
"strategy-pytorch.html>`__ goes into more depth about strategies and all "
"the advanced things you can build with them."
msgstr ""
"Le `Tutoriel d'apprentissage fédéré Flower - Partie 2 "
"<https://flower.ai/docs/tutorial/Flower-2-Strategies-in-FL-"
"PyTorch.html>`__ va plus en profondeur sur les stratégies et toutes les "
"choses avancées que tu peux construire avec elles."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:9
#, fuzzy
msgid "Use a federated learning strategy"
msgstr "Stratégie de moyenne fédérée."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:11
#, fuzzy
msgid ""
"Welcome to the next part of the federated learning tutorial. In previous "
"parts of this tutorial, we introduced federated learning with PyTorch and"
" Flower (`part 1 <https://flower.ai/docs/framework/tutorial-get-started-"
"with-flower-pytorch.html>`__)."
msgstr ""
"Bienvenue dans la prochaine partie du tutoriel sur l'apprentissage "
"fédéré. Dans les parties précédentes de ce tutoriel, nous avons présenté "
"l'apprentissage fédéré avec PyTorch et Flower (`partie 1 "
"<https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html>`__)."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:13
#, fuzzy
msgid ""
"In this notebook, we'll begin to customize the federated learning system "
"we built in the introductory notebook again, using the Flower framework, "
"Flower Datasets, and PyTorch."
msgstr ""
"Dans ce carnet, nous allons commencer à personnaliser le système "
"d'apprentissage fédéré que nous avons construit dans le carnet "
"d'introduction (toujours en utilisant `Flower <https://flower.ai/>`__ et "
"`PyTorch <https://pytorch.org/>`__)."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:18
#, fuzzy
msgid "Let's move beyond FedAvg with Flower strategies! 🌼"
msgstr "Dépassons FedAvg avec les stratégies florales !"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:121
#, fuzzy
msgid ""
"Let's now load the CIFAR-10 training and test set, partition them into "
"ten smaller datasets (each split into training and validation set), and "
"wrap everything in their own ``DataLoader``. We introduce a new parameter"
" ``num_partitions`` which allows us to call ``load_datasets`` with "
"different numbers of partitions."
msgstr ""
"Chargeons maintenant les ensembles d'entraînement et de test CIFAR-10, "
"divisons-les en dix ensembles de données plus petits (chacun divisé en "
"ensemble d'entraînement et de validation), et enveloppons le tout dans "
"leur propre ``DataLoader``. Nous introduisons un nouveau paramètre "
"``num_clients`` qui nous permet d'appeler ``load_datasets`` avec "
"différents nombres de clients."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:321
msgid "Strategy customization"
msgstr "Personnalisation de la stratégie"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:323
msgid ""
"So far, everything should look familiar if you've worked through the "
"introductory notebook. With that, we're ready to introduce a number of "
"new features."
msgstr ""
"Jusqu'à présent, tout devrait te sembler familier si tu as travaillé sur "
"le cahier d'introduction. Avec cela, nous sommes prêts à présenter un "
"certain nombre de nouvelles fonctionnalités."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:335
msgid "Server-side parameter **initialization**"
msgstr "Paramètres côté serveur **initialisation**"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:337
#, fuzzy
msgid ""
"Flower, by default, initializes the global model by asking one random "
"client for the initial parameters. In many cases, we want more control "
"over parameter initialization though. Flower therefore allows you to "
"directly pass the initial parameters to the Strategy. We create an "
"instance of ``Net()`` and get the paramaters as follows:"
msgstr ""
"Flower, par défaut, initialise le modèle global en demandant à un client "
"aléatoire les paramètres initiaux. Dans de nombreux cas, nous voulons "
"cependant avoir plus de contrôle sur l'initialisation des paramètres. "
"Flower te permet donc de passer directement les paramètres initiaux à la "
"Stratégie :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:358
msgid ""
"Next, we create a ``server_fn`` that returns the components needed for "
"the server. Within ``server_fn``, we create a Strategy that uses the "
"initial parameters."
msgstr ""

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:393
#, fuzzy
msgid ""
"Passing ``initial_parameters`` to the ``FedAvg`` strategy prevents Flower"
" from asking one of the clients for the initial parameters. In "
"``server_fn``, we pass this new ``strategy`` and a ``ServerConfig`` for "
"defining the number of federated learning rounds (``num_rounds``)."
msgstr ""
"Le fait de passer ``initial_parameters`` à la stratégie ``FedAvg`` "
"empêche Flower de demander les paramètres initiaux à l'un des clients. Si"
" nous regardons de près, nous pouvons voir que les journaux ne montrent "
"aucun appel à la méthode ``FlowerClient.get_parameters``."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:395
msgid ""
"Similar to the ``ClientApp``, we now create the ``ServerApp`` using the "
"``server_fn``:"
msgstr ""

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:416
msgid ""
"Last but not least, we specify the resources for each client and run the "
"simulation."
msgstr ""

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:448
#, fuzzy
msgid ""
"If we look closely, we can see that the logs do not show any calls to the"
" ``FlowerClient.get_parameters`` method."
msgstr ""
"Le fait de passer ``initial_parameters`` à la stratégie ``FedAvg`` "
"empêche Flower de demander les paramètres initiaux à l'un des clients. Si"
" nous regardons de près, nous pouvons voir que les journaux ne montrent "
"aucun appel à la méthode ``FlowerClient.get_parameters``."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:460
msgid "Starting with a customized strategy"
msgstr "Commencer par une stratégie personnalisée"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:462
#, fuzzy
msgid ""
"We've seen the function ``run_simulation`` before. It accepts a number of"
" arguments, amongst them the ``server_app`` which wraps around the "
"strategy and number of training rounds, ``client_app`` which wraps around"
" the ``client_fn`` used to create ``FlowerClient`` instances, and the "
"number of clients to simulate which equals ``num_supernodes``."
msgstr ""
"Elle accepte un certain nombre d'arguments, parmi lesquels le "
"``client_fn`` utilisé pour créer les instances de ``FlowerClient``, le "
"nombre de clients à simuler ``num_clients``, le nombre de rounds "
"``num_rounds``, et la stratégie."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:464
msgid ""
"The strategy encapsulates the federated learning approach/algorithm, for "
"example, ``FedAvg`` or ``FedAdagrad``. Let's try to use a different "
"strategy this time:"
msgstr ""
"La stratégie englobe l'approche/l'algorithme d'apprentissage fédéré, par "
"exemple, ``FedAvg`` ou ``FedAdagrad``. Essayons d'utiliser une stratégie "
"différente cette fois-ci :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:509
msgid "Server-side parameter **evaluation**"
msgstr "Paramètre côté serveur **évaluation**"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:511
msgid ""
"Flower can evaluate the aggregated model on the server-side or on the "
"client-side. Client-side and server-side evaluation are similar in some "
"ways, but different in others."
msgstr ""
"Flower peut évaluer le modèle agrégé côté serveur ou côté client. Les "
"évaluations côté client et côté serveur sont similaires à certains "
"égards, mais différentes à d'autres."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:513
msgid ""
"**Centralized Evaluation** (or *server-side evaluation*) is conceptually "
"simple: it works the same way that evaluation in centralized machine "
"learning does. If there is a server-side dataset that can be used for "
"evaluation purposes, then that's great. We can evaluate the newly "
"aggregated model after each round of training without having to send the "
"model to clients. We're also fortunate in the sense that our entire "
"evaluation dataset is available at all times."
msgstr ""
"**L'évaluation centralisée** (ou *évaluation côté serveur*) est "
"conceptuellement simple : elle fonctionne de la même manière que "
"l'évaluation dans l'apprentissage automatique centralisé. S'il existe un "
"ensemble de données côté serveur qui peut être utilisé à des fins "
"d'évaluation, alors c'est parfait. Nous pouvons évaluer le modèle "
"nouvellement agrégé après chaque cycle de formation sans avoir à envoyer "
"le modèle aux clients. Nous avons également la chance que l'ensemble de "
"notre ensemble de données d'évaluation soit disponible à tout moment."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:515
msgid ""
"**Federated Evaluation** (or *client-side evaluation*) is more complex, "
"but also more powerful: it doesn't require a centralized dataset and "
"allows us to evaluate models over a larger set of data, which often "
"yields more realistic evaluation results. In fact, many scenarios require"
" us to use **Federated Evaluation** if we want to get representative "
"evaluation results at all. But this power comes at a cost: once we start "
"to evaluate on the client side, we should be aware that our evaluation "
"dataset can change over consecutive rounds of learning if those clients "
"are not always available. Moreover, the dataset held by each client can "
"also change over consecutive rounds. This can lead to evaluation results "
"that are not stable, so even if we would not change the model, we'd see "
"our evaluation results fluctuate over consecutive rounds."
msgstr ""
"**L'évaluation fédérée** (ou évaluation côté client) est plus complexe, "
"mais aussi plus puissante : elle ne nécessite pas d'ensemble de données "
"centralisé et nous permet d'évaluer les modèles sur un plus grand "
"ensemble de données, ce qui donne souvent des résultats d'évaluation plus"
" réalistes. En fait, de nombreux scénarios exigent que nous utilisions "
"l'évaluation fédérée** si nous voulons obtenir des résultats d'évaluation"
" représentatifs. Mais cette puissance a un coût : une fois que nous "
"commençons à évaluer côté client, nous devons savoir que notre ensemble "
"de données d'évaluation peut changer au cours des cycles d'apprentissage "
"consécutifs si ces clients ne sont pas toujours disponibles. De plus, "
"l'ensemble de données détenu par chaque client peut également changer au "
"cours des cycles consécutifs. Cela peut conduire à des résultats "
"d'évaluation qui ne sont pas stables, donc même si nous ne changions pas "
"le modèle, nous verrions nos résultats d'évaluation fluctuer au cours des"
" cycles consécutifs."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:518
msgid ""
"We've seen how federated evaluation works on the client side (i.e., by "
"implementing the ``evaluate`` method in ``FlowerClient``). Now let's see "
"how we can evaluate aggregated model parameters on the server-side:"
msgstr ""
"Nous avons vu comment l'évaluation fédérée fonctionne du côté client "
"(c'est-à-dire en implémentant la méthode ``evaluate`` dans "
"``FlowerClient``). Voyons maintenant comment nous pouvons évaluer les "
"paramètres du modèle agrégé du côté serveur :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:549
msgid ""
"We create a ``FedAvg`` strategy and pass ``evaluate_fn`` to it. Then, we "
"create a ``ServerApp`` that uses this strategy."
msgstr ""

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:586
#, fuzzy
msgid "Finally, we run the simulation."
msgstr "Simulation de moniteur"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:613
msgid "Sending/receiving arbitrary values to/from clients"
msgstr "Envoi/réception de valeurs arbitraires vers/depuis les clients"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:615
#, fuzzy
msgid ""
"In some situations, we want to configure client-side execution (training,"
" evaluation) from the server-side. One example for that is the server "
"asking the clients to train for a certain number of local epochs. Flower "
"provides a way to send configuration values from the server to the "
"clients using a dictionary. Let's look at an example where the clients "
"receive values from the server through the ``config`` parameter in "
"``fit`` (``config`` is also available in ``evaluate``). The ``fit`` "
"method receives the configuration dictionary through the ``config`` "
"parameter and can then read values from this dictionary. In this example,"
" it reads ``server_round`` and ``local_epochs`` and uses those values to "
"improve the logging and configure the number of local training epochs:"
msgstr ""
"In some situations, we want to configure client-side execution (training,"
" evaluation) from the server-side. One example for that is the server "
"asking the clients to train for a certain number of local epochs. Flower "
"provides a way to send configuration values from the server to the "
"clients using a dictionary. Let's look at an example where the clients "
"receive values from the server through the ``config`` parameter in "
"``fit`` (``config`` is also available in ``evaluate``). The ``fit`` "
"method receives the configuration dictionary through the ``config`` "
"parameter and can then read values from this dictionary. In this example,"
" it reads ``server_round`` and ``local_epochs`` and uses those values to "
"improve the logging and configure the number of local training epochs:"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:674
msgid ""
"So how can we send this config dictionary from server to clients? The "
"built-in Flower Strategies provide way to do this, and it works similarly"
" to the way server-side evaluation works. We provide a function to the "
"strategy, and the strategy calls this function for every round of "
"federated learning:"
msgstr ""
"Comment pouvons-nous donc envoyer ce dictionnaire de configuration du "
"serveur aux clients ? Les stratégies de Flower intégrées fournissent un "
"moyen de le faire, et cela fonctionne de la même façon que l'évaluation "
"côté serveur. Nous fournissons une fonction à la stratégie, et la "
"stratégie appelle cette fonction pour chaque cycle d'apprentissage fédéré"
" :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:704
#, fuzzy
msgid ""
"Next, we'll pass this function to the FedAvg strategy before starting the"
" simulation:"
msgstr ""
"Ensuite, nous allons simplement passer cette fonction à la stratégie "
"FedAvg avant de commencer la simulation :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:749
msgid ""
"As we can see, the client logs now include the current round of federated"
" learning (which they read from the ``config`` dictionary). We can also "
"configure local training to run for one epoch during the first and second"
" round of federated learning, and then for two epochs during the third "
"round."
msgstr ""
"Comme nous pouvons le voir, les journaux des clients incluent maintenant "
"le cycle actuel d'apprentissage fédéré (qu'ils lisent depuis le "
"dictionnaire ``config``). Nous pouvons également configurer "
"l'apprentissage local pour qu'il s'exécute pendant une époque au cours du"
" premier et du deuxième cycle d'apprentissage fédéré, puis pendant deux "
"époques au cours du troisième cycle."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:751
msgid ""
"Clients can also return arbitrary values to the server. To do so, they "
"return a dictionary from ``fit`` and/or ``evaluate``. We have seen and "
"used this concept throughout this notebook without mentioning it "
"explicitly: our ``FlowerClient`` returns a dictionary containing a custom"
" key/value pair as the third return value in ``evaluate``."
msgstr ""
"Les clients peuvent également renvoyer des valeurs arbitraires au "
"serveur. Pour ce faire, ils renvoient un dictionnaire depuis ``fit`` "
"et/ou ``evaluate``. Nous avons vu et utilisé ce concept tout au long de "
"ce carnet sans le mentionner explicitement : notre ``FlowerClient`` "
"renvoie un dictionnaire contenant une paire clé/valeur personnalisée en "
"tant que troisième valeur de retour dans ``evaluate``."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:763
msgid "Scaling federated learning"
msgstr "Mise à l'échelle de l'apprentissage fédéré"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:765
msgid ""
"As a last step in this notebook, let's see how we can use Flower to "
"experiment with a large number of clients."
msgstr ""
"Comme dernière étape de ce carnet, voyons comment nous pouvons utiliser "
"Flower pour expérimenter avec un grand nombre de clients."

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:785
msgid ""
"Note that we can reuse the ``ClientApp`` for different ``num-partitions``"
" since the Context is defined by the ``num_supernodes`` argument in "
"``run_simulation()``."
msgstr ""

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:787
#, fuzzy, python-format
msgid ""
"We now have 1000 partitions, each holding 45 training and 5 validation "
"examples. Given that the number of training examples on each client is "
"quite small, we should probably train the model a bit longer, so we "
"configure the clients to perform 3 local training epochs. We should also "
"adjust the fraction of clients selected for training during each round "
"(we don't want all 1000 clients participating in every round), so we "
"adjust ``fraction_fit`` to ``0.025``, which means that only 2.5% of "
"available clients (so 25 clients) will be selected for training each "
"round:"
msgstr ""
"Nous avons maintenant 1000 partitions, chacune contenant 45 exemples "
"d'entraînement et 5 exemples de validation. Etant donné que le nombre "
"d'exemples d'entraînement sur chaque client est assez faible, nous "
"devrions probablement entraîner le modèle un peu plus longtemps, nous "
"configurons donc les clients pour qu'ils effectuent 3 époques "
"d'entraînement local. Nous devrions également ajuster la fraction de "
"clients sélectionnés pour l'entraînement à chaque tour (nous ne voulons "
"pas que les 1000 clients participent à chaque tour), nous ajustons donc "
"``fraction_fit`` à ``0.05``, ce qui signifie que seulement 5% des clients"
" disponibles (donc 50 clients) seront sélectionnés pour l'entraînement à "
"chaque tour :"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:843
msgid ""
"In this notebook, we've seen how we can gradually enhance our system by "
"customizing the strategy, initializing parameters on the server side, "
"choosing a different strategy, and evaluating models on the server-side. "
"That's quite a bit of flexibility with so little code, right?"
msgstr ""
"Dans ce carnet, nous avons vu comment nous pouvons progressivement "
"améliorer notre système en personnalisant la stratégie, en initialisant "
"les paramètres côté serveur, en choisissant une stratégie différente et "
"en évaluant les modèles côté serveur. C'est une sacrée flexibilité avec "
"si peu de code, n'est-ce pas ?"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:845
msgid ""
"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!"
msgstr ""
"Dans les sections ultérieures, nous avons vu comment nous pouvons "
"communiquer des valeurs arbitraires entre le serveur et les clients pour "
"personnaliser entièrement l'exécution côté client. Grâce à cette "
"capacité, nous avons construit une simulation d'apprentissage fédéré à "
"grande échelle en utilisant le moteur de client virtuel Flower et nous "
"avons mené une expérience impliquant 1000 clients dans la même charge de "
"travail - le tout dans un carnet Jupyter !"

#: ../../source/tutorial-series-use-a-federated-learning-strategy-pytorch.ipynb:863
#, fuzzy
msgid ""
"The `Flower Federated Learning Tutorial - Part 3 "
"<https://flower.ai/docs/framework/tutorial-build-a-strategy-from-scratch-"
"pytorch.html>`__ shows how to build a fully custom ``Strategy`` from "
"scratch."
msgstr ""
"Le `Tutoriel d'apprentissage fédéré Flower - Partie 3 [WIP] "
"<https://flower.ai/docs/tutorial/Flower-3-Building-a-Strategy-"
"PyTorch.html>`__ montre comment construire une ``Stratégie`` entièrement "
"personnalisée à partir de zéro."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:9
msgid "What is Federated Learning?"
msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:13
#, fuzzy
msgid ""
"In this tutorial, you will learn what federated learning is, build your "
"first system in Flower, and gradually extend it. If you work through all "
"parts of the tutorial, you will be able to build advanced federated "
"learning systems that approach the current state of the art in the field."
msgstr ""
"Dans ce tutoriel, tu apprendras ce qu'est l'apprentissage fédéré, tu "
"construiras ton premier système dans Flower, et tu l'étendras "
"progressivement. Si tu travailles sur toutes les parties du tutoriel, tu "
"seras capable de construire des systèmes d'apprentissage fédéré avancés "
"qui se rapprochent de l'état actuel de l'art dans le domaine."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:15
#, fuzzy
msgid ""
"🧑‍🏫 This tutorial starts from zero and expects no familiarity with "
"federated learning. Only a basic understanding of data science and Python"
" programming is assumed."
msgstr ""
"🧑‍🏫 Ce tutoriel part de zéro et n'attend aucune familiarité avec "
"l'apprentissage fédéré. Seule une compréhension de base de la science des"
" données et de la programmation Python est supposée."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:17
#, fuzzy
msgid ""
"`Star Flower on GitHub <https://github.com/adap/flower>`__ ⭐️ and join "
"the open-source Flower community on Slack to connect, ask questions, and "
"get help: `Join Slack <https://flower.ai/join-slack>`__ 🌼 We'd love to "
"hear from you in the ``#introductions`` channel! And if anything is "
"unclear, head over to the ``#questions`` channel."
msgstr ""
"`Star Flower on GitHub <https://github.com/adap/flower>`__ ⭐️ et "
"rejoignez la communauté Flower sur Slack pour vous connecter, poser des "
"questions et obtenir de l'aide : `Join Slack <https://flower.ai/join-"
"slack>`__ 🌼 Nous serions ravis d'avoir de vos nouvelles dans le canal "
"``#introductions`` ! Et si quelque chose n'est pas clair, rendez-vous sur"
" le canal ``#questions``."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:19
#, fuzzy
msgid "Let's get started!"
msgstr "Allons-y, déclarons-le !"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:31
#, fuzzy
msgid "Classical Machine Learning"
msgstr "Apprentissage automatique classique"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:33
#, fuzzy
msgid ""
"Before we begin discussing federated learning, let us quickly recap how "
"most machine learning works today."
msgstr ""
"Avant de commencer à discuter de l'apprentissage fédéré, récapitulons "
"rapidement la façon dont la plupart des apprentissages automatiques "
"fonctionnent aujourd'hui."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:35
msgid ""
"In machine learning, we have a model, and we have data. The model could "
"be a neural network (as depicted here), or something else, like classical"
" linear regression."
msgstr ""
"Dans l'apprentissage automatique, nous avons un modèle et des données. Le"
" modèle peut être un réseau neuronal (comme illustré ici), ou quelque "
"chose d'autre, comme la régression linéaire classique."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:41
msgid "|f150b8d6e0074250822c9f6f7a8de3e0|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:109
msgid "Model and data"
msgstr "Modèle et données"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:47
msgid ""
"We train the model using the data to perform a useful task. A task could "
"be to detect objects in images, transcribe an audio recording, or play a "
"game like Go."
msgstr ""
"Nous entraînons le modèle en utilisant les données pour effectuer une "
"tâche utile. Une tâche peut consister à détecter des objets dans des "
"images, à transcrire un enregistrement audio ou à jouer à un jeu comme le"
" Go."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:53
msgid "|72772d10debc4abd8373c0bc82985422|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:111
msgid "Train model using data"
msgstr "Entraîne le modèle à l'aide des données"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:59
#, fuzzy
msgid ""
"In practice, the training data we work with doesn't originate on the "
"machine we train the model on."
msgstr ""
"Dans la pratique, les données d'entraînement avec lesquelles nous "
"travaillons ne proviennent pas de la machine sur laquelle nous entraînons"
" le modèle. Elles sont créées ailleurs."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:61
#, fuzzy
msgid ""
"This data gets created \"somewhere else\". For instance, the data can "
"originate on a smartphone by the user interacting with an app, a car "
"collecting sensor data, a laptop receiving input via the keyboard, or a "
"smart speaker listening to someone trying to sing a song."
msgstr ""
"Elle prend naissance sur un smartphone par l'interaction de l'utilisateur"
" avec une application, une voiture qui collecte des données de capteurs, "
"un ordinateur portable qui reçoit des entrées via le clavier, ou un haut-"
"parleur intelligent qui écoute quelqu'un qui essaie de chanter une "
"chanson."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:67
msgid "|5815398552ad41d290a3a2631fe8f6ca|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:113
msgid "Data on a phone"
msgstr "Données sur un téléphone"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:73
msgid ""
"What's also important to mention, this \"somewhere else\" is usually not "
"just one place, it's many places. It could be several devices all running"
" the same app. But it could also be several organizations, all generating"
" data for the same task."
msgstr ""
"Il est également important de mentionner que cet \"ailleurs\" n'est "
"généralement pas un seul endroit, mais plusieurs. Il peut s'agir de "
"plusieurs appareils fonctionnant tous avec la même application. Mais il "
"peut également s'agir de plusieurs organisations, qui génèrent toutes des"
" données pour la même tâche."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:79
msgid "|e6ac20744bf149378be20ac3dc309356|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:115
msgid "Data is on many devices"
msgstr "Les données se trouvent sur de nombreux appareils"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:85
#, fuzzy
msgid ""
"So to use machine learning, or any kind of data analysis, the approach "
"that has been used in the past was to collect all this data on a central "
"server. This server can be located somewhere in a data center, or "
"somewhere in the cloud."
msgstr ""
"Ainsi, pour utiliser l'apprentissage automatique, ou tout autre type "
"d'analyse de données, l'approche utilisée par le passé consistait à "
"collecter toutes les données sur un serveur central. Ce serveur peut se "
"trouver quelque part dans un centre de données, ou quelque part dans le "
"cloud."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:91
msgid "|a4011ef443c14725b15a8cf33b0e3443|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:117
msgid "Central data collection"
msgstr "Collecte centralisée des données"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:97
#, fuzzy
msgid ""
"Once all the data is collected in one place, we can finally use machine "
"learning algorithms to train our model on the data. This is the machine "
"learning approach that we've basically always relied on."
msgstr ""
"Une fois que toutes les données sont rassemblées en un seul endroit, nous"
" pouvons enfin utiliser des algorithmes d'apprentissage automatique pour "
"entraîner notre modèle sur les données. C'est l'approche d'apprentissage "
"automatique sur laquelle nous nous sommes fondamentalement toujours "
"appuyés."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:103
msgid "|a22faa3617404c06803731525e1c609f|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:119
msgid "Central model training"
msgstr "Formation au modèle central"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:130
msgid "Challenges of classical machine learning"
msgstr "Les défis de l'apprentissage automatique classique"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:132
#, fuzzy
msgid ""
"This classical machine learning approach we've just seen can be used in "
"some cases. Great examples include categorizing holiday photos, or "
"analyzing web traffic. Cases, where all the data is naturally available "
"on a centralized server."
msgstr ""
"L'approche classique de l'apprentissage automatique que nous venons de "
"voir peut être utilisée dans certains cas. Parmi les grands exemples, on "
"peut citer la catégorisation des photos de vacances, ou l'analyse du "
"trafic web. Des cas, où toutes les données sont naturellement disponibles"
" sur un serveur centralisé."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:138
msgid "|84a5c9b5041c43c3beab9786197c3e4e|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:173
msgid "Centralized possible"
msgstr "Possibilité de centralisation"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:144
msgid ""
"But the approach can not be used in many other cases. Cases, where the "
"data is not available on a centralized server, or cases where the data "
"available on one server is not enough to train a good model."
msgstr ""
"Mais cette approche ne peut pas être utilisée dans de nombreux autres cas"
" : lorsque les données ne sont pas disponibles sur un serveur centralisé,"
" ou lorsque les données disponibles sur un serveur ne sont pas "
"suffisantes pour former un bon modèle."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:150
msgid "|b5c4be0b52d4493ba8c4af14d7c2db97|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:175
msgid "Centralized impossible"
msgstr "Impossible de centraliser"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:156
#, fuzzy
msgid ""
"There are many reasons why the classical centralized machine learning "
"approach does not work for a large number of highly important real-world "
"use cases. Those reasons include:"
msgstr ""
"Il existe de nombreuses raisons pour lesquelles l'approche classique "
"centralisée de l'apprentissage automatique ne fonctionne pas pour un "
"grand nombre de cas d'utilisation très importants dans le monde réel, "
"notamment :"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:158
#, fuzzy
msgid ""
"**Regulations**: GDPR (Europe), CCPA (California), PIPEDA (Canada), LGPD "
"(Brazil), PDPL (Argentina), KVKK (Turkey), POPI (South Africa), FSS "
"(Russia), CDPR (China), PDPB (India), PIPA (Korea), APPI (Japan), PDP "
"(Indonesia), PDPA (Singapore), APP (Australia), and other regulations "
"protect sensitive data from being moved. In fact, those regulations "
"sometimes even prevent single organizations from combining their own "
"users' data for machine learning training because those users live in "
"different parts of the world, and their data is governed by different "
"data protection regulations."
msgstr ""
"**Réglementations** : GDPR (Europe), CCPA (Californie), PIPEDA (Canada), "
"LGPD (Brésil), PDPL (Argentine), KVKK (Turquie), POPI (Afrique du Sud), "
"FSS (Russie), CDPR (Chine), PDPB (Inde), PIPA (Corée), APPI (Japon), PDP "
"(Indonésie), PDPA (Singapour), APP (Australie), et d'autres "
"réglementations protègent les données sensibles contre le déplacement. En"
" fait, ces réglementations empêchent même parfois des organisations "
"individuelles de combiner les données de leurs propres utilisateurs pour "
"la formation à l'intelligence artificielle parce que ces utilisateurs "
"vivent dans différentes parties du monde, et que leurs données sont "
"régies par des réglementations différentes en matière de protection des "
"données."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:160
msgid ""
"**User preference**: In addition to regulation, there are use cases where"
" users just expect that no data leaves their device, ever. If you type "
"your passwords and credit card info into the digital keyboard of your "
"phone, you don't expect those passwords to end up on the server of the "
"company that developed that keyboard, do you? In fact, that use case was "
"the reason federated learning was invented in the first place."
msgstr ""
"**Préférence de l'utilisateur** : En plus de la réglementation, il existe"
" des cas d'utilisation où les utilisateurs s'attendent tout simplement à "
"ce qu'aucune donnée ne quitte leur appareil, jamais. Si tu tapes tes mots"
" de passe et tes informations de carte de crédit sur le clavier numérique"
" de ton téléphone, tu ne t'attends pas à ce que ces mots de passe "
"finissent sur le serveur de l'entreprise qui a développé ce clavier, n"
"'est-ce pas ? En fait, ce cas d'utilisation est la raison pour laquelle "
"l'apprentissage fédéré a été inventé en premier lieu."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:161
#, fuzzy
msgid ""
"**Data volume**: Some sensors, like cameras, produce such a high data "
"volume that it is neither feasible nor economic to collect all the data "
"(due to, for example, bandwidth or communication efficiency). Think about"
" a national rail service with hundreds of train stations across the "
"country. If each of these train stations is outfitted with a number of "
"security cameras, the volume of raw on-device data they produce requires "
"incredibly powerful and exceedingly expensive infrastructure to process "
"and store. And most of the data isn't even useful."
msgstr ""
"**volume de données** : certains capteurs, comme les caméras, produisent "
"un volume de données si important qu'il n'est ni possible ni économique "
"de collecter toutes les données (en raison, par exemple, de la bande "
"passante ou de l'efficacité des communications). Pensez à un service "
"ferroviaire national comptant des centaines de gares à travers le pays. "
"Si chacune de ces gares est équipée d'un certain nombre de caméras de "
"sécurité, le volume de données brutes sur les appareils qu'elles "
"produisent nécessite une infrastructure incroyablement puissante et "
"excessivement coûteuse pour les traiter et les stocker. Et la plupart de "
"ces données ne sont même pas utiles."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:164
msgid "Examples where centralized machine learning does not work include:"
msgstr ""
"Voici quelques exemples où l'apprentissage automatique centralisé ne "
"fonctionne pas :"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:166
#, fuzzy
msgid ""
"Sensitive healthcare records from multiple hospitals to train cancer "
"detection models."
msgstr ""
"Des dossiers médicaux sensibles provenant de plusieurs hôpitaux pour "
"former des modèles de détection du cancer"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:167
#, fuzzy
msgid ""
"Financial information from different organizations to detect financial "
"fraud."
msgstr ""
"Informations financières provenant de différentes organisations pour "
"détecter les fraudes financières"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:168
#, fuzzy
msgid "Location data from your electric car to make better range prediction."
msgstr ""
"Les données de localisation de ta voiture électrique pour mieux prédire "
"l'autonomie"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:169
#, fuzzy
msgid "End-to-end encrypted messages to train better auto-complete models."
msgstr ""
"Messages cryptés de bout en bout pour former de meilleurs modèles "
"d'autocomplétion"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:171
#, fuzzy
msgid ""
"The popularity of privacy-enhancing systems like the `Brave "
"<https://brave.com/>`__ browser or the `Signal <https://signal.org/>`__ "
"messenger shows that users care about privacy. In fact, they choose the "
"privacy-enhancing version over other alternatives, if such an alternative"
" exists. But what can we do to apply machine learning and data science to"
" these cases to utilize private data? After all, these are all areas that"
" would benefit significantly from recent advances in AI."
msgstr ""
"La popularité des systèmes améliorant la confidentialité comme le "
"navigateur `Brave <https://brave.com/>`__ ou le messager `Signal "
"<https://signal.org/>`__ montre que les utilisateurs se soucient de la "
"confidentialité. En fait, ils choisissent la version améliorant la "
"confidentialité plutôt que d'autres alternatives, si une telle "
"alternative existe. Mais que pouvons-nous faire pour appliquer "
"l'apprentissage automatique et la science des données à ces cas afin "
"d'utiliser les données privées ? Après tout, ce sont tous des domaines "
"qui bénéficieraient de manière significative des récentes avancées en "
"matière d'IA."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:186
#, fuzzy
msgid "Federated Learning"
msgstr "Apprentissage fédéré"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:188
#, fuzzy
msgid ""
"Federated Learning simply reverses this approach. It enables machine "
"learning on distributed data by moving the training to the data, instead "
"of moving the data to the training. Here's a one-liner explanation:"
msgstr ""
"L'apprentissage fédéré inverse simplement cette approche. Il permet "
"l'apprentissage automatique sur des données distribuées en déplaçant la "
"formation vers les données, au lieu de déplacer les données vers la "
"formation. Voici l'explication en une seule phrase :"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:190
#, fuzzy
msgid "Centralized machine learning: move the data to the computation"
msgstr "Apprentissage automatique central : déplace les données vers le calcul"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:191
#, fuzzy
msgid "Federated (machine) Learning: move the computation to the data"
msgstr "Apprentissage (machine) fédéré : déplacer le calcul vers les données"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:193
#, fuzzy
msgid ""
"By doing so, Federated Learning enables us to use machine learning (and "
"other data science approaches) in areas where it wasn't possible before. "
"We can now train excellent medical AI models by enabling different "
"hospitals to work together. We can solve financial fraud by training AI "
"models on the data of different financial institutions. We can build "
"novel privacy-enhancing applications (such as secure messaging) that have"
" better built-in AI than their non-privacy-enhancing alternatives. And "
"those are just a few of the examples that come to mind. As we deploy "
"Federated Learning, we discover more and more areas that can suddenly be "
"reinvented because they now have access to vast amounts of previously "
"inaccessible data."
msgstr ""
"Ce faisant, il nous permet d'utiliser l'apprentissage automatique (et "
"d'autres approches de science des données) dans des domaines où cela "
"n'était pas possible auparavant. Nous pouvons désormais former "
"d'excellents modèles d'IA médicale en permettant à différents hôpitaux de"
" travailler ensemble. Nous pouvons résoudre les fraudes financières en "
"formant des modèles d'IA sur les données de différentes institutions "
"financières. Nous pouvons créer de nouvelles applications d'amélioration "
"de la confidentialité (telles que la messagerie sécurisée) qui ont une "
"meilleure IA intégrée que leurs alternatives d'amélioration de la "
"confidentialité. Et ce ne sont là que quelques exemples qui me viennent à"
" l'esprit. Au fur et à mesure que nous déployons l'apprentissage fédéré, "
"nous découvrons de plus en plus de domaines qui peuvent soudainement être"
" réinventés parce qu'ils ont maintenant accès à de vastes quantités de "
"données auparavant inaccessibles."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:196
#, fuzzy
msgid ""
"So how does Federated Learning work, exactly? Let's start with an "
"intuitive explanation."
msgstr ""
"Comment fonctionne l'apprentissage fédéré ? Commençons par une "
"explication intuitive."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:199
msgid "Federated learning in five steps"
msgstr "L'apprentissage fédéré en cinq étapes"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:202
msgid "Step 0: Initialize global model"
msgstr "Étape 0 : Initialisation du modèle global"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:204
msgid ""
"We start by initializing the model on the server. This is exactly the "
"same in classic centralized learning: we initialize the model parameters,"
" either randomly or from a previously saved checkpoint."
msgstr ""
"Nous commençons par initialiser le modèle sur le serveur. C'est "
"exactement la même chose dans l'apprentissage centralisé classique : nous"
" initialisons les paramètres du modèle, soit de façon aléatoire, soit à "
"partir d'un point de contrôle précédemment sauvegardé."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:210
msgid "|c1c784183d18481186ff65dc261d1335|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:307
msgid "Initialize global model"
msgstr "Initialise le modèle global"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:217
msgid ""
"Step 1: Send model to a number of connected organizations/devices (client"
" nodes)"
msgstr ""
"Étape 1 : envoyer le modèle à un certain nombre d'organisations/appareils"
" connectés (nœuds clients)"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:219
#, fuzzy
msgid ""
"Next, we send the parameters of the global model to the connected client "
"nodes (think: edge devices like smartphones or servers belonging to "
"organizations). This is to ensure that each participating node starts its"
" local training using the same model parameters. We often use only a few "
"of the connected nodes instead of all nodes. The reason for this is that "
"selecting more and more client nodes has diminishing returns."
msgstr ""
"Ensuite, nous envoyons les paramètres du modèle global aux nœuds clients "
"connectés (par exemple, les appareils périphériques comme les smartphones"
" ou les serveurs appartenant à des organisations). Cela permet de "
"s'assurer que chaque nœud participant commence sa formation locale en "
"utilisant les mêmes paramètres de modèle. Nous n'utilisons souvent que "
"quelques-uns des nœuds connectés au lieu de tous les nœuds. La raison en "
"est que la sélection d'un nombre croissant de nœuds clients a des "
"rendements décroissants."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:225
msgid "|669fcd1f44ab42f5bbd196c3cf1ecbc2|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:309
msgid "Send global model"
msgstr "Envoyer le modèle global"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:232
msgid ""
"Step 2: Train model locally on the data of each organization/device "
"(client node)"
msgstr ""
"Étape 2 : Entraîne le modèle localement sur les données de chaque "
"organisation/appareil (nœud client)"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:234
msgid ""
"Now that all (selected) client nodes have the latest version of the "
"global model parameters, they start the local training. They use their "
"own local dataset to train their own local model. They don't train the "
"model until full convergence, but they only train for a little while. "
"This could be as little as one epoch on the local data, or even just a "
"few steps (mini-batches)."
msgstr ""
"Maintenant que tous les nœuds clients (sélectionnés) disposent de la "
"dernière version des paramètres du modèle global, ils commencent "
"l'entraînement local. Ils utilisent leur propre ensemble de données "
"locales pour entraîner leur propre modèle local. Ils n'entraînent pas le "
"modèle jusqu'à la convergence totale, mais ils ne s'entraînent que "
"pendant un petit moment. Il peut s'agir d'une seule époque sur les "
"données locales, ou même de quelques étapes (mini-batchs)."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:240
msgid "|edfb08758c9441afb6736045a59e154c|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:311
msgid "Train on local data"
msgstr "Forme-toi aux données locales"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:247
msgid "Step 3: Return model updates back to the server"
msgstr "Étape 3 : Renvoyer les mises à jour du modèle au serveur"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:249
msgid ""
"After local training, each client node has a slightly different version "
"of the model parameters they originally received. The parameters are all "
"different because each client node has different examples in its local "
"dataset. The client nodes then send those model updates back to the "
"server. The model updates they send can either be the full model "
"parameters or just the gradients that were accumulated during local "
"training."
msgstr ""
"Après l'entraînement local, chaque nœud client possède une version "
"légèrement différente des paramètres du modèle qu'il a reçus à l'origine."
" Les paramètres sont tous différents parce que chaque nœud client a des "
"exemples différents dans son ensemble de données local. Les nœuds clients"
" renvoient ensuite ces mises à jour du modèle au serveur. Les mises à "
"jour du modèle qu'ils envoient peuvent être soit les paramètres complets "
"du modèle, soit seulement les gradients qui ont été accumulés au cours de"
" l'entraînement local."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:255
msgid "|82338b8bbad24d5ea9df3801aab37852|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:313
msgid "Send model updates"
msgstr "Envoyer les mises à jour du modèle"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:262
msgid "Step 4: Aggregate model updates into a new global model"
msgstr ""
"Étape 4 : Agréger les mises à jour des modèles dans un nouveau modèle "
"global"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:264
msgid ""
"The server receives model updates from the selected client nodes. If it "
"selected 100 client nodes, it now has 100 slightly different versions of "
"the original global model, each trained on the local data of one client. "
"But didn't we want to have one model that contains the learnings from the"
" data of all 100 client nodes?"
msgstr ""
"Le serveur reçoit les mises à jour du modèle des nœuds clients "
"sélectionnés. S'il a sélectionné 100 nœuds clients, il dispose maintenant"
" de 100 versions légèrement différentes du modèle global original, "
"chacune ayant été formée sur les données locales d'un client. Mais ne "
"voulions-nous pas avoir un seul modèle qui contienne les apprentissages "
"des données de l'ensemble des 100 nœuds clients ?"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:266
#, fuzzy
msgid ""
"In order to get one single model, we have to combine all the model "
"updates we received from the client nodes. This process is called "
"*aggregation*, and there are many different ways to do it. The most basic"
" way is called *Federated Averaging* (`McMahan et al., 2016 "
"<https://arxiv.org/abs/1602.05629>`__), often abbreviated as *FedAvg*. "
"*FedAvg* takes the 100 model updates and, as the name suggests, averages "
"them. To be more precise, it takes the *weighted average* of the model "
"updates, weighted by the number of examples each client used for "
"training. The weighting is important to make sure that each data example "
"has the same \"influence\" on the resulting global model. If one client "
"has 10 examples, and another client has 100 examples, then - without "
"weighting - each of the 10 examples would influence the global model ten "
"times as much as each of the 100 examples."
msgstr ""
"In order to get one single model, we have to combine all the model "
"updates we received from the client nodes. This process is called "
"*aggregation*, and there are many different ways to do it. The most basic"
" way to do it is called *Federated Averaging* (`McMahan et al., 2016 "
"<https://arxiv.org/abs/1602.05629>`__), often abbreviated as *FedAvg*. "
"*FedAvg* takes the 100 model updates and, as the name suggests, averages "
"them. To be more precise, it takes the *weighted average* of the model "
"updates, weighted by the number of examples each client used for "
"training. The weighting is important to make sure that each data example "
"has the same \"influence\" on the resulting global model. If one client "
"has 10 examples, and another client has 100 examples, then - without "
"weighting - each of the 10 examples would influence the global model ten "
"times as much as each of the 100 examples."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:273
msgid "|518d994dd2c844898b441da03b858326|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:315
msgid "Aggregate model updates"
msgstr "Mises à jour globales du modèle"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:280
msgid "Step 5: Repeat steps 1 to 4 until the model converges"
msgstr "Étape 5 : répète les étapes 1 à 4 jusqu'à ce que le modèle converge"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:282
msgid ""
"Steps 1 to 4 are what we call a single round of federated learning. The "
"global model parameters get sent to the participating client nodes (step "
"1), the client nodes train on their local data (step 2), they send their "
"updated models to the server (step 3), and the server then aggregates the"
" model updates to get a new version of the global model (step 4)."
msgstr ""
"Les étapes 1 à 4 constituent ce que nous appelons un cycle unique "
"d'apprentissage fédéré. Les paramètres du modèle global sont envoyés aux "
"nœuds clients participants (étape 1), les nœuds clients s'entraînent sur "
"leurs données locales (étape 2), ils envoient leurs modèles mis à jour au"
" serveur (étape 3), et le serveur agrège ensuite les mises à jour du "
"modèle pour obtenir une nouvelle version du modèle global (étape 4)."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:284
#, fuzzy
msgid ""
"During a single round, each client node that participates in that "
"iteration only trains for a little while. This means that after the "
"aggregation step (step 4), we have a model that has been trained on all "
"the data of all participating client nodes, but only for a little while. "
"We then have to repeat this training process over and over again to "
"eventually arrive at a fully trained model that performs well across the "
"data of all client nodes."
msgstr ""
"Au cours d'un seul tour, chaque nœud client qui participe à cette "
"itération ne s'entraîne que pendant un petit moment. Cela signifie "
"qu'après l'étape d'agrégation (étape 4), nous avons un modèle qui a été "
"entraîné sur toutes les données de tous les nœuds clients participants, "
"mais seulement pendant un petit moment. Nous devons ensuite répéter ce "
"processus d'entraînement encore et encore pour finalement arriver à un "
"modèle entièrement entraîné qui fonctionne bien sur l'ensemble des "
"données de tous les nœuds clients."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:289
msgid ""
"Congratulations, you now understand the basics of federated learning. "
"There's a lot more to discuss, of course, but that was federated learning"
" in a nutshell. In later parts of this tutorial, we will go into more "
"detail. Interesting questions include: How can we select the best client "
"nodes that should participate in the next round? What's the best way to "
"aggregate model updates? How can we handle failing client nodes "
"(stragglers)?"
msgstr ""
"Félicitations, tu comprends maintenant les bases de l'apprentissage "
"fédéré. Il y a bien sûr beaucoup plus à discuter, mais c'était "
"l'apprentissage fédéré en quelques mots. Dans les parties suivantes de ce"
" tutoriel, nous irons plus en détail. Les questions intéressantes "
"comprennent : comment pouvons-nous sélectionner les meilleurs nœuds "
"clients qui devraient participer au prochain tour ? Quelle est la "
"meilleure façon d'agréger les mises à jour du modèle ? Comment pouvons-"
"nous gérer les nœuds clients qui échouent (stragglers) ?"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:294
#, fuzzy
msgid ""
"Just like we can train a model on the decentralized data of different "
"client nodes, we can also evaluate the model on that data to receive "
"valuable metrics. This is called federated evaluation, sometimes "
"abbreviated as FE. In fact, federated evaluation is an integral part of "
"most federated learning systems."
msgstr ""
"Tout comme nous pouvons former un modèle sur les données décentralisées "
"de différents nœuds clients, nous pouvons également évaluer le modèle sur"
" ces données pour recevoir des mesures précieuses. C'est ce qu'on appelle"
" l'évaluation fédérée, parfois abrégée en FE. En fait, l'évaluation "
"fédérée fait partie intégrante de la plupart des systèmes d'apprentissage"
" fédéré."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:297
#, fuzzy
msgid "Federated Analytics"
msgstr "Analyses fédérées"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:299
msgid ""
"In many cases, machine learning isn't necessary to derive value from "
"data. Data analysis can yield valuable insights, but again, there's often"
" not enough data to get a clear answer. What's the average age at which "
"people develop a certain type of health condition? Federated analytics "
"enables such queries over multiple client nodes. It is usually used in "
"conjunction with other privacy-enhancing technologies like secure "
"aggregation to prevent the server from seeing the results submitted by "
"individual client nodes."
msgstr ""
"Dans de nombreux cas, l'apprentissage automatique n'est pas nécessaire "
"pour tirer de la valeur des données. L'analyse des données peut donner "
"des indications précieuses, mais là encore, il n'y a souvent pas assez de"
" données pour obtenir une réponse claire. Quel est l'âge moyen auquel les"
" gens développent un certain type de problème de santé ? L'analyse "
"fédérée permet de telles requêtes sur plusieurs nœuds clients. Elle est "
"généralement utilisée en conjonction avec d'autres technologies de "
"renforcement de la confidentialité, comme l'agrégation sécurisée, pour "
"empêcher le serveur de voir les résultats soumis par les nœuds clients "
"individuels."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:305
msgid ""
"Differential privacy (DP) is often mentioned in the context of Federated "
"Learning. It is a privacy-preserving method used when analyzing and "
"sharing statistical data, ensuring the privacy of individual "
"participants. DP achieves this by adding statistical noise to the model "
"updates, ensuring any individual participants’ information cannot be "
"distinguished or re-identified. This technique can be considered an "
"optimization that provides a quantifiable privacy protection measure."
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:326
msgid "Flower"
msgstr "Fleur"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:328
msgid ""
"Federated learning, federated evaluation, and federated analytics require"
" infrastructure to move machine learning models back and forth, train and"
" evaluate them on local data, and then aggregate the updated models. "
"Flower provides the infrastructure to do exactly that in an easy, "
"scalable, and secure way. In short, Flower presents a unified approach to"
" federated learning, analytics, and evaluation. It allows the user to "
"federate any workload, any ML framework, and any programming language."
msgstr ""
"L'apprentissage fédéré, l'évaluation fédérée et l'analyse fédérée "
"nécessitent une infrastructure pour déplacer les modèles d'apprentissage "
"automatique dans les deux sens, les entraîner et les évaluer sur des "
"données locales, puis agréger les modèles mis à jour. Flower fournit "
"l'infrastructure pour faire exactement cela de manière simple, évolutive "
"et sécurisée. En bref, Flower présente une approche unifiée de "
"l'apprentissage, de l'analyse et de l'évaluation fédérés. Il permet à "
"l'utilisateur de fédérer n'importe quelle charge de travail, n'importe "
"quel cadre de ML et n'importe quel langage de programmation."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:334
msgid "|7bfcfcb57ae5403f8e18486f45ca48b4|"
msgstr ""

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:340
msgid ""
"Flower federated learning server and client nodes (car, scooter, personal"
" computer, roomba, and phone)"
msgstr ""
"Serveur d'apprentissage fédéré de Flower et nœuds clients (voiture, "
"scooter, ordinateur personnel, roomba et téléphone)"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:351
#, fuzzy
msgid "Final Remarks"
msgstr "Remarques finales"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:353
msgid ""
"Congratulations, you just learned the basics of federated learning and "
"how it relates to the classic (centralized) machine learning!"
msgstr ""
"Félicitations, tu viens d'apprendre les bases de l'apprentissage fédéré "
"et son rapport avec l'apprentissage automatique classique (centralisé) !"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:355
msgid ""
"In the next part of this tutorial, we are going to build a first "
"federated learning system with Flower."
msgstr ""
"Dans la prochaine partie de ce tutoriel, nous allons construire un "
"premier système d'apprentissage fédéré avec Flower."

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:369
msgid ""
"Before you continue, make sure to join the Flower community on Slack: "
"`Join Slack <https://flower.ai/join-slack/>`__"
msgstr ""
"Avant de continuer, n'oublie pas de rejoindre la communauté Flower sur "
"Slack : `Join Slack <https://flower.ai/join-slack/>`__"

#: ../../source/tutorial-series-what-is-federated-learning.ipynb:373
#, fuzzy
msgid ""
"The `Flower Federated Learning Tutorial - Part 1 "
"<https://flower.ai/docs/framework/tutorial-get-started-with-flower-"
"pytorch.html>`__ shows how to build a simple federated learning system "
"with PyTorch and Flower."
msgstr ""
"Le `Tutoriel d'apprentissage fédéré Flower - Partie 1 "
"<https://flower.ai/docs/tutorial/Flower-1-Intro-to-FL-PyTorch.html>`__ "
"montre comment construire un système d'apprentissage fédéré simple avec "
"PyTorch et Flower."

#~ msgid "Flower CLI commands"
#~ msgstr "Commandes CLI Flower"

#~ msgid "Contributor guide"
#~ msgstr "Guide pour les contributeurs"

#~ msgid "API Reference - Flower CLI commands"
#~ msgstr "Référence API - Commandes CLI pour Flower"

#~ msgid "API Reference - flwr (Python package)"
#~ msgstr "Référence API - flwr (paquetage Python)"

#~ msgid "Flower client."
#~ msgstr "Client de Flower"

#~ msgid "Abstract base class for Flower clients."
#~ msgstr ""

#~ msgid "Evaluate the provided parameters using the locally held dataset."
#~ msgstr "évaluer le modèle mis à jour sur l'ensemble de test local"

#~ msgid "Parameters"
#~ msgstr "Paramètres du modèle."

#~ msgid ""
#~ "The evaluation instructions containing "
#~ "(global) model parameters received from "
#~ "the server and a dictionary of "
#~ "configuration values used to customize "
#~ "the local evaluation process."
#~ msgstr ""

#~ msgid "Returns"
#~ msgstr "Ressources"

#~ msgid ""
#~ "The evaluation result containing the "
#~ "loss on the local dataset and "
#~ "other details such as the number "
#~ "of local data examples used for "
#~ "evaluation."
#~ msgstr ""

#~ msgid "Return type"
#~ msgstr ""

#~ msgid "Refine the provided parameters using the locally held dataset."
#~ msgstr ""

#~ msgid ""
#~ "The training instructions containing (global)"
#~ " model parameters received from the "
#~ "server and a dictionary of configuration"
#~ " values used to customize the local"
#~ " training process."
#~ msgstr ""

#~ msgid ""
#~ "The training result containing updated "
#~ "parameters and other details such as "
#~ "the number of local training examples"
#~ " used for training."
#~ msgstr ""

#~ msgid "Return the current local model parameters."
#~ msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#~ msgid ""
#~ "The get parameters instructions received "
#~ "from the server containing a dictionary"
#~ " of configuration values."
#~ msgstr ""

#~ msgid "The current local model parameters."
#~ msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#~ msgid "Return set of client's properties."
#~ msgstr ""

#~ msgid ""
#~ "The get properties instructions received "
#~ "from the server containing a dictionary"
#~ " of configuration values."
#~ msgstr ""

#~ msgid "The current client properties."
#~ msgstr ""

#~ msgid "Start a Flower client node which connects to a Flower server."
#~ msgstr ""

#~ msgid ""
#~ "The IPv4 or IPv6 address of the"
#~ " server. If the Flower server runs"
#~ " on the same machine on port "
#~ "8080, then `server_address` would be "
#~ "`\"[::]:8080\"`."
#~ msgstr ""

#~ msgid "An implementation of the abstract base class `flwr.client.Client`."
#~ msgstr ""

#~ msgid ""
#~ "The maximum length of gRPC messages "
#~ "that can be exchanged with the "
#~ "Flower server. The default should be "
#~ "sufficient for most models. Users who"
#~ " train very large models might need"
#~ " to increase this value. Note that"
#~ " the Flower server needs to be "
#~ "started with the same value (see "
#~ "`flwr.server.start_server`), otherwise it will "
#~ "not know about the increased limit "
#~ "and block larger messages."
#~ msgstr ""

#~ msgid ""
#~ "The PEM-encoded root certificates as "
#~ "a byte string or a path string."
#~ " If provided, a secure connection "
#~ "using the certificates will be "
#~ "established to an SSL-enabled Flower "
#~ "server."
#~ msgstr ""

#~ msgid ""
#~ "DEPRECATED - USE 'transport' INSTEAD. "
#~ "Defines whether or not the client "
#~ "is interacting with the server using "
#~ "the experimental REST API. This feature"
#~ " is experimental, it might change "
#~ "considerably in future versions of "
#~ "Flower."
#~ msgstr ""
#~ "DÉPRÉCIÉ - UTILISER 'transport' À LA "
#~ "PLACE Définit si le client interagit "
#~ "ou non avec le serveur à l'aide"
#~ " de l'API REST expérimentale. Cette "
#~ "fonctionnalité est expérimentale, elle "
#~ "pourrait changer considérablement dans les "
#~ "futures versions de Flower."

#~ msgid ""
#~ "Configure the transport layer. Allowed "
#~ "values: - 'grpc-bidi': gRPC, "
#~ "bidirectional streaming - 'grpc-rere': "
#~ "gRPC, request-response (experimental) - "
#~ "'rest': HTTP (experimental)"
#~ msgstr ""
#~ "Valeurs autorisées : - 'grpc-bidi' "
#~ ": gRPC, flux bidirectionnel - 'grpc-"
#~ "rere' : gRPC, requête-réponse "
#~ "(expérimental) - 'rest' : HTTP "
#~ "(expérimental)"

#~ msgid "Starting a gRPC client with an insecure server connection:"
#~ msgstr ""

#~ msgid "Starting an SSL-enabled gRPC client:"
#~ msgstr ""

#~ msgid "Abstract base class for Flower clients using NumPy."
#~ msgstr ""

#~ msgid "The current (global) model parameters."
#~ msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#~ msgid ""
#~ "Configuration parameters which allow the "
#~ "server to influence evaluation on the"
#~ " client. It can be used to "
#~ "communicate arbitrary values from the "
#~ "server to the client, for example, "
#~ "to influence the number of examples "
#~ "used for evaluation."
#~ msgstr ""

#~ msgid ""
#~ "* **loss** (*float*) -- The evaluation"
#~ " loss of the model on the local"
#~ " dataset. * **num_examples** (*int*) -- "
#~ "The number of examples used for "
#~ "evaluation. * **metrics** (*Dict[str, "
#~ "Scalar]*) -- A dictionary mapping "
#~ "arbitrary string keys to values of   "
#~ "type bool, bytes, float, int, or "
#~ "str. It can be used to   "
#~ "communicate arbitrary values back to the"
#~ " server."
#~ msgstr ""

#~ msgid ""
#~ "**loss** (*float*) -- The evaluation "
#~ "loss of the model on the local "
#~ "dataset."
#~ msgstr ""

#~ msgid "**num_examples** (*int*) -- The number of examples used for evaluation."
#~ msgstr ""

#~ msgid ""
#~ "**metrics** (*Dict[str, Scalar]*) -- A "
#~ "dictionary mapping arbitrary string keys "
#~ "to values of type bool, bytes, "
#~ "float, int, or str. It can be "
#~ "used to communicate arbitrary values "
#~ "back to the server."
#~ msgstr ""

#~ msgid ""
#~ "The previous return type format (int,"
#~ " float, float) and the extended "
#~ "format (int, float, float, Dict[str, "
#~ "Scalar]) have been deprecated and "
#~ "removed since Flower 0.19."
#~ msgstr ""

#~ msgid "Train the provided parameters using the locally held dataset."
#~ msgstr "entraîne le modèle sur l'ensemble d'apprentissage local"

#~ msgid ""
#~ "Configuration parameters which allow the "
#~ "server to influence training on the "
#~ "client. It can be used to "
#~ "communicate arbitrary values from the "
#~ "server to the client, for example, "
#~ "to set the number of (local) "
#~ "training epochs."
#~ msgstr ""

#~ msgid ""
#~ "* **parameters** (*NDArrays*) -- The "
#~ "locally updated model parameters. * "
#~ "**num_examples** (*int*) -- The number "
#~ "of examples used for training. * "
#~ "**metrics** (*Dict[str, Scalar]*) -- A "
#~ "dictionary mapping arbitrary string keys "
#~ "to values of type   bool, bytes, "
#~ "float, int, or str. It can be "
#~ "used to communicate   arbitrary values "
#~ "back to the server."
#~ msgstr ""

#~ msgid "**parameters** (*NDArrays*) -- The locally updated model parameters."
#~ msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#~ msgid "**num_examples** (*int*) -- The number of examples used for training."
#~ msgstr ""

#~ msgid ""
#~ "Configuration parameters requested by the "
#~ "server. This can be used to tell"
#~ " the client which parameters are "
#~ "needed along with some Scalar "
#~ "attributes."
#~ msgstr ""

#~ msgid ""
#~ "**parameters** -- The local model "
#~ "parameters as a list of NumPy "
#~ "ndarrays."
#~ msgstr "renvoie le poids du modèle sous la forme d'une liste de ndarrays NumPy"

#~ msgid "Return a client's set of properties."
#~ msgstr "Renvoie l'ensemble des propriétés d'un client."

#~ msgid ""
#~ "Configuration parameters requested by the "
#~ "server. This can be used to tell"
#~ " the client which properties are "
#~ "needed along with some Scalar "
#~ "attributes."
#~ msgstr ""

#~ msgid ""
#~ "**properties** -- A dictionary mapping "
#~ "arbitrary string keys to values of "
#~ "type bool, bytes, float, int, or "
#~ "str. It can be used to communicate"
#~ " arbitrary property values back to "
#~ "the server."
#~ msgstr ""

#~ msgid "Start a Flower NumPyClient which connects to a gRPC server."
#~ msgstr ""

#~ msgid "An implementation of the abstract base class `flwr.client.NumPyClient`."
#~ msgstr ""

#~ msgid "Starting a client with an insecure server connection:"
#~ msgstr ""

#~ msgid "Starting a SSL-enabled client:"
#~ msgstr ""

#~ msgid "Start a Ray-based Flower simulation server."
#~ msgstr "Simulation de moniteur"

#~ msgid ""
#~ "A function creating client instances. "
#~ "The function must take a single "
#~ "`str` argument called `cid`. It should"
#~ " return a single client instance of"
#~ " type ClientLike. Note that the "
#~ "created client instances are ephemeral "
#~ "and will often be destroyed after "
#~ "a single method invocation. Since client"
#~ " instances are not long-lived, they"
#~ " should not attempt to carry state"
#~ " over method invocations. Any state "
#~ "required by the instance (model, "
#~ "dataset, hyperparameters, ...) should be "
#~ "(re-)created in either the call to "
#~ "`client_fn` or the call to any of"
#~ " the client methods (e.g., load "
#~ "evaluation data in the `evaluate` method"
#~ " itself)."
#~ msgstr ""
#~ "Une fonction créant des instances de "
#~ "client. La fonction doit prendre un "
#~ "seul argument `str` appelé `cid`. Elle"
#~ " doit retourner une seule instance de"
#~ " client de type ClientLike. Notez que"
#~ " les instances de client créées sont"
#~ " éphémères et seront souvent détruites "
#~ "après une seule invocation de méthode."
#~ " Puisque les instances de client ne"
#~ " sont pas de longue durée, elles "
#~ "ne doivent pas essayer de transporter"
#~ " l'état sur les invocations de "
#~ "méthode. Tout état requis par l'instance"
#~ " (modèle, jeu de données, hyperparamètres,"
#~ " ...) doit être (re)créé dans l'appel"
#~ " à `client_fn` ou dans l'appel à "
#~ "n'importe quelle méthode de client (par"
#~ " exemple, charger les données d'évaluation"
#~ " dans la méthode `evaluate` elle-"
#~ "même)."

#~ msgid ""
#~ "The total number of clients in "
#~ "this simulation. This must be set "
#~ "if `clients_ids` is not set and "
#~ "vice-versa."
#~ msgstr ""

#~ msgid ""
#~ "List `client_id`s for each client. This"
#~ " is only required if `num_clients` is"
#~ " not set. Setting both `num_clients` "
#~ "and `clients_ids` with `len(clients_ids)` not"
#~ " equal to `num_clients` generates an "
#~ "error."
#~ msgstr ""

#~ msgid ""
#~ "CPU and GPU resources for a single"
#~ " client. Supported keys are `num_cpus` "
#~ "and `num_gpus`. Example: `{\"num_cpus\": 4,"
#~ " \"num_gpus\": 1}`. To understand the "
#~ "GPU utilization caused by `num_gpus`, "
#~ "consult the Ray documentation on GPU "
#~ "support."
#~ msgstr ""

#~ msgid ""
#~ "An implementation of the abstract base"
#~ " class `flwr.server.Server`. If no instance"
#~ " is provided, then `start_server` will "
#~ "create one."
#~ msgstr ""
#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer"
#~ " vers `flwr.server.strategy.FedAvg`, qui est "
#~ "équivalent)"

#~ msgid ""
#~ "Currently supported values are `num_rounds`"
#~ " (int, default: 1) and `round_timeout` "
#~ "in seconds (float, default: None)."
#~ msgstr ""

#~ msgid ""
#~ "An implementation of the abstract base"
#~ " class `flwr.server.Strategy`. If no "
#~ "strategy is provided, then `start_server` "
#~ "will use `flwr.server.strategy.FedAvg`."
#~ msgstr ""
#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer"
#~ " vers `flwr.server.strategy.FedAvg`, qui est "
#~ "équivalent)"

#~ msgid ""
#~ "An implementation of the abstract base"
#~ " class `flwr.server.ClientManager`. If no "
#~ "implementation is provided, then "
#~ "`start_simulation` will use "
#~ "`flwr.server.client_manager.SimpleClientManager`."
#~ msgstr ""
#~ "Déclasser `flwr.server.strategy.DefaultStrategy` (migrer"
#~ " vers `flwr.server.strategy.FedAvg`, qui est "
#~ "équivalent)"

#~ msgid ""
#~ "Optional dictionary containing arguments for"
#~ " the call to `ray.init`. If "
#~ "ray_init_args is None (the default), Ray"
#~ " will be initialized with the "
#~ "following default args:  { "
#~ "\"ignore_reinit_error\": True, \"include_dashboard\": "
#~ "False }  An empty dictionary can "
#~ "be used (ray_init_args={}) to prevent "
#~ "any arguments from being passed to "
#~ "ray.init."
#~ msgstr ""

#~ msgid ""
#~ "Optional dictionary containing arguments for"
#~ " the call to `ray.init`. If "
#~ "ray_init_args is None (the default), Ray"
#~ " will be initialized with the "
#~ "following default args:"
#~ msgstr ""

#~ msgid "{ \"ignore_reinit_error\": True, \"include_dashboard\": False }"
#~ msgstr ""

#~ msgid ""
#~ "An empty dictionary can be used "
#~ "(ray_init_args={}) to prevent any arguments"
#~ " from being passed to ray.init."
#~ msgstr ""

#~ msgid ""
#~ "Set to True to prevent `ray.shutdown()`"
#~ " in case `ray.is_initialized()=True`."
#~ msgstr ""

#~ msgid "**hist** -- Object containing metrics from training."
#~ msgstr ""

#~ msgid "Flower server."
#~ msgstr "Serveur de Flower"

#~ msgid "Start a Flower server using the gRPC transport layer."
#~ msgstr ""

#~ msgid "The IPv4 or IPv6 address of the server. Defaults to `\"[::]:8080\"`."
#~ msgstr ""

#~ msgid ""
#~ "A server implementation, either "
#~ "`flwr.server.Server` or a subclass thereof."
#~ " If no instance is provided, then "
#~ "`start_server` will create one."
#~ msgstr ""

#~ msgid ""
#~ "An implementation of the abstract base"
#~ " class `flwr.server.strategy.Strategy`. If no "
#~ "strategy is provided, then `start_server` "
#~ "will use `flwr.server.strategy.FedAvg`."
#~ msgstr ""

#~ msgid ""
#~ "An implementation of the abstract base"
#~ " class `flwr.server.ClientManager`. If no "
#~ "implementation is provided, then "
#~ "`start_server` will use "
#~ "`flwr.server.client_manager.SimpleClientManager`."
#~ msgstr ""

#~ msgid ""
#~ "The maximum length of gRPC messages "
#~ "that can be exchanged with the "
#~ "Flower clients. The default should be"
#~ " sufficient for most models. Users "
#~ "who train very large models might "
#~ "need to increase this value. Note "
#~ "that the Flower clients need to be"
#~ " started with the same value (see "
#~ "`flwr.client.start_client`), otherwise clients will"
#~ " not know about the increased limit"
#~ " and block larger messages."
#~ msgstr ""

#~ msgid ""
#~ "Tuple containing root certificate, server "
#~ "certificate, and private key to start"
#~ " a secure SSL-enabled server. The "
#~ "tuple is expected to have three "
#~ "bytes elements in the following order:"
#~ "      * CA certificate.     * server "
#~ "certificate.     * server private key."
#~ msgstr ""

#~ msgid ""
#~ "Tuple containing root certificate, server "
#~ "certificate, and private key to start"
#~ " a secure SSL-enabled server. The "
#~ "tuple is expected to have three "
#~ "bytes elements in the following order:"
#~ msgstr ""

#~ msgid "CA certificate."
#~ msgstr "Certificats"

#~ msgid "server certificate."
#~ msgstr "Certificats"

#~ msgid "server private key."
#~ msgstr "stratégie.du.serveur"

#~ msgid "**hist** -- Object containing training and evaluation metrics."
#~ msgstr ""

#~ msgid "Starting an insecure server:"
#~ msgstr "Démarrer le serveur"

#~ msgid "Starting an SSL-enabled server:"
#~ msgstr "Démarrer le serveur"

#~ msgid "Contains the strategy abstraction and different implementations."
#~ msgstr ""

#~ msgid "Abstract base class for server strategy implementations."
#~ msgstr ""

#~ msgid "The current round of federated learning."
#~ msgstr "Qu'est-ce que l'apprentissage fédéré ?"

#~ msgid ""
#~ "Successful updates from the previously "
#~ "selected and configured clients. Each "
#~ "pair of `(ClientProxy, FitRes` constitutes "
#~ "a successful update from one of "
#~ "the previously selected clients. Not "
#~ "that not all previously selected clients"
#~ " are necessarily included in this "
#~ "list: a client might drop out and"
#~ " not submit a result. For each "
#~ "client that did not submit an "
#~ "update, there should be an `Exception`"
#~ " in `failures`."
#~ msgstr ""

#~ msgid ""
#~ "Exceptions that occurred while the "
#~ "server was waiting for client updates."
#~ msgstr ""

#~ msgid ""
#~ "**aggregation_result** -- The aggregated "
#~ "evaluation result. Aggregation typically uses"
#~ " some variant of a weighted average."
#~ msgstr ""

#~ msgid "Aggregate training results."
#~ msgstr "Résultats globaux de l'évaluation."

#~ msgid ""
#~ "Successful updates from the previously "
#~ "selected and configured clients. Each "
#~ "pair of `(ClientProxy, FitRes)` constitutes"
#~ " a successful update from one of "
#~ "the previously selected clients. Not "
#~ "that not all previously selected clients"
#~ " are necessarily included in this "
#~ "list: a client might drop out and"
#~ " not submit a result. For each "
#~ "client that did not submit an "
#~ "update, there should be an `Exception`"
#~ " in `failures`."
#~ msgstr ""

#~ msgid ""
#~ "**parameters** -- If parameters are "
#~ "returned, then the server will treat "
#~ "these as the new global model "
#~ "parameters (i.e., it will replace the"
#~ " previous parameters with the ones "
#~ "returned from this method). If `None`"
#~ " is returned (e.g., because there "
#~ "were only failures and no viable "
#~ "results) then the server will no "
#~ "update the previous model parameters, "
#~ "the updates received in this round "
#~ "are discarded, and the global model "
#~ "parameters remain the same."
#~ msgstr ""

#~ msgid "Configure the next round of evaluation."
#~ msgstr "Configuration de l'évaluation côté serveur"

#~ msgid "The client manager which holds all currently connected clients."
#~ msgstr ""

#~ msgid ""
#~ "**evaluate_configuration** -- A list of "
#~ "tuples. Each tuple in the list "
#~ "identifies a `ClientProxy` and the "
#~ "`EvaluateIns` for this particular "
#~ "`ClientProxy`. If a particular `ClientProxy`"
#~ " is not included in this list, "
#~ "it means that this `ClientProxy` will"
#~ " not participate in the next round"
#~ " of federated evaluation."
#~ msgstr ""

#~ msgid "Configure the next round of training."
#~ msgstr ""

#~ msgid ""
#~ "**fit_configuration** -- A list of "
#~ "tuples. Each tuple in the list "
#~ "identifies a `ClientProxy` and the "
#~ "`FitIns` for this particular `ClientProxy`."
#~ " If a particular `ClientProxy` is not"
#~ " included in this list, it means "
#~ "that this `ClientProxy` will not "
#~ "participate in the next round of "
#~ "federated learning."
#~ msgstr ""

#~ msgid "Evaluate the current model parameters."
#~ msgstr "``get_parameters`` : renvoie les paramètres du modèle local actuel"

#~ msgid ""
#~ "This function can be used to "
#~ "perform centralized (i.e., server-side) "
#~ "evaluation of model parameters."
#~ msgstr ""

#~ msgid ""
#~ "**evaluation_result** -- The evaluation "
#~ "result, usually a Tuple containing loss"
#~ " and a dictionary containing task-"
#~ "specific metrics (e.g., accuracy)."
#~ msgstr ""

#~ msgid "Initialize the (global) model parameters."
#~ msgstr "Initialise le modèle global"

#~ msgid ""
#~ "**parameters** -- If parameters are "
#~ "returned, then the server will treat "
#~ "these as the initial global model "
#~ "parameters."
#~ msgstr ""

#~ msgid "Configurable FedAvg strategy implementation."
#~ msgstr "Configuration de l'évaluation fédérée"

#~ msgid "Implementation based on https://arxiv.org/abs/1602.05629"
#~ msgstr ""

#~ msgid ""
#~ "Fraction of clients used during "
#~ "training. In case `min_fit_clients` is "
#~ "larger than `fraction_fit * "
#~ "available_clients`, `min_fit_clients` will still "
#~ "be sampled. Defaults to 1.0."
#~ msgstr ""

#~ msgid ""
#~ "Fraction of clients used during "
#~ "validation. In case `min_evaluate_clients` is"
#~ " larger than `fraction_evaluate * "
#~ "available_clients`, `min_evaluate_clients` will "
#~ "still be sampled. Defaults to 1.0."
#~ msgstr ""

#~ msgid "Minimum number of clients used during training. Defaults to 2."
#~ msgstr ""

#~ msgid "Minimum number of clients used during validation. Defaults to 2."
#~ msgstr ""

#~ msgid "Minimum number of total clients in the system. Defaults to 2."
#~ msgstr ""

#~ msgid "Optional function used for validation. Defaults to None."
#~ msgstr ""

#~ msgid "Function used to configure training. Defaults to None."
#~ msgstr ""

#~ msgid "Function used to configure validation. Defaults to None."
#~ msgstr ""

#~ msgid "Whether or not accept rounds containing failures. Defaults to True."
#~ msgstr ""

#~ msgid "Initial global model parameters."
#~ msgstr "Initialise le modèle global"

#~ msgid "Metrics aggregation function, optional."
#~ msgstr ""

#~ msgid "Aggregate evaluation losses using weighted average."
#~ msgstr "Résultats globaux de l'évaluation."

#~ msgid "Aggregate fit results using weighted average."
#~ msgstr ""

#~ msgid "Evaluate model parameters using an evaluation function."
#~ msgstr ""

#~ msgid "Initialize global model parameters."
#~ msgstr "Initialise le modèle global"

#~ msgid "Use a fraction of available clients for evaluation."
#~ msgstr ""

#~ msgid "Return the sample size and the required number of available clients."
#~ msgstr ""

#~ msgid "Configurable FedAvg with Momentum strategy implementation."
#~ msgstr ""

#~ msgid "Federated Averaging with Momentum strategy."
#~ msgstr "Stratégie de moyenne fédérée."

#~ msgid "Implementation based on https://arxiv.org/pdf/1909.06335.pdf"
#~ msgstr ""

#~ msgid "Fraction of clients used during training. Defaults to 0.1."
#~ msgstr ""

#~ msgid "Fraction of clients used during validation. Defaults to 0.1."
#~ msgstr ""

#~ msgid ""
#~ "Server-side learning rate used in "
#~ "server-side optimization. Defaults to 1.0."
#~ msgstr ""

#~ msgid "Server-side momentum factor used for FedAvgM. Defaults to 0.0."
#~ msgstr ""

#~ msgid "Configurable QFedAvg strategy implementation."
#~ msgstr ""

#~ msgid "Configurable fault-tolerant FedAvg strategy implementation."
#~ msgstr ""

#~ msgid "Configurable FedAdagrad strategy implementation."
#~ msgstr ""

#~ msgid "Federated Optim strategy interface."
#~ msgstr ""

#~ msgid "Implementation based on https://arxiv.org/abs/2003.00295v5"
#~ msgstr ""
#~ "FedYogi - Stratégie d'apprentissage fédéré "
#~ "utilisant Yogi côté serveur. Mise en "
#~ "oeuvre basée sur https://arxiv.org/abs/2003.00295"

#~ msgid "Fraction of clients used during training. Defaults to 1.0."
#~ msgstr ""

#~ msgid "Fraction of clients used during validation. Defaults to 1.0."
#~ msgstr ""

#~ msgid "Server-side learning rate. Defaults to 1e-1."
#~ msgstr ""

#~ msgid "Client-side learning rate. Defaults to 1e-1."
#~ msgstr ""

#~ msgid "Momentum parameter. Defaults to 0.0."
#~ msgstr ""

#~ msgid "Second moment parameter. Defaults to 0.0."
#~ msgstr ""

#~ msgid "Controls the algorithm's degree of adaptability. Defaults to 1e-9."
#~ msgstr ""

#~ msgid "Configurable FedProx strategy implementation."
#~ msgstr ""

#~ msgid "Federated Optimization strategy."
#~ msgstr "Stratégie de moyenne fédérée."

#~ msgid "Implementation based on https://arxiv.org/abs/1812.06127"
#~ msgstr ""

#~ msgid ""
#~ "The strategy in itself will not be"
#~ " different than FedAvg, the client "
#~ "needs to be adjusted. A proximal "
#~ "term needs to be added to the "
#~ "loss function during the training:"
#~ msgstr ""

#~ msgid ""
#~ "\\\\frac{\\\\mu}{2} || w - w^t ||^2\n"
#~ "\n"
#~ msgstr "\\\\frac{\\Nmu}{2} || w - w^t ||^2"

#~ msgid ""
#~ "Where $w^t$ are the global parameters"
#~ " and $w$ are the local weights "
#~ "the function will be optimized with."
#~ msgstr ""

#~ msgid "In PyTorch, for example, the loss would go from:"
#~ msgstr ""

#~ msgid "To:"
#~ msgstr ""

#~ msgid ""
#~ "With `global_params` being a copy of "
#~ "the parameters before the training takes"
#~ " place."
#~ msgstr ""

#~ msgid ""
#~ "The weight of the proximal term "
#~ "used in the optimization. 0.0 makes "
#~ "this strategy equivalent to FedAvg, and"
#~ " the higher the coefficient, the more"
#~ " regularization will be used (that "
#~ "is, the client parameters will need "
#~ "to be closer to the server "
#~ "parameters during training)."
#~ msgstr ""

#~ msgid "Sends the proximal factor mu to the clients"
#~ msgstr ""

#~ msgid "FedAdagrad strategy - Adaptive Federated Optimization using Adagrad."
#~ msgstr ""
#~ "Stratégie FedAdagrad - Optimisation fédérée"
#~ " adaptative à l'aide d'Adagrad."

#~ msgid "Paper: https://arxiv.org/abs/2003.00295"
#~ msgstr ""

#~ msgid "Federated learning strategy using Adagrad on server-side."
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " en utilisant fastai et Flower !"

#~ msgid "FedAdam - Adaptive Federated Optimization using Adam."
#~ msgstr "FedAdam - Optimisation fédérée adaptative utilisant Adam."

#~ msgid "Momentum parameter. Defaults to 0.9."
#~ msgstr ""

#~ msgid "Second moment parameter. Defaults to 0.99."
#~ msgstr ""

#~ msgid "FedYogi [Reddi et al., 2020] strategy."
#~ msgstr "Stratégie FedYogi [Reddi et al., 2020]."

#~ msgid "Adaptive Federated Optimization using Yogi."
#~ msgstr "Optimisation fédérée adaptative à l'aide de Yogi."

#~ msgid "Federated learning strategy using Yogi on server-side."
#~ msgstr "L'apprentissage fédéré en cinq étapes"

#~ msgid "Differential Privacy Wrappers in Flower"
#~ msgstr "Les enveloppes différentielles de confidentialité dans les fleurs"

#~ msgid "Evaluation"
#~ msgstr "Solution"

#~ msgid "Code examples"
#~ msgstr "Exemple de code complet"

#~ msgid ""
#~ "Flower Quickstart (PyTorch): coming soon "
#~ "(the TensorFlow/Keras example can easily "
#~ "be changed to make it work with"
#~ " PyTorch)"
#~ msgstr ""

#~ msgid "First time contributors"
#~ msgstr "Bonnes premières contributions"

#~ msgid "First MXNet 1.6 example (MNIST)"
#~ msgstr ""

#~ msgid "ImageNet (PyTorch/TensorFlow)"
#~ msgstr ""

#~ msgid "LSTM (PyTorch/TensorFlow)"
#~ msgstr ""

#~ msgid "Transformer (PyTorch/TensorFlow)"
#~ msgstr ""

#~ msgid "BERT (PyTorch/TensorFlow)"
#~ msgstr ""

#~ msgid "Logging"
#~ msgstr "Enregistrement"

#~ msgid "|cce04c6f539b421a91f5dba40287193f|"
#~ msgstr "|cce04c6f539b421a91f5dba40287193f|"

#~ msgid "|e392aef42ba248e19e35446f95a6d1ca|"
#~ msgstr "|e392aef42ba248e19e35446f95a6d1ca|"

#~ msgid "|7e028f44defe4f31a02debc729f2010d|"
#~ msgstr "|7e028f44defe4f31a02debc729f2010d|"

#~ msgid "|b89f7b7ae05e4ecd92baa69b7a9fe1be|"
#~ msgstr "|b89f7b7ae05e4ecd92baa69b7a9fe1be|"

#~ msgid "|9c0445ce962744e1a1c0a4abc697a334|"
#~ msgstr "|9c0445ce962744e1a1c0a4abc697a334|"

#~ msgid "|a3246766a6db412888131b3bcdad0971|"
#~ msgstr "|a3246766a6db412888131b3bcdad0971|"

#~ msgid "|db6f2bee32f143b8a5085b6a8ce1acd1|"
#~ msgstr "|db6f2bee32f143b8a5085b6a8ce1acd1|"

#~ msgid "|405653bc8f874e9595fd59cc82b3d48c|"
#~ msgstr "|405653bc8f874e9595fd59cc82b3d48c|"

#~ msgid "|073a728154ed406e8fe54e1d9f18dcb9|"
#~ msgstr "|073a728154ed406e8fe54e1d9f18dcb9|"

#~ msgid "|50e80ea4f22945848b65ed7eed35e0e1|"
#~ msgstr "|50e80ea4f22945848b65ed7eed35e0e1|"

#~ msgid "|f3cf9148d85e4b68b66b6c255b25e327|"
#~ msgstr "|f3cf9148d85e4b68b66b6c255b25e327|"

#~ msgid "|1fedb4f8714947e1b13f03696180c741|"
#~ msgstr "|1fedb4f8714947e1b13f03696180c741|"

#~ msgid "|a32d4ad1ccb34461942d75c7b2b51d65|"
#~ msgstr "|a32d4ad1ccb34461942d75c7b2b51d65|"

#~ msgid "|3531696c52904cd3b9944034ab959d48|"
#~ msgstr "|3531696c52904cd3b9944034ab959d48|"

#~ msgid "An Introduction to Federated Learning"
#~ msgstr "Mise à l'échelle de l'apprentissage fédéré"

#~ msgid "Strategies in Federated Learning"
#~ msgstr "Mise à l'échelle de l'apprentissage fédéré"

#~ msgid "Building a Strategy"
#~ msgstr "Stratégies intégrées"

#~ msgid "Client and NumPyClient"
#~ msgstr "NumPyClient"

#~ msgid "Strategies"
#~ msgstr "Stratégies personnalisées"

#~ msgid "SSL-enabled Server and Client"
#~ msgstr ""

#~ msgid "About these documents"
#~ msgstr "À propos de ces documents"

#~ msgid "Index"
#~ msgstr "Index"

#~ msgid "Search"
#~ msgstr "Recherche"

#~ msgid "Copyright"
#~ msgstr "Droits d'auteur"

#~ msgid "Save Progress"
#~ msgstr ""

#~ msgid ""
#~ "The Flower server does not prescribe "
#~ "a way to persist model updates or"
#~ " evaluation results. Flower does not "
#~ "(yet) automatically save model updates "
#~ "on the server-side. It's on the"
#~ " roadmap to provide a built-in "
#~ "way of doing this."
#~ msgstr ""

#~ msgid "Release Process"
#~ msgstr "Publier Flower"

#~ msgid "Virtual Env Installation"
#~ msgstr "Virtualenv avec Anaconda"

#~ msgid "Install development versions"
#~ msgstr "Installer les versions de développement de Flower"

#~ msgid "Set up a virtual env"
#~ msgstr "Mettre en place un environment virtuel"

#~ msgid ""
#~ "Note that, in order to build the"
#~ " documentation locally (with ``poetry run"
#~ " make html``, like described below), "
#~ "`Pandoc <https://pandoc.org/installing.html>_` needs "
#~ "to be installed on the system."
#~ msgstr ""
#~ "Notez que, pour construire la "
#~ "documentation localement (avec ``poetry run"
#~ " make html``, comme décrit ci-"
#~ "dessous), ``Pandoc <https://pandoc.org/installing.html>_`"
#~ " doit être installé sur le système."

#~ msgid "Llama 2 fine-tuning, with Hugging Face Transformers and PyTorch"
#~ msgstr "Un fine-tuning de LLaMA 2 avec Hugging Face et PyTorch"

#~ msgid "XGBoost"
#~ msgstr "XGBoost"

#~ msgid "Android ONNX on-device training"
#~ msgstr ""
#~ "Utiliser Android ONNX pour faire du "
#~ "training directement sur le téléphone"

#~ msgid "Contribute on GitHub"
#~ msgstr "Contribuer sur GitHub"

#~ msgid "How to write a good PR title"
#~ msgstr "Comment écrire un bon titre de PR"

#~ msgid ""
#~ "A well-crafted PR title helps team"
#~ " members quickly understand the purpose "
#~ "and scope of the changes being "
#~ "proposed. Here's a guide to help "
#~ "you write a good GitHub PR title:"
#~ msgstr ""
#~ "Un titre de PR bien choisi permet"
#~ " aux autres développeurs de rapidement "
#~ "comprendre l'intérêt et le scope des "
#~ "changements proposés. Voici un guide "
#~ "pour vous aider à écrire des bons"
#~ " titres de PR :"

#~ msgid ""
#~ "1. Be Clear and Concise: Provide a"
#~ " clear summary of the changes in "
#~ "a concise manner. 1. Use Actionable "
#~ "Verbs: Start with verbs like \"Add,\""
#~ " \"Update,\" or \"Fix\" to indicate "
#~ "the purpose. 1. Include Relevant "
#~ "Information: Mention the affected feature "
#~ "or module for context. 1. Keep it"
#~ " Short: Avoid lengthy titles for easy"
#~ " readability. 1. Use Proper Capitalization"
#~ " and Punctuation: Follow grammar rules "
#~ "for clarity."
#~ msgstr ""
#~ "1. Soyez clair et concis : Donnez"
#~ " un résumé clair des changements de"
#~ " manière concise. 1. Utilisez des "
#~ "verbes actionnables : Commencez par des"
#~ " verbes comme \"Add\", \"Update\", ou "
#~ "\"Fix\" pour indiquer le but. 1. "
#~ "Inclure des renseignements pertinents : "
#~ "Mentionner la caractéristique ou le "
#~ "module concerné pour le contexte. 1. "
#~ "Gardez le court : Évitez les longs"
#~ " titres pour une lisibilité facile. "
#~ "1. Utiliser une bonne capitalisation et"
#~ " une ponctuation : Suivre les règles"
#~ " de grammaire pour la clarté."

#~ msgid ""
#~ "Let's start with a few examples "
#~ "for titles that should be avoided "
#~ "because they do not provide meaningful"
#~ " information:"
#~ msgstr ""
#~ "Commençons par quelques exemples de "
#~ "titres qui devraient être évités parce"
#~ " qu'ils ne fournissent pas d'information"
#~ " significative :"

#~ msgid "Implement Algorithm"
#~ msgstr "Implement Algorithm"

#~ msgid "Database"
#~ msgstr "Base de données"

#~ msgid "Add my_new_file.py to codebase"
#~ msgstr "Add my_new_file.py to codebase"

#~ msgid "Improve code in module"
#~ msgstr "Improve code in module"

#~ msgid "Change SomeModule"
#~ msgstr "Change SomeModule"

#~ msgid ""
#~ "Here are a few positive examples "
#~ "which provide helpful information without "
#~ "repeating how they do it, as that"
#~ " is already visible in the \"Files"
#~ " changed\" section of the PR:"
#~ msgstr ""
#~ "Voici quelques bons exemples qui "
#~ "fournissent de l'information utile sans "
#~ "répéter comment ils le font, comme "
#~ "cela est déjà visible dans la "
#~ "section \"Files changed\" de la PR "
#~ ":"

#~ msgid "Update docs banner to mention Flower Summit 2023"
#~ msgstr "Update docs banner to mention Flower Summit 2023"

#~ msgid "Remove unnecessary XGBoost dependency"
#~ msgstr "Remove unnecessary XGBoost dependency"

#~ msgid "Remove redundant attributes in strategies subclassing FedAvg"
#~ msgstr "Remove redundant attributes in strategies subclassing FedAvg"

#~ msgid "Add CI job to deploy the staging system when the `main` branch changes"
#~ msgstr ""
#~ "Ajoute une tâche CI pour déployer "
#~ "le système de mise en scène "
#~ "lorsque la branche `main` change"

#~ msgid ""
#~ "Add new amazing library which will "
#~ "be used to improve the simulation "
#~ "engine"
#~ msgstr ""
#~ "Add new amazing library which will "
#~ "be used to improve the simulation "
#~ "engine"

#~ msgid "Differential privacy"
#~ msgstr "Confidentialité différentielle"

#~ msgid ""
#~ "The Flower server does not prescribe "
#~ "a way to aggregate evaluation results,"
#~ " but it enables the user to "
#~ "fully customize result aggregation."
#~ msgstr ""

#~ msgid "Configure logging"
#~ msgstr "Configurer les clients"

#~ msgid ""
#~ "The Flower logger keeps track of "
#~ "all core events that take place in"
#~ " federated learning workloads. It presents"
#~ " information by default following a "
#~ "standard message format:"
#~ msgstr ""

#~ msgid ""
#~ "containing relevant information including: log"
#~ " message level (e.g. :code:`INFO`, "
#~ ":code:`DEBUG`), a timestamp, the line "
#~ "where the logging took place from, "
#~ "as well as the log message itself."
#~ " In this way, the logger would "
#~ "typically display information on your "
#~ "terminal as follows:"
#~ msgstr ""

#~ msgid "Saving log to file"
#~ msgstr ""

#~ msgid ""
#~ "By default, the Flower log is "
#~ "outputted to the terminal where you "
#~ "launch your Federated Learning workload "
#~ "from. This applies for both gRPC-"
#~ "based federation (i.e. when you do "
#~ ":code:`fl.server.start_server`) and when using "
#~ "the :code:`VirtualClientEngine` (i.e. when you"
#~ " do :code:`fl.simulation.start_simulation`). In "
#~ "some situations you might want to "
#~ "save this log to disk. You can "
#~ "do so by calling the "
#~ "`fl.common.logger.configure() "
#~ "<https://github.com/adap/flower/blob/main/src/py/flwr/common/logger.py>`_"
#~ " function. For example:"
#~ msgstr ""

#~ msgid ""
#~ "With the above, Flower will record "
#~ "the log you see on your terminal"
#~ " to :code:`log.txt`. This file will "
#~ "be created in the same directory "
#~ "as were you are running the code"
#~ " from. If we inspect we see the"
#~ " log above is also recorded but "
#~ "prefixing with :code:`identifier` each line:"
#~ msgstr ""
#~ "Avec ce qui précède, Flower enregistrera"
#~ " le journal que tu vois sur ton"
#~ " terminal dans :code:`log.txt`. Ce fichier"
#~ " sera créé dans le même répertoire"
#~ " que celui à partir duquel tu "
#~ "exécutes le code. Si nous inspectons,"
#~ " nous voyons que le journal ci-"
#~ "dessus est également enregistré, mais en"
#~ " préfixant chaque ligne avec "
#~ ":code:`identifier` :"

#~ msgid "Log your own messages"
#~ msgstr "Loggez vos propres messages"

#~ msgid ""
#~ "You might expand the information shown"
#~ " by default with the Flower logger"
#~ " by adding more messages relevant to"
#~ " your application. You can achieve "
#~ "this easily as follows."
#~ msgstr ""

#~ msgid ""
#~ "In this way your logger will show,"
#~ " in addition to the default messages,"
#~ " the ones introduced by the clients"
#~ " as specified above."
#~ msgstr ""

#~ msgid "Log to a remote service"
#~ msgstr ""

#~ msgid ""
#~ "The :code:`fl.common.logger.configure` function, "
#~ "also allows specifying a host to "
#~ "which logs can be pushed (via "
#~ ":code:`POST`) through a native Python "
#~ ":code:`logging.handler.HTTPHandler`. This is a "
#~ "particularly useful feature in "
#~ ":code:`gRPC`-based Federated Learning workloads "
#~ "where otherwise gathering logs from all"
#~ " entities (i.e. the server and the"
#~ " clients) might be cumbersome. Note "
#~ "that in Flower simulation, the server"
#~ " automatically displays all logs. You "
#~ "can still specify a :code:`HTTPHandler` "
#~ "should you wish to backup or "
#~ "analyze the logs somewhere else."
#~ msgstr ""

#~ msgid "Enable SSL connections"
#~ msgstr "Collecte centralisée des données"

#~ msgid "Python version"
#~ msgstr "Version Python"

#~ msgid ""
#~ "Flower requires at least `Python 3.7 "
#~ "<https://docs.python.org/3.7/>`_, but `Python 3.8"
#~ " <https://docs.python.org/3.7/>`_ or above is "
#~ "recommended."
#~ msgstr ""
#~ "Flower nécessite `Python 3.7 "
#~ "<https://docs.python.org/3.7/>`_ ou plus, nous "
#~ "recommandons `Python 3.8 "
#~ "<https://docs.python.org/3.8/>`_."

#~ msgid "Run simulations"
#~ msgstr "Simulation de moniteur"

#~ msgid ""
#~ "Simulating Federated Learning workloads is "
#~ "useful for a multitude of use-"
#~ "cases: you might want to run your"
#~ " workload on a large cohort of "
#~ "clients but without having to source,"
#~ " configure and mange a large number"
#~ " of physical devices; you might want"
#~ " to run your FL workloads as "
#~ "fast as possible on the compute "
#~ "systems you have access to without "
#~ "having to go through a complex "
#~ "setup process; you might want to "
#~ "validate your algorithm on different "
#~ "scenarios at varying levels of data "
#~ "and system heterogeneity, client availability,"
#~ " privacy budgets, etc. These are "
#~ "among some of the use-cases where"
#~ " simulating FL workloads makes sense. "
#~ "Flower can accommodate these scenarios "
#~ "by means of its `VirtualClientEngine "
#~ "<contributor-explanation-architecture.html#virtual-"
#~ "client-engine>`_ or VCE."
#~ msgstr ""

#~ msgid ""
#~ "The :code:`VirtualClientEngine` schedules, launches"
#~ " and manages `virtual` clients. These "
#~ "clients are identical to `non-virtual`"
#~ " clients (i.e. the ones you launch"
#~ " via the command `flwr.client.start_client "
#~ "<ref-api-flwr.html#start-client>`_) in the"
#~ " sense that they can be configure "
#~ "by creating a class inheriting, for "
#~ "example, from `flwr.client.NumPyClient <ref-"
#~ "api-flwr.html#flwr.client.NumPyClient>`_ and therefore"
#~ " behave in an identical way. In "
#~ "addition to that, clients managed by "
#~ "the :code:`VirtualClientEngine` are:"
#~ msgstr ""

#~ msgid ""
#~ "resource-aware: this means that each "
#~ "client gets assigned a portion of "
#~ "the compute and memory on your "
#~ "system. You as a user can control"
#~ " this at the beginning of the "
#~ "simulation and allows you to control "
#~ "the degree of parallelism of your "
#~ "Flower FL simulation. The fewer the "
#~ "resources per client, the more clients"
#~ " can run concurrently on the same "
#~ "hardware."
#~ msgstr ""

#~ msgid ""
#~ "self-managed: this means that you "
#~ "as a user do not need to "
#~ "launch clients manually, instead this "
#~ "gets delegated to :code:`VirtualClientEngine`'s "
#~ "internals."
#~ msgstr ""

#~ msgid ""
#~ "ephemeral: this means that a client "
#~ "is only materialized when it is "
#~ "required in the FL process (e.g. "
#~ "to do `fit() <ref-api-"
#~ "flwr.html#flwr.client.Client.fit>`_). The object is"
#~ " destroyed afterwards, releasing the "
#~ "resources it was assigned and allowing"
#~ " in this way other clients to "
#~ "participate."
#~ msgstr ""

#~ msgid ""
#~ "The :code:`VirtualClientEngine` implements `virtual`"
#~ " clients using `Ray <https://www.ray.io/>`_, "
#~ "an open-source framework for scalable"
#~ " Python workloads. In particular, Flower's"
#~ " :code:`VirtualClientEngine` makes use of "
#~ "`Actors <https://docs.ray.io/en/latest/ray-"
#~ "core/actors.html>`_ to spawn `virtual` clients"
#~ " and run their workload."
#~ msgstr ""

#~ msgid "Launch your Flower simulation"
#~ msgstr ""

#~ msgid ""
#~ "Running Flower simulations still require "
#~ "you to define your client class, a"
#~ " strategy, and utility functions to "
#~ "download and load (and potentially "
#~ "partition) your dataset. With that out"
#~ " of the way, launching your "
#~ "simulation is done with `start_simulation "
#~ "<ref-api-flwr.html#flwr.simulation.start_simulation>`_ "
#~ "and a minimal example looks as "
#~ "follows:"
#~ msgstr ""

#~ msgid "VirtualClientEngine resources"
#~ msgstr "Moteur de client virtuel"

#~ msgid ""
#~ "By default the VCE has access to"
#~ " all system resources (i.e. all CPUs,"
#~ " all GPUs, etc) since that is "
#~ "also the default behavior when starting"
#~ " Ray. However, in some settings you"
#~ " might want to limit how many "
#~ "of your system resources are used "
#~ "for simulation. You can do this "
#~ "via the :code:`ray_init_args` input argument"
#~ " to :code:`start_simulation` which the VCE"
#~ " internally passes to Ray's "
#~ ":code:`ray.init` command. For a complete "
#~ "list of settings you can configure "
#~ "check the `ray.init <https://docs.ray.io/en/latest"
#~ "/ray-core/api/doc/ray.init.html#ray-init>`_ "
#~ "documentation. Do not set "
#~ ":code:`ray_init_args` if you want the "
#~ "VCE to use all your system's CPUs"
#~ " and GPUs."
#~ msgstr ""

#~ msgid "Assigning client resources"
#~ msgstr ""

#~ msgid ""
#~ "By default the :code:`VirtualClientEngine` "
#~ "assigns a single CPU core (and "
#~ "nothing else) to each virtual client."
#~ " This means that if your system "
#~ "has 10 cores, that many virtual "
#~ "clients can be concurrently running."
#~ msgstr ""

#~ msgid ""
#~ "More often than not, you would "
#~ "probably like to adjust the resources"
#~ " your clients get assigned based on"
#~ " the complexity (i.e. compute and "
#~ "memory footprint) of your FL workload."
#~ " You can do so when starting "
#~ "your simulation by setting the argument"
#~ " `client_resources` to `start_simulation <ref-"
#~ "api-flwr.html#flwr.simulation.start_simulation>`_. Two "
#~ "keys are internally used by Ray to"
#~ " schedule and spawn workloads (in our"
#~ " case Flower clients):"
#~ msgstr ""

#~ msgid ":code:`num_cpus` indicates the number of CPU cores a client would get."
#~ msgstr ""

#~ msgid ""
#~ ":code:`num_gpus` indicates the **ratio** of"
#~ " GPU memory a client gets assigned."
#~ msgstr ""

#~ msgid "Let's see a few examples:"
#~ msgstr ""

#~ msgid ""
#~ "While the :code:`client_resources` can be "
#~ "used to control the degree of "
#~ "concurrency in your FL simulation, this"
#~ " does not stop you from running "
#~ "dozens, hundreds or even thousands of"
#~ " clients in the same round and "
#~ "having orders of magnitude more "
#~ "`dormant` (i.e. not participating in a"
#~ " round) clients. Let's say you want"
#~ " to have 100 clients per round "
#~ "but your system can only accommodate "
#~ "8 clients concurrently. The "
#~ ":code:`VirtualClientEngine` will schedule 100 "
#~ "jobs to run (each simulating a "
#~ "client sampled by the strategy) and "
#~ "then will execute them in a "
#~ "resource-aware manner in batches of "
#~ "8."
#~ msgstr ""

#~ msgid ""
#~ "To understand all the intricate details"
#~ " on how resources are used to "
#~ "schedule FL clients and how to "
#~ "define custom resources, please take a"
#~ " look at the `Ray documentation "
#~ "<https://docs.ray.io/en/latest/ray-"
#~ "core/scheduling/resources.html>`_."
#~ msgstr ""

#~ msgid "Simulation examples"
#~ msgstr "Exemples de PyTorch"

#~ msgid ""
#~ "A few ready-to-run complete "
#~ "examples for Flower simulation in "
#~ "Tensorflow/Keras and PyTorch are provided "
#~ "in the `Flower repository "
#~ "<https://github.com/adap/flower>`_. You can run "
#~ "them on Google Colab too:"
#~ msgstr ""

#~ msgid ""
#~ "`Tensorflow/Keras Simulation "
#~ "<https://github.com/adap/flower/tree/main/examples/simulation-"
#~ "tensorflow>`_: 100 clients collaboratively "
#~ "train a MLP model on MNIST."
#~ msgstr ""
#~ "`Quickstart TensorFlow (Code) "
#~ "<https://github.com/adap/flower/tree/main/examples/quickstart-"
#~ "tensorflow>`_"

#~ msgid ""
#~ "`PyTorch Simulation "
#~ "<https://github.com/adap/flower/tree/main/examples/simulation-"
#~ "pytorch>`_: 100 clients collaboratively train"
#~ " a CNN model on MNIST."
#~ msgstr ""

#~ msgid ""
#~ "Flower's :code:`VirtualClientEngine` allows you "
#~ "to run FL simulations across multiple"
#~ " compute nodes. Before starting your "
#~ "multi-node simulation ensure that you:"
#~ msgstr ""

#~ msgid "Have the same Python environment in all nodes."
#~ msgstr ""

#~ msgid "Have a copy of your code (e.g. your entire repo) in all nodes."
#~ msgstr ""

#~ msgid ""
#~ "Have a copy of your dataset in "
#~ "all nodes (more about this in "
#~ ":ref:`simulation considerations <considerations-"
#~ "for-simulations>`)"
#~ msgstr ""

#~ msgid ""
#~ "Pass :code:`ray_init_args={\"address\"=\"auto\"}` to "
#~ "`start_simulation <ref-api-"
#~ "flwr.html#flwr.simulation.start_simulation>`_ so the "
#~ ":code:`VirtualClientEngine` attaches to a "
#~ "running Ray instance."
#~ msgstr ""

#~ msgid ""
#~ "Start Ray on you head node: on "
#~ "the terminal type :code:`ray start "
#~ "--head`. This command will print a "
#~ "few lines, one of which indicates "
#~ "how to attach other nodes to the"
#~ " head node."
#~ msgstr ""

#~ msgid ""
#~ "Attach other nodes to the head "
#~ "node: copy the command shown after "
#~ "starting the head and execute it "
#~ "on terminal of a new node: for "
#~ "example :code:`ray start "
#~ "--address='192.168.1.132:6379'`"
#~ msgstr ""

#~ msgid ""
#~ "With all the above done, you can"
#~ " run your code from the head "
#~ "node as you would if the "
#~ "simulation was running on a single "
#~ "node."
#~ msgstr ""

#~ msgid ""
#~ "Once your simulation is finished, if "
#~ "you'd like to dismantle your cluster "
#~ "you simply need to run the command"
#~ " :code:`ray stop` in each node's "
#~ "terminal (including the head node)."
#~ msgstr ""

#~ msgid "Multi-node simulation good-to-know"
#~ msgstr ""

#~ msgid ""
#~ "Here we list a few interesting "
#~ "functionality when running multi-node FL"
#~ " simulations:"
#~ msgstr ""

#~ msgid ""
#~ "User :code:`ray status` to check all "
#~ "nodes connected to your head node "
#~ "as well as the total resources "
#~ "available to the :code:`VirtualClientEngine`."
#~ msgstr ""

#~ msgid ""
#~ "When attaching a new node to the"
#~ " head, all its resources (i.e. all"
#~ " CPUs, all GPUs) will be visible "
#~ "by the head node. This means that"
#~ " the :code:`VirtualClientEngine` can schedule "
#~ "as many `virtual` clients as that "
#~ "node can possible run. In some "
#~ "settings you might want to exclude "
#~ "certain resources from the simulation. "
#~ "You can do this by appending "
#~ "`--num-cpus=<NUM_CPUS_FROM_NODE>` and/or `--num-"
#~ "gpus=<NUM_GPUS_FROM_NODE>` in any :code:`ray "
#~ "start` command (including when starting "
#~ "the head)"
#~ msgstr ""

#~ msgid "Considerations for simulations"
#~ msgstr "Simulation de moniteur"

#~ msgid ""
#~ "We are actively working on these "
#~ "fronts so to make it trivial to"
#~ " run any FL workload with Flower "
#~ "simulation."
#~ msgstr ""

#~ msgid ""
#~ "The current VCE allows you to run"
#~ " Federated Learning workloads in simulation"
#~ " mode whether you are prototyping "
#~ "simple scenarios on your personal laptop"
#~ " or you want to train a complex"
#~ " FL pipeline across multiple high-"
#~ "performance GPU nodes. While we add "
#~ "more capabilities to the VCE, the "
#~ "points below highlight some of the "
#~ "considerations to keep in mind when "
#~ "designing your FL pipeline with Flower."
#~ " We also highlight a couple of "
#~ "current limitations in our implementation."
#~ msgstr ""

#~ msgid "GPU resources"
#~ msgstr "Ressources"

#~ msgid ""
#~ "The VCE assigns a share of GPU "
#~ "memory to a client that specifies "
#~ "the key :code:`num_gpus` in "
#~ ":code:`client_resources`. This being said, Ray"
#~ " (used internally by the VCE) is "
#~ "by default:"
#~ msgstr ""

#~ msgid ""
#~ "not aware of the total VRAM "
#~ "available on the GPUs. This means "
#~ "that if you set :code:`num_gpus=0.5` and"
#~ " you have two GPUs in your "
#~ "system with different (e.g. 32GB and "
#~ "8GB) VRAM amounts, they both would "
#~ "run 2 clients concurrently."
#~ msgstr ""

#~ msgid ""
#~ "not aware of other unrelated (i.e. "
#~ "not created by the VCE) workloads "
#~ "are running on the GPU. Two "
#~ "takeaways from this are:"
#~ msgstr ""

#~ msgid ""
#~ "Your Flower server might need a "
#~ "GPU to evaluate the `global model` "
#~ "after aggregation (by instance when "
#~ "making use of the `evaluate method "
#~ "<how-to-implement-strategies.html#the-"
#~ "evaluate-method>`_)"
#~ msgstr ""

#~ msgid ""
#~ "If you want to run several "
#~ "independent Flower simulations on the "
#~ "same machine you need to mask-out"
#~ " your GPUs with "
#~ ":code:`CUDA_VISIBLE_DEVICES=\"<GPU_IDs>\"` when launching"
#~ " your experiment."
#~ msgstr ""

#~ msgid ""
#~ "In addition, the GPU resource limits "
#~ "passed to :code:`client_resources` are not "
#~ "`enforced` (i.e. they can be exceeded)"
#~ " which can result in the situation"
#~ " of client using more VRAM than "
#~ "the ratio specified when starting the"
#~ " simulation."
#~ msgstr ""

#~ msgid "TensorFlow with GPUs"
#~ msgstr "Exemples de TensorFlow"

#~ msgid ""
#~ "When `using a GPU with TensorFlow "
#~ "<https://www.tensorflow.org/guide/gpu>`_ nearly your "
#~ "entire GPU memory of all your GPUs"
#~ " visible to the process will be "
#~ "mapped. This is done by TensorFlow "
#~ "for optimization purposes. However, in "
#~ "settings such as FL simulations where"
#~ " we want to split the GPU into"
#~ " multiple `virtual` clients, this is "
#~ "not a desirable mechanism. Luckily we"
#~ " can disable this default behavior by"
#~ " `enabling memory growth "
#~ "<https://www.tensorflow.org/guide/gpu#limiting_gpu_memory_growth>`_."
#~ msgstr ""

#~ msgid ""
#~ "This would need to be done in "
#~ "the main process (which is where "
#~ "the server would run) and in each"
#~ " Actor created by the VCE. By "
#~ "means of :code:`actor_kwargs` we can "
#~ "pass the reserved key `\"on_actor_init_fn\"`"
#~ " in order to specify a function "
#~ "to be executed upon actor "
#~ "initialization. In this case, to enable"
#~ " GPU growth for TF workloads. It "
#~ "would look as follows:"
#~ msgstr ""

#~ msgid ""
#~ "This is precisely the mechanism used "
#~ "in `Tensorflow/Keras Simulation "
#~ "<https://github.com/adap/flower/tree/main/examples/simulation-"
#~ "tensorflow>`_ example."
#~ msgstr ""
#~ "`Quickstart TensorFlow (Code) "
#~ "<https://github.com/adap/flower/tree/main/examples/quickstart-"
#~ "tensorflow>`_"

#~ msgid "Multi-node setups"
#~ msgstr ""

#~ msgid ""
#~ "The VCE does not currently offer a"
#~ " way to control on which node a"
#~ " particular `virtual` client is executed."
#~ " In other words, if more than a"
#~ " single node have the resources "
#~ "needed by a client to run, then"
#~ " any of those nodes could get "
#~ "the client workload scheduled onto. "
#~ "Later in the FL process (i.e. in"
#~ " a different round) the same client"
#~ " could be executed by a different "
#~ "node. Depending on how your clients "
#~ "access their datasets, this might "
#~ "require either having a copy of "
#~ "all dataset partitions on all nodes "
#~ "or a dataset serving mechanism (e.g. "
#~ "using nfs, a database) to circumvent "
#~ "data duplication."
#~ msgstr ""

#~ msgid ""
#~ "By definition virtual clients are "
#~ "`stateless` due to their ephemeral "
#~ "nature. A client state can be "
#~ "implemented as part of the Flower "
#~ "client class but users need to "
#~ "ensure this saved to persistent storage"
#~ " (e.g. a database, disk) and that "
#~ "can be retrieve later by the same"
#~ " client regardless on which node it"
#~ " is running from. This is related "
#~ "to the point above also since, in"
#~ " some way, the client's dataset could"
#~ " be seen as a type of `state`."
#~ msgstr ""

#~ msgid "Save and load model checkpoints"
#~ msgstr "Sauvegarde et chargement des points de contrôle PyTorch"

#~ msgid ""
#~ "Flower does not automatically save model"
#~ " updates on the server-side. This "
#~ "how-to guide describes the steps "
#~ "to save (and load) model checkpoints "
#~ "in Flower."
#~ msgstr ""

#~ msgid "Legacy example guides"
#~ msgstr ""

#~ msgid "Contributor tutorials"
#~ msgstr "Configuration du contributeur"

#~ msgid "Contributor explanations"
#~ msgstr "Explications"

#~ msgid "Flower Framework Documentation"
#~ msgstr "Documentation de Flower"

#~ msgid "PyTorch"
#~ msgstr "Exemples de PyTorch"

#~ msgid "TensorFlow"
#~ msgstr "TensorFlow"

#~ msgid "Flower CLI reference"
#~ msgstr "Client de Flower"

#~ msgid "flwr (Python API reference)"
#~ msgstr "Référence pour l'API"

#~ msgid "Unreleased"
#~ msgstr "Inédit"

#~ msgid "**Deprecate Python 3.7**"
#~ msgstr "**Deprecate Python 3.7**"

#~ msgid ""
#~ "Since Python 3.7 reached its end "
#~ "of life (EOL) on 2023-06-27, support "
#~ "for Python 3.7 is now deprecated "
#~ "and will be removed in an upcoming"
#~ " release."
#~ msgstr ""
#~ "Étant donné que Python 3.7 a "
#~ "atteint sa fin de vie (EOL) le "
#~ "2023-06-27, la prise en charge de "
#~ "Python 3.7 est désormais dépréciée et"
#~ " sera supprimée dans une prochaine "
#~ "version."

#~ msgid ""
#~ "**Add new** `FedTrimmedAvg` **strategy** "
#~ "([#1769](https://github.com/adap/flower/pull/1769), "
#~ "[#1853](https://github.com/adap/flower/pull/1853))"
#~ msgstr ""
#~ "**Ajouter un nouveau** `FedTrimmedAvg` "
#~ "**stratégie** "
#~ "([#1769](https://github.com/adap/flower/pull/1769), "
#~ "[#1853](https://github.com/adap/flower/pull/1853))"

#~ msgid ""
#~ "The new `FedTrimmedAvg` strategy implements"
#~ " Trimmed Mean by [Dong Yin, "
#~ "2018](https://arxiv.org/abs/1803.01498)"
#~ msgstr ""
#~ "La nouvelle stratégie `FedTrimmedAvg` met "
#~ "en œuvre la moyenne trimmée par "
#~ "[Dong Yin, 2018](https://arxiv.org/abs/1803.01498)"

#~ msgid ""
#~ "**Add parameter aggregation to** `mt-"
#~ "pytorch` **code example** "
#~ "([#1785](https://github.com/adap/flower/pull/1785))"
#~ msgstr ""
#~ "**Ajouter l'agrégation des paramètres à** "
#~ "`mt-pytorch` **exemple de code** "
#~ "([#1785](https://github.com/adap/flower/pull/1785))"

#~ msgid ""
#~ "The `mt-pytorch` example shows how "
#~ "to aggregate parameters when writing a"
#~ " driver script. The included `driver.py`"
#~ " and `server.py` have been aligned to"
#~ " demonstrate both the low-level way"
#~ " and the high-level way of "
#~ "building server-side logic."
#~ msgstr ""
#~ "L'exemple `mt-pytorch` montre comment "
#~ "agréger des paramètres lors de "
#~ "l'écriture d'un script de pilote. Les"
#~ " fichiers `driver.py` et `server.py` inclus"
#~ " ont été alignés pour démontrer à "
#~ "la fois la manière de bas niveau"
#~ " et la manière de haut niveau "
#~ "de construire la logique côté serveur."

#~ msgid ""
#~ "**Introduce (experimental) gRPC request-"
#~ "response API** "
#~ "([#1867](https://github.com/adap/flower/pull/1867), "
#~ "[#1901](https://github.com/adap/flower/pull/1901))"
#~ msgstr ""
#~ "**Introduire l'API demande-réponse gRPC "
#~ "(expérimentale)** "
#~ "([#1867](https://github.com/adap/flower/pull/1867), "
#~ "[#1901](https://github.com/adap/flower/pull/1901))"

#~ msgid ""
#~ "In addition to the existing gRPC "
#~ "API (based on bidirectional streaming) "
#~ "and the experimental REST API, there "
#~ "is now a new gRPC API that "
#~ "uses a request-response model to "
#~ "communicate with client nodes."
#~ msgstr ""
#~ "En plus de l'API gRPC existante "
#~ "(basée sur un flux bidirectionnel) et"
#~ " de l'API REST expérimentale, il "
#~ "existe désormais une nouvelle API gRPC"
#~ " qui utilise un modèle demande-"
#~ "réponse pour communiquer avec les nœuds"
#~ " clients."

#~ msgid ""
#~ "Please note: The gRPC request-response"
#~ " API is still experimental and will"
#~ " likely change significantly over time."
#~ msgstr ""
#~ "Remarque : l'API requête-réponse gRPC"
#~ " est encore expérimentale et est "
#~ "susceptible de changer de manière "
#~ "significative au fil du temps."

#~ msgid ""
#~ "**Replace the eperimental** "
#~ "`start_client(rest=True)` **with the new** "
#~ "`start_client(transport=\"rest\")` "
#~ "([#1880](https://github.com/adap/flower/pull/1880))"
#~ msgstr ""
#~ "**Remplacez le fichier expérimental** "
#~ "`start_client(rest=True) **par le nouveau** "
#~ "`start_client(transport=\"rest\")` "
#~ "([#1880](https://github.com/adap/flower/pull/1880))"

#~ msgid ""
#~ "The (experimental) `start_client` argument "
#~ "`rest` was deprecated in favor of "
#~ "a new argument `transport`. "
#~ "`start_client(transport=\"rest\")` will yield the"
#~ " same behaviour as `start_client(rest=True)` "
#~ "did before. All code should migrate "
#~ "to the new argument `transport`. The "
#~ "deprecated argument `rest` will be "
#~ "removed in a future release."
#~ msgstr ""

#~ msgid ""
#~ "**Migrate experimental REST API to "
#~ "Starlette** ([2171](https://github.com/adap/flower/pull/2171))"
#~ msgstr ""
#~ "**Migrer l'API REST expérimentale vers "
#~ "Starlette** ([2171](https://github.com/adap/flower/pull/2171))"

#~ msgid ""
#~ "The (experimental) REST API used to "
#~ "be implemented in "
#~ "[FastAPI](https://fastapi.tiangolo.com/), but it has"
#~ " now been migrated to use "
#~ "[Starlette](https://www.starlette.io/) directly."
#~ msgstr ""
#~ "L'API REST (expérimentale) était auparavant"
#~ " implémentée dans "
#~ "[FastAPI](https://fastapi.tiangolo.com/), mais elle "
#~ "a maintenant été migrée pour utiliser"
#~ " directement [Starlette](https://www.starlette.io/)."

#~ msgid ""
#~ "**Add a new gRPC option** "
#~ "([#2197](https://github.com/adap/flower/pull/2197))"
#~ msgstr ""
#~ "**Ajouter une nouvelle option gRPC** "
#~ "([#2197](https://github.com/adap/flower/pull/2197))"

#~ msgid ""
#~ "We now start a gRPC server with"
#~ " the `grpc.keepalive_permit_without_calls` option "
#~ "set to 0 by default. This prevents"
#~ " the clients from sending keepalive "
#~ "pings when there is no outstanding "
#~ "stream."
#~ msgstr ""
#~ "Nous démarrons maintenant un serveur "
#~ "gRPC avec l'option "
#~ "`grpc.keepalive_permit_without_calls` réglée sur 0"
#~ " par défaut, ce qui empêche les "
#~ "clients d'envoyer des pings de maintien"
#~ " lorsqu'il n'y a pas de flux en"
#~ " attente."

#~ msgid ""
#~ "**General improvements** "
#~ "([#1872](https://github.com/adap/flower/pull/1872), "
#~ "[#1866](https://github.com/adap/flower/pull/1866), "
#~ "[#1884](https://github.com/adap/flower/pull/1884))"
#~ msgstr ""
#~ "**Mettre à jour les exemples de "
#~ "code** ([#1291](https://github.com/adap/flower/pull/1291), "
#~ "[#1286](https://github.com/adap/flower/pull/1286), "
#~ "[#1282](https://github.com/adap/flower/pull/1282))"

#~ msgid "Example projects"
#~ msgstr "Exemples"

#~ msgid ""
#~ "`Flower simulation PyTorch "
#~ "<https://colab.research.google.com/github/adap/flower/blob/main/examples"
#~ "/simulation-pytorch/sim.ipynb>`_"
#~ msgstr ""
#~ "`Flower Quickstart (TensorFlow/Keras) "
#~ "<https://colab.research.google.com/github/adap/flower/blob/main/examples/simulation_tensorflow/sim.ipynb>`_"

#~ msgid ""
#~ "`Android Kotlin example "
#~ "<https://flower.ai/docs/examples/android-kotlin.html>`_"
#~ msgstr ""

#~ msgid "`Android Java example <https://flower.ai/docs/examples/android.html>`_"
#~ msgstr ""

#~ msgid "Build a strategy from scratch"
#~ msgstr "Élaborer une stratégie à partir de zéro"

#~ msgid "Customize the client"
#~ msgstr "Création du client IMDBC"

#~ msgid "Get started with Flower"
#~ msgstr ""

#~ msgid "Quickstart Android"
#~ msgstr "Démarrage rapide d'Android"

#~ msgid ""
#~ "Let's build a federated learning system"
#~ " using TFLite and Flower on Android!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " en utilisant TFLite et Flower sur"
#~ " Android !"

#~ msgid ""
#~ "Please refer to the `full code "
#~ "example "
#~ "<https://github.com/adap/flower/tree/main/examples/android>`_ to"
#~ " learn more."
#~ msgstr ""
#~ "Réfère-toi à l'exemple de code "
#~ "complet "
#~ "<https://github.com/adap/flower/tree/main/examples/android>`_ "
#~ "pour en savoir plus."

#~ msgid "Quickstart iOS"
#~ msgstr "Démarrage rapide iOS"

#~ msgid ""
#~ "In this tutorial we will learn how"
#~ " to train a Neural Network on "
#~ "MNIST using Flower and CoreML on "
#~ "iOS devices."
#~ msgstr ""
#~ "Dans ce tutoriel, nous allons apprendre"
#~ " à former un réseau neuronal sur "
#~ "MNIST en utilisant Flower et CoreML "
#~ "sur les appareils iOS."

#~ msgid ""
#~ "First of all, for running the "
#~ "Flower Python server, it is recommended"
#~ " to create a virtual environment and"
#~ " run everything within a `virtualenv "
#~ "<https://flower.ai/docs/recommended-env-setup.html>`_. "
#~ "For the Flower client implementation in"
#~ " iOS, it is recommended to use "
#~ "Xcode as our IDE."
#~ msgstr ""
#~ "Tout d'abord, pour l'exécution du "
#~ "serveur Flower Python, il est recommandé"
#~ " de créer un environnement virtuel et"
#~ " de tout exécuter au sein d'un "
#~ "`virtualenv <https://flower.ai/docs/recommended-env-"
#~ "setup.html>`_. Pour l'implémentation du client"
#~ " Flower dans iOS, il est recommandé"
#~ " d'utiliser Xcode comme notre IDE."

#~ msgid ""
#~ "Our example consists of one Python "
#~ "*server* and two iPhone *clients* that"
#~ " all have the same model."
#~ msgstr ""
#~ "Notre exemple se compose d'un *serveur*"
#~ " Python et de deux *clients* iPhone"
#~ " qui ont tous le même modèle."

#~ msgid ""
#~ "*Clients* are responsible for generating "
#~ "individual weight updates for the model"
#~ " based on their local datasets. These"
#~ " updates are then sent to the "
#~ "*server* which will aggregate them to"
#~ " produce a better model. Finally, the"
#~ " *server* sends this improved version "
#~ "of the model back to each "
#~ "*client*. A complete cycle of weight "
#~ "updates is called a *round*."
#~ msgstr ""
#~ "*Les clients* sont chargés de générer"
#~ " des mises à jour de poids "
#~ "individuelles pour le modèle en fonction"
#~ " de leurs ensembles de données "
#~ "locaux. Ces mises à jour sont "
#~ "ensuite envoyées au *serveur* qui les"
#~ " agrège pour produire un meilleur "
#~ "modèle. Enfin, le *serveur* renvoie "
#~ "cette version améliorée du modèle à "
#~ "chaque *client*. Un cycle complet de "
#~ "mises à jour de poids s'appelle un"
#~ " *round*."

#~ msgid ""
#~ "Now that we have a rough idea "
#~ "of what is going on, let's get "
#~ "started to setup our Flower server "
#~ "environment. We first need to install"
#~ " Flower. You can do this by "
#~ "using pip:"
#~ msgstr ""
#~ "Maintenant que nous avons une idée "
#~ "approximative de ce qui se passe, "
#~ "commençons à configurer notre environnement"
#~ " de serveur Flower. Nous devons "
#~ "d'abord installer Flower, ce que tu "
#~ "peux faire à l'aide de pip :"

#~ msgid "Or Poetry:"
#~ msgstr "Ou de la poésie :"

#~ msgid ""
#~ "Now that we have all our "
#~ "dependencies installed, let's run a "
#~ "simple distributed training using CoreML "
#~ "as our local training pipeline and "
#~ "MNIST as our dataset. For simplicity "
#~ "reasons we will use the complete "
#~ "Flower client with CoreML, that has "
#~ "been implemented and stored inside the"
#~ " Swift SDK. The client implementation "
#~ "can be seen below:"
#~ msgstr ""
#~ "Maintenant que toutes nos dépendances "
#~ "sont installées, exécutons une simple "
#~ "formation distribuée en utilisant CoreML "
#~ "comme pipeline de formation local et "
#~ "MNIST comme ensemble de données. Pour"
#~ " des raisons de simplicité, nous "
#~ "utiliserons le client Flower complet "
#~ "avec CoreML, qui a été mis en "
#~ "œuvre et stocké à l'intérieur du "
#~ "SDK Swift. La mise en œuvre du "
#~ "client peut être vue ci-dessous :"

#~ msgid ""
#~ "Let's create a new application project"
#~ " in Xcode and add :code:`flwr` as "
#~ "a dependency in your project. For "
#~ "our application, we will store the "
#~ "logic of our app in "
#~ ":code:`FLiOSModel.swift` and the UI elements"
#~ " in :code:`ContentView.swift`. We will "
#~ "focus more on :code:`FLiOSModel.swift` in "
#~ "this quickstart. Please refer to the "
#~ "`full code example "
#~ "<https://github.com/adap/flower/tree/main/examples/ios>`_ to "
#~ "learn more about the app."
#~ msgstr ""

#~ msgid "Import Flower and CoreML related packages in :code:`FLiOSModel.swift`:"
#~ msgstr ""

#~ msgid ""
#~ "Then add the mlmodel to the "
#~ "project simply by drag-and-drop, "
#~ "the mlmodel will be bundled inside "
#~ "the application during deployment to "
#~ "your iOS device. We need to pass"
#~ " the url to access mlmodel and "
#~ "run CoreML machine learning processes, "
#~ "it can be retrieved by calling the"
#~ " function :code:`Bundle.main.url`. For the "
#~ "MNIST dataset, we need to preprocess "
#~ "it into :code:`MLBatchProvider` object. The"
#~ " preprocessing is done inside "
#~ ":code:`DataLoader.swift`."
#~ msgstr ""

#~ msgid ""
#~ "Since CoreML does not allow the "
#~ "model parameters to be seen before "
#~ "training, and accessing the model "
#~ "parameters during or after the training"
#~ " can only be done by specifying "
#~ "the layer name, we need to know"
#~ " this informations beforehand, through "
#~ "looking at the model specification, "
#~ "which are written as proto files. "
#~ "The implementation can be seen in "
#~ ":code:`MLModelInspect`."
#~ msgstr ""

#~ msgid ""
#~ "After we have all of the necessary"
#~ " informations, let's create our Flower "
#~ "client."
#~ msgstr ""

#~ msgid ""
#~ "Then start the Flower gRPC client "
#~ "and start communicating to the server"
#~ " by passing our Flower client to "
#~ "the function :code:`startFlwrGRPC`."
#~ msgstr ""

#~ msgid ""
#~ "That's it for the client. We only"
#~ " have to implement :code:`Client` or "
#~ "call the provided :code:`MLFlwrClient` and "
#~ "call :code:`startFlwrGRPC()`. The attribute "
#~ ":code:`hostname` and :code:`port` tells the"
#~ " client which server to connect to."
#~ " This can be done by entering "
#~ "the hostname and port in the "
#~ "application before clicking the start "
#~ "button to start the federated learning"
#~ " process."
#~ msgstr ""

#~ msgid ""
#~ "Once the server is running we can"
#~ " start the clients in different "
#~ "terminals. Build and run the client "
#~ "through your Xcode, one through Xcode"
#~ " Simulator and the other by deploying"
#~ " it to your iPhone. To see more"
#~ " about how to deploy your app "
#~ "to iPhone or Simulator visit `here "
#~ "<https://developer.apple.com/documentation/xcode/running-"
#~ "your-app-in-simulator-or-on-a-device>`_."
#~ msgstr ""
#~ "Une fois que le serveur fonctionne, "
#~ "nous pouvons démarrer les clients dans"
#~ " différents terminaux. Construis et exécute"
#~ " le client grâce à ton Xcode, "
#~ "l'un via le simulateur Xcode et "
#~ "l'autre en le déployant sur ton "
#~ "iPhone. Pour en savoir plus sur la"
#~ " façon de déployer ton application "
#~ "sur l'iPhone ou le simulateur, visite"
#~ " `ici <https://developer.apple.com/documentation/xcode"
#~ "/running-your-app-in-simulator-or-"
#~ "on-a-device>`_."

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated learning "
#~ "system in your ios device. The "
#~ "full `source code "
#~ "<https://github.com/adap/flower/blob/main/examples/ios>`_ for"
#~ " this example can be found in "
#~ ":code:`examples/ios`."
#~ msgstr ""
#~ "Félicitations ! Tu as réussi à "
#~ "construire et à faire fonctionner ton"
#~ " premier système d'apprentissage fédéré "
#~ "dans ton appareil ios. Le `code "
#~ "source complet "
#~ "<https://github.com/adap/flower/blob/main/examples/ios>`_ de "
#~ "cet exemple se trouve dans "
#~ ":code:`examples/ios`."

#~ msgid ""
#~ "`Star Flower on GitHub "
#~ "<https://github.com/adap/flower>`__ ⭐️ and join "
#~ "the open-source Flower community on "
#~ "Slack to connect, ask questions, and "
#~ "get help: `Join Slack <https://flower.ai"
#~ "/join-slack>`__ 🌼 We'd love to hear"
#~ " from you in the ``#introductions`` "
#~ "channel! And if anything is unclear, "
#~ "head over to the ``#questions`` channel."
#~ msgstr ""
#~ "`Star Flower on GitHub "
#~ "<https://github.com/adap/flower>`__ ⭐️ et rejoignez"
#~ " la communauté open-source Flower sur"
#~ " Slack pour vous connecter, poser des"
#~ " questions et obtenir de l'aide : "
#~ "`Join Slack <https://flower.ai/join-slack>`__ "
#~ "🌼 Nous serions ravis d'avoir de "
#~ "vos nouvelles dans le canal "
#~ "``#introductions`` ! Et si quelque chose"
#~ " n'est pas clair, dirigez-vous vers"
#~ " le canal ``#questions``."

#~ msgid "|bd48315a61c14495babefe3c7918b493|"
#~ msgstr ""

#~ msgid "|c00d9e5b0d324d96b86da8a78b05b14b|"
#~ msgstr ""

#~ msgid "|faae2ee10f4149c9907563c4f48ec6ea|"
#~ msgstr ""

#~ msgid "|13a655510351455292f145a61d6c15d6|"
#~ msgstr ""

#~ msgid "|13949884182846e3a91433190a936ba9|"
#~ msgstr ""

#~ msgid "|9bf26cc650b146e88b4745df040ece37|"
#~ msgstr ""

#~ msgid "|1590915480fc41708bd43e48af9582f9|"
#~ msgstr ""

#~ msgid "|e5ee96d702b64256b97b8ca99db10787|"
#~ msgstr ""

#~ msgid "|84840b244edd47c481278ce534c126cd|"
#~ msgstr ""

#~ msgid "|f33f5ebb3a844a2ba54bb6be3571b172|"
#~ msgstr ""

#~ msgid "|5645db4ba9c945518d51ff234f35c797|"
#~ msgstr ""

#~ msgid "|317af8d28fcc479ab981047d058c4751|"
#~ msgstr ""

#~ msgid "|8bfd0e697a494d5385662debafade6bf|"
#~ msgstr ""

#~ msgid ""
#~ "Differential privacy (DP) is often "
#~ "mentioned in the context of Federated"
#~ " Learning. It is a privacy-preserving"
#~ " method used when analyzing and "
#~ "sharing statistical data, ensuring the "
#~ "privacy of individual participants. DP "
#~ "achieves this by adding statistical "
#~ "noise to the model updates, ensuring "
#~ "any individual participants’ information "
#~ "cannot be distinguished or re-"
#~ "identified. This technique can be "
#~ "considered an optimization that provides "
#~ "a quantifiable privacy protection measure."
#~ msgstr ""
#~ "La confidentialité différentielle (DP) est "
#~ "souvent mentionnée dans le contexte de"
#~ " l'apprentissage fédéré. Il s'agit d'une"
#~ " méthode de préservation de la vie"
#~ " privée utilisée lors de l'analyse et"
#~ " du partage de données statistiques, "
#~ "garantissant la confidentialité des "
#~ "participants individuels. La DP y "
#~ "parvient en ajoutant un bruit "
#~ "statistique aux mises à jour du "
#~ "modèle, garantissant que toute information "
#~ "sur les participants individuels ne peut"
#~ " être distinguée ou réidentifiée. Cette "
#~ "technique peut être considérée comme une"
#~ " optimisation qui fournit une mesure "
#~ "quantifiable de protection de la vie "
#~ "privée."

#~ msgid "|e5dc001d27ad460caeab669e957b3c36|"
#~ msgstr ""

#~ msgid "API Reference - Flower binaries"
#~ msgstr ""

#~ msgid "API Reference - flwr"
#~ msgstr "Référence pour l'API"

#~ msgid ""
#~ "Defines whether or not the client "
#~ "is interacting with the server using "
#~ "the experimental REST API. This feature"
#~ " is experimental, it might change "
#~ "considerably in future versions of "
#~ "Flower."
#~ msgstr ""

#~ msgid "Returns a client's set of properties."
#~ msgstr ""

#~ msgid ""
#~ "Defines whether or not the client "
#~ "is interacting with the server using "
#~ "the experimental REST API. This feature"
#~ " is experimental, it might be change"
#~ " considerably in future versions of "
#~ "Flower."
#~ msgstr ""

#~ msgid ""
#~ "A function creating client instances. "
#~ "The function must take a single "
#~ "str argument called `cid`. It should "
#~ "return a single client instance of "
#~ "type ClientLike. Note that the created"
#~ " client instances are ephemeral and "
#~ "will often be destroyed after a "
#~ "single method invocation. Since client "
#~ "instances are not long-lived, they "
#~ "should not  attempt to carry state "
#~ "over method invocations. Any state "
#~ "required by the instance (model, "
#~ "dataset,hyperparameters, ...) should be "
#~ "(re-)created in either the call to "
#~ "`client_fn` or the call to any of"
#~ " the client methods (e.g., load "
#~ "evaluation data in the `evaluate` method"
#~ " itself)."
#~ msgstr ""

#~ msgid ""
#~ "A function creating client instances. "
#~ "The function must take a single "
#~ "str argument called `cid`. It should "
#~ "return a single client instance of "
#~ "type ClientLike. Note that the created"
#~ " client instances are ephemeral and "
#~ "will often be destroyed after a "
#~ "single method invocation. Since client "
#~ "instances are not long-lived, they "
#~ "should not"
#~ msgstr ""

#~ msgid "attempt to carry state over method invocations. Any state required by"
#~ msgstr ""

#~ msgid ""
#~ "the instance (model, dataset,hyperparameters, "
#~ "...) should be (re-)created in either"
#~ " the call to `client_fn` or the "
#~ "call to any of the client methods"
#~ " (e.g., load evaluation data in the"
#~ " `evaluate` method itself)."
#~ msgstr ""

#~ msgid ""
#~ "\\frac{\\mu}{2} || w - w^t ||^2\n"
#~ "\n"
#~ msgstr ""

#~ msgid ""
#~ "Adaptive Federated Optimization using Adagrad"
#~ " (FedAdagrad) [Reddi et al., 2020] "
#~ "strategy."
#~ msgstr ""

#~ msgid ""
#~ "Adaptive Federated Optimization using Adam "
#~ "(FedAdam) [Reddi et al., 2020] strategy."
#~ msgstr ""

#~ msgid ""
#~ "Adaptive Federated Optimization using Yogi "
#~ "(FedYogi) [Reddi et al., 2020] strategy."
#~ msgstr ""

#~ msgid "Contributing Baselines"
#~ msgstr "Configuration du contributeur"

#~ msgid ""
#~ "Do you have a new federated "
#~ "learning paper and want to add a"
#~ " new baseline to Flower? Or do "
#~ "you want to add an experiment to"
#~ " an existing baseline paper? Great, "
#~ "we really appreciate your contribution."
#~ msgstr ""

#~ msgid ""
#~ "The goal of Flower Baselines is to"
#~ " reproduce experiments from popular papers"
#~ " to accelerate researchers by enabling "
#~ "faster comparisons to new strategies, "
#~ "datasets, models, and federated pipelines "
#~ "in general."
#~ msgstr ""

#~ msgid ""
#~ "Before you start to work on a "
#~ "new baseline or experiment, please check"
#~ " the `Flower Issues "
#~ "<https://github.com/adap/flower/issues>`_ or `Flower "
#~ "Pull Requests <https://github.com/adap/flower/pulls>`_ "
#~ "to see if someone else is already"
#~ " working on it. Please open a "
#~ "new issue if you are planning to"
#~ " work on a new baseline or "
#~ "experiment with a short description of"
#~ " the corresponding paper and the "
#~ "experiment you want to contribute."
#~ msgstr ""

#~ msgid "TL;DR: Adding a new Flower Baseline"
#~ msgstr ""

#~ msgid ""
#~ "Let's say you want to contribute "
#~ "the code of your most recent "
#~ "Federated Learning publication, *FedAweseome*. "
#~ "There are only three steps necessary "
#~ "to create a new *FedAweseome* Flower "
#~ "Baseline:"
#~ msgstr ""

#~ msgid "**Get the Flower source code on your machine**"
#~ msgstr ""

#~ msgid ""
#~ "Fork the Flower codebase: got to "
#~ "the `Flower GitHub repo "
#~ "<https://github.com/adap/flower>`_ and fork the "
#~ "code (click the *Fork* button in "
#~ "the top-right corner and follow "
#~ "the instructions)"
#~ msgstr ""

#~ msgid ""
#~ "Clone the (forked) Flower source code:"
#~ " :code:`git clone "
#~ "git@github.com:[your_github_username]/flower.git`"
#~ msgstr ""

#~ msgid ""
#~ "Open the code in your favorite "
#~ "editor (e.g., using VSCode: ``cd flower"
#~ " ; code .``)"
#~ msgstr ""

#~ msgid "**Add the FedAwesome code**"
#~ msgstr ""

#~ msgid ""
#~ "Add your :code:`FedAwesome` code under "
#~ ":code:`baselines/flwr_baselines/publications/[fedawesome]`"
#~ msgstr ""

#~ msgid "Add a `pyproject.toml` with all necessary dependencies"
#~ msgstr ""

#~ msgid "Add a `README.md` describing how to use your baseline"
#~ msgstr ""

#~ msgid "**Open a pull request**"
#~ msgstr ""

#~ msgid "Stage your changes: :code:`git add .`"
#~ msgstr ""

#~ msgid ""
#~ "Commit & push: :code:`git commit -m "
#~ "\"Create new FedAweseome baseline\" ; "
#~ "git push`"
#~ msgstr ""

#~ msgid ""
#~ "Open a pull request: go to *your*"
#~ " fork of the Flower codebase and "
#~ "create a pull request that targets "
#~ "the Flower ``main``` branch"
#~ msgstr ""

#~ msgid "Further reading:"
#~ msgstr "Aide supplémentaire"

#~ msgid ""
#~ "`GitHub docs: About forks "
#~ "<https://docs.github.com/en/pull-requests/collaborating-"
#~ "with-pull-requests/working-with-forks/about-"
#~ "forks>`_"
#~ msgstr ""

#~ msgid ""
#~ "`GitHub docs: Creating a pull request"
#~ " <https://docs.github.com/en/pull-requests/collaborating-"
#~ "with-pull-requests/proposing-changes-to-"
#~ "your-work-with-pull-requests/creating-a-pull-"
#~ "request>`_"
#~ msgstr ""

#~ msgid ""
#~ "`GitHub docs: Creating a pull request"
#~ " from a fork <https://docs.github.com/en/pull-"
#~ "requests/collaborating-with-pull-requests"
#~ "/proposing-changes-to-your-work-with-"
#~ "pull-requests/creating-a-pull-request-from-a-fork>`_"
#~ msgstr ""

#~ msgid "Requirements"
#~ msgstr "Changements nécessaires"

#~ msgid ""
#~ "Contributing a new baseline is really"
#~ " easy. You only have to make "
#~ "sure that your federated learning "
#~ "experiments are running with Flower. As"
#~ " soon as you have created a "
#~ "Flower-based experiment, you can contribute"
#~ " it."
#~ msgstr ""

#~ msgid ""
#~ "It is recommended (but not required) "
#~ "to use `Hydra <https://hydra.cc/>`_ to "
#~ "execute the experiment."
#~ msgstr ""

#~ msgid ""
#~ "Please make sure to add your "
#~ "baseline or experiment to the "
#~ "corresponding directory as explained in "
#~ "`Executing Baseline <https://flower.ai/docs/using-"
#~ "baselines.html>`_. Give your baseline the "
#~ "unique identifier. For example, :code:`fedbn`"
#~ " refers to the paper \"FedBN: "
#~ "Federated Learning on non-IID Features"
#~ " via Local Batch Normalization\" and "
#~ "creates the corresponding directory "
#~ ":code:`flower/baselines/flwr_baselines/publications/fedbn`. Then"
#~ " you create the experiment directory "
#~ "with the experiment name. For example,"
#~ " the experiment that measures the "
#~ "convergence has the directory "
#~ ":code:`flower/baselines/flwr_baselines/publications/fedbn/convergence_rate`."
#~ " This directory contains all your "
#~ "code and a :code:`README.md` with a "
#~ "link to the paper, the paper's "
#~ "abstract, and a detailed description of"
#~ " how to execute the experiments."
#~ msgstr ""

#~ msgid ""
#~ "Please also check if :code:`pyproject.toml`"
#~ " and :code:`requirements.txt` (all in the"
#~ " directory `baselines "
#~ "<https://github.com/adap/flower/blob/main/baselines>`_ contain"
#~ " all required Python packages (libraries,"
#~ " frameworks, ...). If the required "
#~ "Python package is not yet listed, "
#~ "please add it to :code:`pyproject.toml`. "
#~ "If you need a different version of"
#~ " a package already listed, please try"
#~ " to ensure your experiment runs with"
#~ " the existing version listed in "
#~ ":code:`pyproject.toml` (or :code:`requirements.txt`). "
#~ "If that doesn't work, open a "
#~ "GitHub Issue and request the version "
#~ "change."
#~ msgstr ""

#~ msgid ""
#~ "The experiment also needs to contain "
#~ "a file with a downloader for the"
#~ " dataset - if possible automatic. "
#~ "This can be included in one of "
#~ "the files or as an extra file."
#~ msgstr ""

#~ msgid ""
#~ "Finally, please add plots for all "
#~ "experimental results your code is "
#~ "running to the :code:`experiment` directory"
#~ " and include them in :code:`README.md`. "
#~ "Doing this helps others and enables "
#~ "them to recognize your contributions "
#~ "quickly."
#~ msgstr ""

#~ msgid ""
#~ "We are aware that a few libraries"
#~ " are available only via Conda. "
#~ "However, we want to encourage you "
#~ "to ensure that your code also runs"
#~ " well outside of Conda to make "
#~ "it more accessible to the broader "
#~ "research community."
#~ msgstr ""

#~ msgid "Here is a checklist for adding a new baseline:"
#~ msgstr ""

#~ msgid ""
#~ "add required Python packages to "
#~ ":code:`pyproject.toml` or :code:`requirements.txt`"
#~ msgstr ""

#~ msgid ""
#~ "add all required code under "
#~ ":code:`baselines/flwr_baselines/publications/[new_publication]`"
#~ msgstr ""

#~ msgid "add a dataset downloader"
#~ msgstr ""

#~ msgid "add an experiment plot"
#~ msgstr ""

#~ msgid "add a :code:`README.md`"
#~ msgstr ""

#~ msgid "Usability"
#~ msgstr ""

#~ msgid ""
#~ "Flower is known and loved for its"
#~ " usability. Therefore, make sure that "
#~ "your baseline or experiment can be "
#~ "executed with a single command such "
#~ "as :code:`./run.sh` or :code:`python3 "
#~ "main.py`. How you organize the "
#~ "experiments and the related code "
#~ "structure is up to you as an "
#~ "author, but please keep in mind to"
#~ " make sure that other users can "
#~ "easily understand and execute your "
#~ "baseline."
#~ msgstr ""

#~ msgid "We look forward to your contribution!"
#~ msgstr "Exemple de première contribution"

#~ msgid "flwr"
#~ msgstr "Fleur"

#~ msgid "binaries"
#~ msgstr ""

#~ msgid "Flower Baselines"
#~ msgstr "Demande pour une nouvelle Flower Baseline"

#~ msgid ""
#~ "Flower Baselines are a collection of "
#~ "organised scripts used to reproduce "
#~ "results from well-known publications or"
#~ " benchmarks. You can check which "
#~ "baselines already exist and/or contribute "
#~ "your own baseline."
#~ msgstr ""

#~ msgid "Flower requires `Python 3.7 <https://docs.python.org/3.7/>`_ or above."
#~ msgstr "`Python 3.7 <https://docs.python.org/3.7/>`_ ou plus"

#~ msgid "|9e234df38403464899ad3aee36bf1b95|"
#~ msgstr ""

#~ msgid "|081158351506446f9f772cb45ee68523|"
#~ msgstr ""

#~ msgid "|e9325042b79c45ed96b5a8d2f6f3cdc9|"
#~ msgstr ""

#~ msgid "|11b83bb107344db78a37266e080c4a7a|"
#~ msgstr ""

#~ msgid "|cd764bcf6d174a9cb62880ace9a8a6bd|"
#~ msgstr ""

#~ msgid "|5c520984cced41e38f6bb4af416c3f84|"
#~ msgstr ""

#~ msgid "|66941b0608644cf1a2269a194d3bc0dd|"
#~ msgstr ""

#~ msgid "|4b149f3a095b402bb8890275aabc9298|"
#~ msgstr ""

#~ msgid "|675cf7d3d53a4817b5d47529c0758158|"
#~ msgstr ""

#~ msgid "|7ca594e16ae7477790c2e3cf096ec7cd|"
#~ msgstr ""

#~ msgid "|d669336577b545a081d5d74169a9bc4d|"
#~ msgstr ""

#~ msgid "|00b3d6cde1ff410ba54eff58da4e033a|"
#~ msgstr ""

#~ msgid "|29a11f5353084c1995c538f7edef71a5|"
#~ msgstr ""

#~ msgid "|d62eda312fd44726bb5db2b761fe7e0d|"
#~ msgstr ""

#~ msgid "Using Baselines"
#~ msgstr ""

#~ msgid "Structure"
#~ msgstr ""

#~ msgid ""
#~ "All baselines are available in the "
#~ "directory `baselines "
#~ "<https://github.com/adap/flower/blob/main/baselines>`_. This "
#~ "directory has two different files:"
#~ msgstr ""

#~ msgid ""
#~ "Both files contain all the information"
#~ " about required Python packages (libraries,"
#~ " frameworks, ...) and their versions. "
#~ "You can install each library separately"
#~ " by using :code: `pip install` or "
#~ "you can use Poetry and run "
#~ "code:`poetry install` in the directory "
#~ "where you find the :code:`pyproject.toml` "
#~ "file. After installing all requirements, "
#~ "you can start to run your "
#~ "baseline."
#~ msgstr ""

#~ msgid ""
#~ "Go to the baseline that you want"
#~ " to execute. The directories and "
#~ "files are structured so that you "
#~ "can first find the paper with "
#~ "their unique identifier such that, for"
#~ " example, :code:`FedProx` refers to the "
#~ "paper \"Federated Optimization in "
#~ "Heterogeneous Networks\". The :code:`fedprox` "
#~ "section contains all available experiments "
#~ "from that paper."
#~ msgstr ""

#~ msgid ""
#~ "The experiment area contains a "
#~ ":code:`README.md` covering the corresponding "
#~ "paper, its abstract, and goal as "
#~ "well as a detailed description of "
#~ "how to run the baseline. Please "
#~ "use the :code:`README.md` to see how "
#~ "to execute each individual baseline."
#~ msgstr ""

#~ msgid "Available Baselines"
#~ msgstr ""

#~ msgid ""
#~ "The following table lists all currently"
#~ " available baselines and the corresponding"
#~ " papers. If you want to add a"
#~ " new baseline or experiment, please "
#~ "check the `Contributing Baselines "
#~ "<https://flower.ai/docs/baselines/how-to-contribute-"
#~ "baselines.html>`_ section."
#~ msgstr ""

#~ msgid "Paper"
#~ msgstr ""

#~ msgid "Experiment"
#~ msgstr ""

#~ msgid "Directory"
#~ msgstr ""

#~ msgid "`FedAvg <https://arxiv.org/abs/1602.05629>`_"
#~ msgstr ""

#~ msgid "MNIST"
#~ msgstr ""

#~ msgid ":code:`flower/baselines/flwr_baselines/publications/fedavg_mnist/`"
#~ msgstr ""

#~ msgid "`FedProx <https://arxiv.org/abs/1812.06127>`_"
#~ msgstr ""

#~ msgid ":code:`flower/baselines/flwr_baselines/publications/fedprox_mnist/`"
#~ msgstr ""

#~ msgid "`FedOpt <https://arxiv.org/abs/2003.00295>`_"
#~ msgstr ""

#~ msgid "sparse gradient task"
#~ msgstr ""

#~ msgid ":code:`flower/baselines/flwr_baselines/publications/adaptive_federated_optimization`"
#~ msgstr ""

#~ msgid "`FedBN <https://arxiv.org/abs/2102.07623>`_"
#~ msgstr ""

#~ msgid "convergence rate"
#~ msgstr ""

#~ msgid ":code:`flower/baselines/flwr_baselines/publications/fedbn/convergence_rate`"
#~ msgstr ""

#~ msgid ""
#~ "Flower requires `Python 3.7 "
#~ "<https://docs.python.org/3.7/>`_ or above, we "
#~ "recommend `Python 3.8 "
#~ "<https://docs.python.org/3.8/>`_."
#~ msgstr ""
#~ "Flower nécessite `Python 3.7 "
#~ "<https://docs.python.org/3.7/>`_ ou plus, nous "
#~ "recommandons `Python 3.8 "
#~ "<https://docs.python.org/3.8/>`_."

#~ msgid "|6baade94cd14454e82ead34fcc29a182|"
#~ msgstr ""

#~ msgid "|1209ecd819104c458d396cf665c7ed4f|"
#~ msgstr ""

#~ msgid "|c088b02349304344a53f3ce1464225fb|"
#~ msgstr ""

#~ msgid "|b54d50afc82a4a57a55997a9eaeb735b|"
#~ msgstr ""

#~ msgid "|d17b57e97b714a25b43790d4b832fd87|"
#~ msgstr ""

#~ msgid "|38966d05301a4854aa73c8c5033bfaab|"
#~ msgstr ""

#~ msgid "|231d55f7926d4a5db02dcd724ec62529|"
#~ msgstr ""

#~ msgid "|fb44f2e13a1b4b69b7a72234eedd13f4|"
#~ msgstr ""

#~ msgid "|1cfc77af5d164030942e84d14268c256|"
#~ msgstr ""

#~ msgid "|0d50828231a64bc08223544a2d2fa216|"
#~ msgstr ""

#~ msgid "|904387757ceb42fbaa1875f3e8061113|"
#~ msgstr ""

#~ msgid "|68608e1b7c4842458c528b431c715f5a|"
#~ msgstr ""

#~ msgid "|2adb106bda97480bb4b33eac472e321e|"
#~ msgstr ""

#~ msgid "|025f0a6f7a6145cba4bf8fa0e2495851|"
#~ msgstr ""

#~ msgid "Before the release"
#~ msgstr "Avant la sortie"

#~ msgid ""
#~ "Update the changelog (``changelog.md``) with"
#~ " all relevant changes that happened "
#~ "after the last release. If the "
#~ "last release was tagged ``v1.2.0``, you"
#~ " can use the following URL to "
#~ "see all commits that got merged "
#~ "into ``main`` since then:"
#~ msgstr ""
#~ "Mettez à jour le journal des "
#~ "modifications (``changelog.md``) avec tous les"
#~ " changements pertinents qui se sont "
#~ "produits après la dernière version. Si"
#~ " la dernière version a été étiquetée"
#~ " ``v1.2.0``, vous pouvez utiliser l'URL "
#~ "suivante pour voir tous les commits "
#~ "qui ont été fusionnés dans ``main`` "
#~ "depuis lors :"

#~ msgid ""
#~ "`GitHub: Compare v1.2.0...main "
#~ "<https://github.com/adap/flower/compare/v1.2.0...main>`_"
#~ msgstr ""
#~ "`GitHub : Compare v1.2.0...main "
#~ "<https://github.com/adap/flower/compare/v1.2.0...main>`_"

#~ msgid ""
#~ "Thank the authors who contributed since"
#~ " the last release. This command helps"
#~ " extract them: ``git log --format='%aN' "
#~ "v1.1.0..HEAD | sort -u``. The command"
#~ " has the same order as ``git "
#~ "shortlog``."
#~ msgstr ""
#~ "Remerciez les auteurs qui ont contribué"
#~ " depuis la dernière version. Cette "
#~ "commande permet de les extraire : "
#~ "``git log --format='%aN' v1.1.0..HEAD | "
#~ "sort -u``. La commande a le même"
#~ " ordre que ``git shortlog``."

#~ msgid ""
#~ "Update the ``changelog.md`` section header "
#~ "``Unreleased`` to contain the version "
#~ "number and date for the release "
#~ "you are building. Create a pull "
#~ "request with the change."
#~ msgstr ""
#~ "Mettez à jour l'en-tête de section"
#~ " ``changelog.md`` ``Unreleased`` pour qu'il "
#~ "contienne le numéro de version et "
#~ "la date de la version que vous "
#~ "construisez. Créez une demande de "
#~ "traction avec le changement."

#~ msgid ""
#~ "Tag the release commit with the "
#~ "version number as soon as the PR"
#~ " is merged: ``git tag v0.12.3``, then"
#~ " ``git push --tags``"
#~ msgstr ""
#~ "Marquez le commit de la version "
#~ "avec le numéro de version dès que"
#~ " le PR est fusionné : ``git tag"
#~ " v0.12.3``, puis ``git push --tags``"

#~ msgid ""
#~ "Build the release with ``./dev/build.sh``, "
#~ "then publish it with ``./dev/publish.sh``"
#~ msgstr ""
#~ "Construisez la version avec "
#~ "``./dev/build.sh``, puis publiez-la avec "
#~ "``./dev/publish.sh``"

#~ msgid ""
#~ "Create an entry in GitHub releases "
#~ "with the release notes for the "
#~ "previously tagged commit and attach the"
#~ " build artifacts (:code:`.whl` and "
#~ ":code:`.tar.gz`)."
#~ msgstr ""
#~ "Crée une entrée dans GitHub releases "
#~ "avec les notes de version pour le"
#~ " commit précédemment étiqueté et attache"
#~ " les artefacts de construction "
#~ "(:code:`.whl` et :code:`.tar.gz`)."

#~ msgid ""
#~ "Second, create a virtual environment "
#~ "(and activate it). If you chose to"
#~ " use :code:`pyenv` (with the :code"
#~ ":`pyenv-virtualenv` plugin) and already "
#~ "have it installed , you can use"
#~ " the following convenience script (by "
#~ "default it will use :code:`Python "
#~ "3.8.17`, but you can change it by"
#~ " providing a specific :code:`<version>`)::"
#~ msgstr ""
#~ "Deuxièmement, créer un environnement virtuel"
#~ " (et l'activer). Si vous choisissez "
#~ "d'utiliser :code:`pyenv` (avec le plugin "
#~ ":code:`pyenv-virtualenv`) et que vous "
#~ "l'avez déjà installé, vous pouvez "
#~ "utiliser le script suivant (par défaut"
#~ " il utilisera :code:`Python 3.8.17`, mais"
#~ " vous pouvez le changer en "
#~ "fournissant une :code:`<version>` spécifique)::"

#~ msgid "server.strategy.FedAvg"
#~ msgstr "serveur.stratégie.FedAvg"

#~ msgid "server.strategy.FedAvgM"
#~ msgstr "stratégie.serveur.FedAvgM"

#~ msgid "server.strategy.QFedAvg"
#~ msgstr "server.strategy.QFedAvg"

#~ msgid "server.strategy.FedOpt"
#~ msgstr "serveur.stratégie.FedOpt"

#~ msgid "server.strategy.FedProx"
#~ msgstr "serveur.stratégie.FedProx"

#~ msgid "server.strategy.FedAdagrad"
#~ msgstr "serveur.stratégie.FedAdagrad"

#~ msgid "server.strategy.FedAdam"
#~ msgstr "serveur.stratégie.FedAdam"

#~ msgid "server.strategy.FedYogi"
#~ msgstr "serveur.stratégie.FedYogi"

#~ msgid ""
#~ "`achiverram28`, `Adam Narozniak`, `Anass "
#~ "Anhari`, `Charles Beauville`, `Dana-Farber`,"
#~ " `Daniel J. Beutel`, `Daniel Nata "
#~ "Nugraha`, `Edoardo Gabrielli`, `eunchung`, "
#~ "`Gustavo Bertoli`, `Heng Pan`, `Javier`, "
#~ "`Mahdi`, `Ruth Galindo`, `Steven Hé "
#~ "(Sīchàng)`, `Taner Topal`"
#~ msgstr ""

#~ msgid ""
#~ "Let's now load the CIFAR-10 training "
#~ "and test set, partition them into "
#~ "ten smaller datasets (each split into"
#~ " training and validation set), and "
#~ "wrap the resulting partitions by "
#~ "creating a PyTorch ``DataLoader`` for "
#~ "each of them:"
#~ msgstr ""
#~ "Chargeons maintenant l'ensemble de formation"
#~ " et de test CIFAR-10, partitionnons-"
#~ "les en dix ensembles de données "
#~ "plus petits (chacun divisé en ensemble"
#~ " de formation et de validation), et"
#~ " enveloppons les partitions résultantes en"
#~ " créant un PyTorch ``DataLoader`` pour "
#~ "chacun d'entre eux :"

#~ msgid ""
#~ "Let's build a horizontal federated "
#~ "learning system using XGBoost and "
#~ "Flower!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " horizontal en utilisant XGBoost et "
#~ "Flower !"

#~ msgid ""
#~ "Please refer to the `full code "
#~ "example <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-xgboost-horizontal>`_ to learn "
#~ "more."
#~ msgstr ""
#~ "Réfère-toi à l'exemple de code "
#~ "complet <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-xgboost-horizontal>`_ pour en "
#~ "savoir plus."

#~ msgid "|3ff4c820a01d4a5abb022617de537c54|"
#~ msgstr ""

#~ msgid "|7f1889391ad448e2a65920165f0d798c|"
#~ msgstr ""

#~ msgid "|a171dc4a0d044e70b5d585cc10ace0e0|"
#~ msgstr ""

#~ msgid "|fe518aa0d86341f7b2fc87bd6e3bbf0c|"
#~ msgstr ""

#~ msgid "|6abfdf0dade44469ae9f08c8dc7d148c|"
#~ msgstr ""

#~ msgid "|b4f147db24bb4da9a786e1d6676a1c2d|"
#~ msgstr ""

#~ msgid "|5c62032f589a457bb37b5fee5b2adbde|"
#~ msgstr ""

#~ msgid "|f154df1846dd44f79a94f1dc3ae8b088|"
#~ msgstr ""

#~ msgid "|9d20be8160f7451fb0f33b194506503f|"
#~ msgstr ""

#~ msgid "|3d949f76988443c59990d2e64f05c386|"
#~ msgstr ""

#~ msgid "|526c6d9140f6404f8a226d9056327b3b|"
#~ msgstr ""

#~ msgid "|a5f6af14cd7c4550929b17f83b4f63c7|"
#~ msgstr ""

#~ msgid "|bcd571c4f4ee4803a54f71b5c20448cb|"
#~ msgstr ""

#~ msgid "|c76452ae1ed84965be7ef23c72b95845|"
#~ msgstr ""

#~ msgid ""
#~ "Please follow the first section on "
#~ "`Run Flower using Docker "
#~ "<https://flower.ai/docs/framework/how-to-run-"
#~ "flower-using-docker>`_ which covers this"
#~ " step in more detail."
#~ msgstr ""

#~ msgid ""
#~ "Since `Flower 1.5 <https://flower.ai/docs/framework"
#~ "/ref-changelog.html#v1-5-0-2023-08-31>`_ we have "
#~ "introduced translations to our doc "
#~ "pages, but, as you might have "
#~ "noticed, the translations are often "
#~ "imperfect. If you speak languages other"
#~ " than English, you might be able "
#~ "to help us in our effort to "
#~ "make Federated Learning accessible to as"
#~ " many people as possible by "
#~ "contributing to those translations! This "
#~ "might also be a great opportunity "
#~ "for those wanting to become open "
#~ "source contributors with little prerequistes."
#~ msgstr ""

#~ msgid ""
#~ "You input your translation in the "
#~ "textbox at the top and then, once"
#~ " you are happy with it, you "
#~ "either press ``Save and continue`` (to"
#~ " save the translation and go to "
#~ "the next untranslated string), ``Save "
#~ "and stay`` (to save the translation "
#~ "and stay on the same page), "
#~ "``Suggest`` (to add your translation to"
#~ " suggestions for other users to "
#~ "view), or ``Skip`` (to go to the"
#~ " next untranslated string without saving"
#~ " anything)."
#~ msgstr ""

#~ msgid ""
#~ "If the section is completely empty "
#~ "(without any token) or non-existant, "
#~ "the changelog will just contain the "
#~ "title of the PR for the changelog"
#~ " entry, without any description."
#~ msgstr ""

#~ msgid "Example: Walk-Through PyTorch & MNIST"
#~ msgstr "Exemple : PyTorch et MNIST"

#~ msgid ""
#~ "In this tutorial we will learn, "
#~ "how to train a Convolutional Neural "
#~ "Network on MNIST using Flower and "
#~ "PyTorch."
#~ msgstr ""
#~ "Dans ce tutoriel, nous allons apprendre,"
#~ " comment former un réseau neuronal "
#~ "convolutif sur MNIST en utilisant Flower"
#~ " et PyTorch."

#~ msgid ""
#~ "Since we want to use PyTorch to"
#~ " solve a computer vision task, let's"
#~ " go ahead an install PyTorch and "
#~ "the **torchvision** library:"
#~ msgstr ""
#~ "Puisque nous voulons utiliser PyTorch "
#~ "pour résoudre une tâche de vision "
#~ "par ordinateur, installons PyTorch et la"
#~ " bibliothèque **torchvision** :"

#~ msgid "Ready... Set... Train!"
#~ msgstr "Prêts... prêts... entraînez-vous !"

#~ msgid ""
#~ "Now that we have all our "
#~ "dependencies installed, let's run a "
#~ "simple distributed training with two "
#~ "clients and one server. Our training "
#~ "procedure and network architecture are "
#~ "based on PyTorch's `Basic MNIST Example"
#~ " <https://github.com/pytorch/examples/tree/master/mnist>`_. "
#~ "This will allow you see how easy"
#~ " it is to wrap your code with"
#~ " Flower and begin training in a "
#~ "federated way. We provide you with "
#~ "two helper scripts, namely *run-"
#~ "server.sh*, and *run-clients.sh*. Don't "
#~ "be afraid to look inside, they are"
#~ " simple enough =)."
#~ msgstr ""
#~ "Maintenant que nous avons installé "
#~ "toutes nos dépendances, lançons un "
#~ "simple entraînement distribué avec deux "
#~ "clients et un serveur. Notre procédure"
#~ " d'entraînement et l'architecture de notre"
#~ " réseau sont basées sur l'exemple "
#~ "MNIST de base de PyTorch "
#~ "<https://github.com/pytorch/examples/tree/master/mnist>`_. Cela"
#~ " te permettra de voir à quel "
#~ "point il est facile d'envelopper ton "
#~ "code avec Flower et de commencer "
#~ "l'entraînement de manière fédérée. Nous "
#~ "te fournissons deux scripts d'aide, à"
#~ " savoir *run-server.sh*, et *run-"
#~ "clients.sh*. N'aie pas peur de regarder"
#~ " à l'intérieur, ils sont assez "
#~ "simples =)."

#~ msgid ""
#~ "Go ahead and launch on a terminal"
#~ " the *run-server.sh* script first as"
#~ " follows:"
#~ msgstr "Lance sur un terminal le script *run-server.sh* d'abord comme suit :"

#~ msgid "Now that the server is up and running, go ahead and launch the clients."
#~ msgstr "Maintenant que le serveur est opérationnel, vas-y et lance les clients."

#~ msgid ""
#~ "Et voilà! You should be seeing the"
#~ " training procedure and, after a few"
#~ " iterations, the test accuracy for "
#~ "each client."
#~ msgstr ""
#~ "Et voilà ! Tu devrais voir la "
#~ "procédure d'entraînement et, après quelques"
#~ " itérations, la précision du test "
#~ "pour chaque client."

#~ msgid "Now, let's see what is really happening inside."
#~ msgstr "Maintenant, voyons ce qui se passe réellement à l'intérieur."

#~ msgid ""
#~ "Inside the server helper script *run-"
#~ "server.sh* you will find the following"
#~ " code that basically runs the "
#~ ":code:`server.py`"
#~ msgstr ""
#~ "Dans le script d'aide au serveur "
#~ "*run-server.sh*, tu trouveras le code "
#~ "suivant qui exécute le fichier "
#~ ":code:`server.py`"

#~ msgid ""
#~ "We can go a bit deeper and "
#~ "see that :code:`server.py` simply launches "
#~ "a server that will coordinate three "
#~ "rounds of training. Flower Servers are"
#~ " very customizable, but for simple "
#~ "workloads, we can start a server "
#~ "using the :ref:`start_server <flwr-server-"
#~ "start_server-apiref>` function and leave "
#~ "all the configuration possibilities at "
#~ "their default values, as seen below."
#~ msgstr ""
#~ "Nous pouvons aller un peu plus "
#~ "loin et voir que :code:`server.py` lance"
#~ " simplement un serveur qui coordonnera "
#~ "trois tours de formation. Flower Les "
#~ "serveurs sont très personnalisables, mais "
#~ "pour les charges de travail simples, "
#~ "nous pouvons démarrer un serveur à "
#~ "l'aide de la fonction :ref:`start_server "
#~ "<flwr-server-start_server-apiref>` et "
#~ "laisser toutes les possibilités de "
#~ "configuration à leurs valeurs par "
#~ "défaut, comme on peut le voir "
#~ "ci-dessous."

#~ msgid ""
#~ "Next, let's take a look at the "
#~ "*run-clients.sh* file. You will see "
#~ "that it contains the main loop "
#~ "that starts a set of *clients*."
#~ msgstr ""
#~ "Ensuite, jetons un coup d'œil au "
#~ "fichier *run-clients.sh*. Tu verras "
#~ "qu'il contient la boucle principale qui"
#~ " démarre un ensemble de *clients*."

#~ msgid ""
#~ "**cid**: is the client ID. It is"
#~ " an integer that uniquely identifies "
#~ "client identifier."
#~ msgstr ""
#~ "**cid** : c'est l'identifiant du client."
#~ " C'est un nombre entier qui identifie"
#~ " de façon unique l'identifiant du "
#~ "client."

#~ msgid "**sever_address**: String that identifies IP and port of the server."
#~ msgstr "**sever_address** : Chaîne qui identifie l'IP et le port du serveur."

#~ msgid ""
#~ "**nb_clients**: This defines the number "
#~ "of clients being created. This piece "
#~ "of information is not required by "
#~ "the client, but it helps us "
#~ "partition the original MNIST dataset to"
#~ " make sure that every client is "
#~ "working on unique subsets of both "
#~ "*training* and *test* sets."
#~ msgstr ""
#~ "**Cette information n'est pas requise "
#~ "par le client, mais elle nous aide"
#~ " à partitionner l'ensemble de données "
#~ "MNIST original pour nous assurer que "
#~ "chaque client travaille sur des sous-"
#~ "ensembles uniques des ensembles *formation*"
#~ " et *test*."

#~ msgid ""
#~ "Again, we can go deeper and look"
#~ " inside :code:`flwr_example/quickstart-"
#~ "pytorch/client.py`. After going through the"
#~ " argument parsing code at the "
#~ "beginning of our :code:`main` function, "
#~ "you will find a call to "
#~ ":code:`mnist.load_data`. This function is "
#~ "responsible for partitioning the original "
#~ "MNIST datasets (*training* and *test*) "
#~ "and returning a :code:`torch.utils.data.DataLoader`"
#~ " s for each of them. We then"
#~ " instantiate a :code:`PytorchMNISTClient` object"
#~ " with our client ID, our DataLoaders,"
#~ " the number of epochs in each "
#~ "round, and which device we want to"
#~ " use for training (CPU or GPU)."
#~ msgstr ""
#~ "Encore une fois, nous pouvons aller "
#~ "plus loin et regarder dans "
#~ ":code:`flwr_example/quickstart-pytorch/client.py`. Après"
#~ " avoir parcouru le code d'analyse des"
#~ " arguments au début de notre fonction"
#~ " :code:`main`, tu trouveras un appel "
#~ "à :code:`mnist.load_data`. Cette fonction est"
#~ " responsable du partitionnement des "
#~ "ensembles de données MNIST originaux "
#~ "(*training* et *test*) et renvoie un "
#~ ":code:`torch.utils.data.DataLoader` s pour chacun"
#~ " d'entre eux. Nous instancions ensuite "
#~ "un objet :code:`PytorchMNISTClient` avec notre"
#~ " ID client, nos DataLoaders, le "
#~ "nombre d'époques dans chaque tour et "
#~ "le périphérique que nous voulons "
#~ "utiliser pour l'entraînement (CPU ou "
#~ "GPU)."

#~ msgid ""
#~ "The :code:`PytorchMNISTClient` object when "
#~ "finally passed to :code:`fl.client.start_client` "
#~ "along with the server's address as "
#~ "the training process begins."
#~ msgstr ""
#~ "L'objet :code:`PytorchMNISTClient` est finalement"
#~ " transmis à :code:`fl.client.start_client` avec"
#~ " l'adresse du serveur lorsque le "
#~ "processus de formation commence."

#~ msgid "A Closer Look"
#~ msgstr "Regarder de plus près"

#~ msgid ""
#~ "Now, let's look closely into the "
#~ ":code:`PytorchMNISTClient` inside :code:`flwr_example"
#~ ".quickstart-pytorch.mnist` and see what it"
#~ " is doing:"
#~ msgstr ""
#~ "Maintenant, examinons de près le "
#~ ":code:`PytorchMNISTClient` à l'intérieur du "
#~ ":code:`flwr_example.quickstart-pytorch.mnist` et "
#~ "voyons ce qu'il fait :"

#~ msgid ""
#~ "The first thing to notice is that"
#~ " :code:`PytorchMNISTClient` instantiates a CNN"
#~ " model inside its constructor"
#~ msgstr ""
#~ "La première chose à remarquer est "
#~ "que :code:`PytorchMNISTClient` instancie un "
#~ "modèle CNN dans son constructeur"

#~ msgid ""
#~ "The code for the CNN is available"
#~ " under :code:`quickstart-pytorch.mnist` and "
#~ "it is reproduced below. It is the"
#~ " same network found in `Basic MNIST"
#~ " Example "
#~ "<https://github.com/pytorch/examples/tree/master/mnist>`_."
#~ msgstr ""
#~ "Le code du CNN est disponible sous"
#~ " :code:`quickstart-pytorch.mnist` et il est"
#~ " reproduit ci-dessous. Il s'agit du"
#~ " même réseau que celui que l'on "
#~ "trouve dans `Exemple basique de MNIST"
#~ " <https://github.com/pytorch/examples/tree/master/mnist>`_."

#~ msgid ""
#~ "The second thing to notice is that"
#~ " :code:`PytorchMNISTClient` class inherits from"
#~ " the :code:`fl.client.Client`, and hence it"
#~ " must implement the following methods:"
#~ msgstr ""
#~ "La deuxième chose à noter est que"
#~ " la classe :code:`PytorchMNISTClient` hérite "
#~ "de :code:`fl.client.Client`, et qu'elle doit"
#~ " donc implémenter les méthodes suivantes"
#~ " :"

#~ msgid ""
#~ "When comparing the abstract class to "
#~ "its derived class :code:`PytorchMNISTClient` "
#~ "you will notice that :code:`fit` calls"
#~ " a :code:`train` function and that "
#~ ":code:`evaluate` calls a :code:`test`: "
#~ "function."
#~ msgstr ""
#~ "En comparant la classe abstraite à "
#~ "sa classe dérivée :code:`PytorchMNISTClient`, "
#~ "tu remarqueras que :code:`fit` appelle "
#~ "une fonction :code:`train` et que "
#~ ":code:`evaluate` appelle une fonction "
#~ ":code:`test` :."

#~ msgid ""
#~ "These functions can both be found "
#~ "inside the same :code:`quickstart-"
#~ "pytorch.mnist` module:"
#~ msgstr ""
#~ "Ces fonctions se trouvent toutes deux"
#~ " dans le même module :code:`quickstart-"
#~ "pytorch.mnist` :"

#~ msgid ""
#~ "Observe that these functions encapsulate "
#~ "regular training and test loops and "
#~ "provide :code:`fit` and :code:`evaluate` with"
#~ " final statistics for each round. You"
#~ " could substitute them with your "
#~ "custom train and test loops and "
#~ "change the network architecture, and the"
#~ " entire example would still work "
#~ "flawlessly. As a matter of fact, "
#~ "why not try and modify the code"
#~ " to an example of your liking?"
#~ msgstr ""
#~ "Observe que ces fonctions encapsulent "
#~ "les boucles d'entraînement et de test"
#~ " habituelles et fournissent à :code:`fit`"
#~ " et :code:`evaluate` les statistiques "
#~ "finales pour chaque tour. Tu pourrais"
#~ " les remplacer par tes boucles "
#~ "d'entraînement et de test personnalisées "
#~ "et changer l'architecture du réseau, et"
#~ " l'ensemble de l'exemple fonctionnerait "
#~ "toujours parfaitement. En fait, pourquoi "
#~ "ne pas essayer de modifier le code"
#~ " pour en faire un exemple qui "
#~ "te plairait ?"

#~ msgid "Give It a Try"
#~ msgstr "Fais un essai"

#~ msgid ""
#~ "Looking through the quickstart code "
#~ "description above will have given a "
#~ "good understanding of how *clients* and"
#~ " *servers* work in Flower, how to "
#~ "run a simple experiment, and the "
#~ "internals of a client wrapper. Here "
#~ "are a few things you could try "
#~ "on your own and get more "
#~ "experience with Flower:"
#~ msgstr ""
#~ "En parcourant la description du code "
#~ "de démarrage rapide ci-dessus, tu "
#~ "auras acquis une bonne compréhension du"
#~ " fonctionnement des *clients* et des "
#~ "*serveurs* dans Flower, de l'exécution "
#~ "d'une expérience simple et de la "
#~ "structure interne d'un wrapper client. "
#~ "Voici quelques exemples que tu peux "
#~ "essayer par toi-même pour acquérir "
#~ "plus d'expérience avec Flower :"

#~ msgid ""
#~ "Try and change :code:`PytorchMNISTClient` so"
#~ " it can accept different architectures."
#~ msgstr ""
#~ "Essaie de modifier :code:`PytorchMNISTClient` "
#~ "pour qu'il puisse accepter différentes "
#~ "architectures."

#~ msgid ""
#~ "Modify the :code:`train` function so "
#~ "that it accepts different optimizers"
#~ msgstr ""
#~ "Modifie la fonction :code:`train` pour "
#~ "qu'elle accepte différents optimiseurs"

#~ msgid ""
#~ "Modify the :code:`test` function so that"
#~ " it proves not only the top-1 "
#~ "(regular accuracy) but also the top-5"
#~ " accuracy?"
#~ msgstr ""
#~ "Modifie la fonction :code:`test` pour "
#~ "qu'elle prouve non seulement le top-1"
#~ " (précision normale) mais aussi le "
#~ "top-5 ?"

#~ msgid ""
#~ "Go larger! Try to adapt the code"
#~ " to larger images and datasets. Why"
#~ " not try training on ImageNet with"
#~ " a ResNet-50?"
#~ msgstr ""
#~ "Essaie d'adapter le code à des "
#~ "images et à des ensembles de "
#~ "données plus grands. Pourquoi ne pas "
#~ "essayer de s'entraîner sur ImageNet avec"
#~ " un ResNet-50 ?"

#~ msgid "You are ready now. Enjoy learning in a federated way!"
#~ msgstr "Tu es prêt maintenant. Profite de l'apprentissage de manière fédérée !"

#~ msgid ""
#~ "Flower provides differential privacy (DP) "
#~ "wrapper classes for the easy integration"
#~ " of the central DP guarantees "
#~ "provided by DP-FedAvg into training "
#~ "pipelines defined in any of the "
#~ "various ML frameworks that Flower is "
#~ "compatible with."
#~ msgstr ""
#~ "Flower fournit des classes d'enveloppe "
#~ "de confidentialité différentielle (DP) pour"
#~ " l'intégration facile des garanties "
#~ "centrales de DP fournies par DP-"
#~ "FedAvg dans les pipelines de formation"
#~ " définis dans n'importe lequel des "
#~ "divers cadres de ML avec lesquels "
#~ "Flower est compatible."

#~ msgid ""
#~ "Please note that these components are"
#~ " still experimental; the correct "
#~ "configuration of DP for a specific "
#~ "task is still an unsolved problem."
#~ msgstr ""
#~ "Note que ces composants sont encore "
#~ "expérimentaux, la configuration correcte du"
#~ " DP pour une tâche spécifique est "
#~ "encore un problème non résolu."

#~ msgid ""
#~ "The name DP-FedAvg is misleading "
#~ "since it can be applied on top "
#~ "of any FL algorithm that conforms "
#~ "to the general structure prescribed by"
#~ " the FedOpt family of algorithms."
#~ msgstr ""
#~ "Le nom DP-FedAvg est trompeur car"
#~ " il peut être appliqué à n'importe"
#~ " quel algorithme FL qui se conforme"
#~ " à la structure générale prescrite "
#~ "par la famille d'algorithmes FedOpt."

#~ msgid "DP-FedAvg"
#~ msgstr "DP-FedAvg"

#~ msgid ""
#~ "DP-FedAvg, originally proposed by "
#~ "McMahan et al. [mcmahan]_ and extended"
#~ " by Andrew et al. [andrew]_, is "
#~ "essentially FedAvg with the following "
#~ "modifications."
#~ msgstr ""
#~ "DP-FedAvg, proposé à l'origine par "
#~ "McMahan et al. [mcmahan]_ et étendu "
#~ "par Andrew et al. [andrew]_, est "
#~ "essentiellement FedAvg avec les modifications"
#~ " suivantes."

#~ msgid ""
#~ "**Clipping** : The influence of each "
#~ "client's update is bounded by clipping"
#~ " it. This is achieved by enforcing"
#~ " a cap on the L2 norm of "
#~ "the update, scaling it down if "
#~ "needed."
#~ msgstr ""
#~ "**Clipping** : L'influence de la mise"
#~ " à jour de chaque client est "
#~ "limitée en l'écrêtant. Ceci est réalisé"
#~ " en imposant un plafond à la "
#~ "norme L2 de la mise à jour, "
#~ "en la réduisant si nécessaire."

#~ msgid ""
#~ "**Noising** :  Gaussian noise, calibrated "
#~ "to the clipping threshold, is added "
#~ "to the average computed at the "
#~ "server."
#~ msgstr ""
#~ "**Bruit** : un bruit gaussien, calibré"
#~ " sur le seuil d'écrêtage, est ajouté"
#~ " à la moyenne calculée au niveau "
#~ "du serveur."

#~ msgid ""
#~ "The distribution of the update norm "
#~ "has been shown to vary from "
#~ "task-to-task and to evolve as "
#~ "training progresses. This variability is "
#~ "crucial in understanding its impact on"
#~ " differential privacy guarantees, emphasizing "
#~ "the need for an adaptive approach "
#~ "[andrew]_ that continuously adjusts the "
#~ "clipping threshold to track a "
#~ "prespecified quantile of the update norm"
#~ " distribution."
#~ msgstr ""
#~ "Il a été démontré que la "
#~ "distribution de la norme de mise à"
#~ " jour varie d'une tâche à l'autre "
#~ "et évolue au fur et à mesure "
#~ "de la formation. C'est pourquoi nous "
#~ "utilisons une approche adaptative [andrew]_"
#~ " qui ajuste continuellement le seuil "
#~ "d'écrêtage pour suivre un quantile "
#~ "prédéfini de la distribution de la "
#~ "norme de mise à jour."

#~ msgid "Simplifying Assumptions"
#~ msgstr "Simplifier les hypothèses"

#~ msgid ""
#~ "We make (and attempt to enforce) a"
#~ " number of assumptions that must be"
#~ " satisfied to ensure that the "
#~ "training process actually realizes the "
#~ ":math:`(\\epsilon, \\delta)` guarantees the "
#~ "user has in mind when configuring "
#~ "the setup."
#~ msgstr ""
#~ "Nous formulons (et tentons d'appliquer) "
#~ "un certain nombre d'hypothèses qui "
#~ "doivent être satisfaites pour que le "
#~ "processus de formation réalise réellement "
#~ "les garanties :math:`(\\epsilon, \\delta)` que"
#~ " l'utilisateur a à l'esprit lorsqu'il "
#~ "configure l'installation."

#~ msgid ""
#~ "**Fixed-size subsampling** :Fixed-size "
#~ "subsamples of the clients must be "
#~ "taken at each round, as opposed to"
#~ " variable-sized Poisson subsamples."
#~ msgstr ""
#~ "**Sous-échantillonnage de taille fixe** "
#~ ":Des sous-échantillons de taille fixe"
#~ " des clients doivent être prélevés à"
#~ " chaque tour, par opposition aux "
#~ "sous-échantillons de Poisson de taille "
#~ "variable."

#~ msgid ""
#~ "**Unweighted averaging** : The contributions"
#~ " from all the clients must weighted"
#~ " equally in the aggregate to "
#~ "eliminate the requirement for the server"
#~ " to know in advance the sum of"
#~ " the weights of all clients available"
#~ " for selection."
#~ msgstr ""
#~ "**Moyenne non pondérée** : Les "
#~ "contributions de tous les clients "
#~ "doivent être pondérées de façon égale"
#~ " dans l'ensemble afin que le serveur"
#~ " n'ait pas à connaître à l'avance "
#~ "la somme des poids de tous les "
#~ "clients disponibles pour la sélection."

#~ msgid ""
#~ "**No client failures** : The set "
#~ "of available clients must stay constant"
#~ " across all rounds of training. In"
#~ " other words, clients cannot drop out"
#~ " or fail."
#~ msgstr ""
#~ "**Aucune défaillance de client** : "
#~ "L'ensemble des clients disponibles doit "
#~ "rester constant pendant toutes les "
#~ "séries de formation. En d'autres termes,"
#~ " les clients ne peuvent pas "
#~ "abandonner ou échouer."

#~ msgid ""
#~ "The first two are useful for "
#~ "eliminating a multitude of complications "
#~ "associated with calibrating the noise to"
#~ " the clipping threshold, while the "
#~ "third one is required to comply "
#~ "with the assumptions of the privacy "
#~ "analysis."
#~ msgstr ""
#~ "Les deux premiers sont utiles pour "
#~ "éliminer une multitude de complications "
#~ "liées au calibrage du bruit en "
#~ "fonction du seuil d'écrêtage, tandis que"
#~ " le troisième est nécessaire pour se"
#~ " conformer aux hypothèses de l'analyse "
#~ "de la vie privée."

#~ msgid ""
#~ "These restrictions are in line with "
#~ "constraints imposed by Andrew et al. "
#~ "[andrew]_."
#~ msgstr ""
#~ "Ces restrictions sont conformes aux "
#~ "contraintes imposées par Andrew et al."
#~ " [andrew]_."

#~ msgid "Customizable Responsibility for Noise injection"
#~ msgstr "Responsabilité personnalisable pour l'injection de bruit"

#~ msgid ""
#~ "In contrast to other implementations "
#~ "where the addition of noise is "
#~ "performed at the server, you can "
#~ "configure the site of noise injection"
#~ " to better match your threat model."
#~ " We provide users with the "
#~ "flexibility to set up the training "
#~ "such that each client independently adds"
#~ " a small amount of noise to the"
#~ " clipped update, with the result that"
#~ " simply aggregating the noisy updates "
#~ "is equivalent to the explicit addition"
#~ " of noise to the non-noisy "
#~ "aggregate at the server."
#~ msgstr ""
#~ "Contrairement à d'autres implémentations où"
#~ " l'ajout de bruit est effectué au "
#~ "niveau du serveur, tu peux configurer"
#~ " le site d'injection de bruit pour"
#~ " qu'il corresponde mieux à ton modèle"
#~ " de menace. Nous offrons aux "
#~ "utilisateurs la possibilité de configurer "
#~ "l'entraînement de telle sorte que chaque"
#~ " client ajoute indépendamment une petite"
#~ " quantité de bruit à la mise à"
#~ " jour écrêtée, ce qui fait que "
#~ "le simple fait d'agréger les mises "
#~ "à jour bruyantes équivaut à l'ajout "
#~ "explicite de bruit à l'agrégat non "
#~ "bruyant au niveau du serveur."

#~ msgid ""
#~ "To be precise, if we let :math:`m`"
#~ " be the number of clients sampled "
#~ "each round and :math:`\\sigma_\\Delta` be "
#~ "the scale of the total Gaussian "
#~ "noise that needs to be added to"
#~ " the sum of the model updates, "
#~ "we can use simple maths to show"
#~ " that this is equivalent to each "
#~ "client adding noise with scale "
#~ ":math:`\\sigma_\\Delta/\\sqrt{m}`."
#~ msgstr ""
#~ "Pour être précis, si nous laissons "
#~ ":math:`m` être le nombre de clients "
#~ "échantillonnés à chaque tour et "
#~ ":math:\\sigma_\\Delta` être l'échelle du bruit"
#~ " gaussien total qui doit être ajouté"
#~ " à la somme des mises à jour"
#~ " du modèle, nous pouvons utiliser des"
#~ " mathématiques simples pour montrer que "
#~ "cela équivaut à ce que chaque "
#~ "client ajoute du bruit avec l'échelle"
#~ " :math:\\sigma_\\Delta/\\sqrt{m}`."

#~ msgid "Wrapper-based approach"
#~ msgstr "Approche basée sur l'enveloppe"

#~ msgid ""
#~ "Introducing DP to an existing workload"
#~ " can be thought of as adding an"
#~ " extra layer of security around it."
#~ " This inspired us to provide the "
#~ "additional server and client-side logic"
#~ " needed to make the training process"
#~ " differentially private as wrappers for "
#~ "instances of the :code:`Strategy` and "
#~ ":code:`NumPyClient` abstract classes respectively."
#~ " This wrapper-based approach has the"
#~ " advantage of being easily composable "
#~ "with other wrappers that someone might"
#~ " contribute to the Flower library in"
#~ " the future, e.g., for secure "
#~ "aggregation. Using Inheritance instead can "
#~ "be tedious because that would require"
#~ " the creation of new sub- classes "
#~ "every time a new class implementing "
#~ ":code:`Strategy` or :code:`NumPyClient` is "
#~ "defined."
#~ msgstr ""
#~ "L'introduction du DP dans une charge "
#~ "de travail existante peut être "
#~ "considérée comme l'ajout d'une couche de"
#~ " sécurité supplémentaire autour d'elle. "
#~ "Cela nous a incités à fournir la"
#~ " logique supplémentaire côté serveur et "
#~ "côté client nécessaire pour rendre le"
#~ " processus de formation différentiellement "
#~ "privé en tant qu'enveloppes pour les "
#~ "instances des classes abstraites "
#~ ":code:`Strategy` et :code:`NumPyClient` "
#~ "respectivement. Cette approche basée sur "
#~ "l'enveloppe a l'avantage d'être facilement "
#~ "composable avec d'autres enveloppes que "
#~ "quelqu'un pourrait contribuer à la "
#~ "bibliothèque Flower à l'avenir, par "
#~ "exemple, pour l'agrégation sécurisée. "
#~ "L'utilisation de l'héritage à la place"
#~ " peut être fastidieuse car cela "
#~ "nécessiterait la création de nouvelles "
#~ "sous-classes chaque fois qu'une nouvelle"
#~ " classe mettant en œuvre :code:`Strategy`"
#~ " ou :code:`NumPyClient` est définie."

#~ msgid ""
#~ "The first version of our solution "
#~ "was to define a decorator whose "
#~ "constructor accepted, among other things, "
#~ "a boolean-valued variable indicating "
#~ "whether adaptive clipping was to be "
#~ "enabled or not. We quickly realized "
#~ "that this would clutter its "
#~ ":code:`__init__()` function with variables "
#~ "corresponding to hyperparameters of adaptive"
#~ " clipping that would remain unused "
#~ "when it was disabled. A cleaner "
#~ "implementation could be achieved by "
#~ "splitting the functionality into two "
#~ "decorators, :code:`DPFedAvgFixed` and "
#~ ":code:`DPFedAvgAdaptive`, with the latter sub-"
#~ " classing the former. The constructors "
#~ "for both classes accept a boolean "
#~ "parameter :code:`server_side_noising`, which, as "
#~ "the name suggests, determines where "
#~ "noising is to be performed."
#~ msgstr ""
#~ "La première version de notre solution"
#~ " consistait à définir un décorateur "
#~ "dont le constructeur acceptait, entre "
#~ "autres, une variable à valeur booléenne"
#~ " indiquant si l'écrêtage adaptatif devait"
#~ " être activé ou non. Nous nous "
#~ "sommes rapidement rendu compte que cela"
#~ " encombrerait sa fonction :code:`__init__()` "
#~ "avec des variables correspondant aux "
#~ "hyperparamètres de l'écrêtage adaptatif qui"
#~ " resteraient inutilisées lorsque celui-ci"
#~ " était désactivé. Une implémentation plus"
#~ " propre pourrait être obtenue en "
#~ "divisant la fonctionnalité en deux "
#~ "décorateurs, :code:`DPFedAvgFixed` et "
#~ ":code:`DPFedAvgAdaptive`, le second sous-"
#~ "classant le premier. Les constructeurs "
#~ "des deux classes acceptent un paramètre"
#~ " booléen :code:`server_side_noising` qui, comme"
#~ " son nom l'indique, détermine l'endroit "
#~ "où le noising doit être effectué."

#~ msgid ""
#~ "The server-side capabilities required "
#~ "for the original version of DP-"
#~ "FedAvg, i.e., the one which performed"
#~ " fixed clipping, can be completely "
#~ "captured with the help of wrapper "
#~ "logic for just the following two "
#~ "methods of the :code:`Strategy` abstract "
#~ "class."
#~ msgstr ""
#~ "Les capacités côté serveur requises pour"
#~ " la version originale de DP-FedAvg,"
#~ " c'est-à-dire celle qui effectue un "
#~ "écrêtage fixe, peuvent être entièrement "
#~ "capturées à l'aide d'une logique "
#~ "d'enveloppement pour les deux méthodes "
#~ "suivantes de la classe abstraite "
#~ ":code:`Strategy`."

#~ msgid ""
#~ ":code:`configure_fit()` : The config "
#~ "dictionary being sent by the wrapped "
#~ ":code:`Strategy` to each client needs to"
#~ " be augmented with an additional "
#~ "value equal to the clipping threshold"
#~ " (keyed under :code:`dpfedavg_clip_norm`) and,"
#~ " if :code:`server_side_noising=true`, another one"
#~ " equal to the scale of the "
#~ "Gaussian noise that needs to be "
#~ "added at the client (keyed under "
#~ ":code:`dpfedavg_noise_stddev`). This entails "
#~ "*post*-processing of the results returned "
#~ "by the wrappee's implementation of "
#~ ":code:`configure_fit()`."
#~ msgstr ""
#~ ":code:`configure_fit()` : Le dictionnaire de"
#~ " configuration envoyé par la "
#~ ":code:`Strategy` enveloppée à chaque client"
#~ " doit être augmenté d'une valeur "
#~ "supplémentaire égale au seuil d'écrêtage "
#~ "(indiqué sous :code:`dpfedavg_clip_norm`) et, "
#~ "si :code:`server_side_noising=true`, d'une autre "
#~ "égale à l'échelle du bruit gaussien "
#~ "qui doit être ajouté au client "
#~ "(indiqué sous :code:`dpfedavg_noise_stddev`)."

#~ msgid ""
#~ ":code:`aggregate_fit()`: We check whether any"
#~ " of the sampled clients dropped out"
#~ " or failed to upload an update "
#~ "before the round timed out. In "
#~ "that case, we need to abort the"
#~ " current round, discarding any successful"
#~ " updates that were received, and move"
#~ " on to the next one. On the "
#~ "other hand, if all clients responded "
#~ "successfully, we must force the "
#~ "averaging of the updates to happen "
#~ "in an unweighted manner by intercepting"
#~ " the :code:`parameters` field of "
#~ ":code:`FitRes` for each received update "
#~ "and setting it to 1. Furthermore, "
#~ "if :code:`server_side_noising=true`, each update "
#~ "is perturbed with an amount of "
#~ "noise equal to what it would have"
#~ " been subjected to had client-side"
#~ " noising being enabled. This entails "
#~ "*pre*-processing of the arguments to "
#~ "this method before passing them on "
#~ "to the wrappee's implementation of "
#~ ":code:`aggregate_fit()`."
#~ msgstr ""
#~ ":code:`aggregate_fit()`: We check whether any"
#~ " of the sampled clients dropped out"
#~ " or failed to upload an update "
#~ "before the round timed out. In "
#~ "that case, we need to abort the"
#~ " current round, discarding any successful"
#~ " updates that were received, and move"
#~ " on to the next one. On the "
#~ "other hand, if all clients responded "
#~ "successfully, we must force the "
#~ "averaging of the updates to happen "
#~ "in an unweighted manner by intercepting"
#~ " the :code:`parameters` field of "
#~ ":code:`FitRes` for each received update "
#~ "and setting it to 1. Furthermore, "
#~ "if :code:`server_side_noising=true`, each update "
#~ "is perturbed with an amount of "
#~ "noise equal to what it would have"
#~ " been subjected to had client-side"
#~ " noising being enabled. This entails "
#~ "*pre*-processing of the arguments to "
#~ "this method before passing them on "
#~ "to the wrappee's implementation of "
#~ ":code:`aggregate_fit()`."

#~ msgid ""
#~ "We can't directly change the aggregation"
#~ " function of the wrapped strategy to"
#~ " force it to add noise to the"
#~ " aggregate, hence we simulate client-"
#~ "side noising to implement server-side"
#~ " noising."
#~ msgstr ""
#~ "Nous ne pouvons pas modifier directement"
#~ " la fonction d'agrégation de la "
#~ "stratégie enveloppée pour la forcer à"
#~ " ajouter du bruit à l'agrégat, c'est"
#~ " pourquoi nous simulons le bruit côté"
#~ " client pour mettre en œuvre le "
#~ "bruit côté serveur."

#~ msgid ""
#~ "These changes have been put together "
#~ "into a class called :code:`DPFedAvgFixed`, "
#~ "whose constructor accepts the strategy "
#~ "being decorated, the clipping threshold "
#~ "and the number of clients sampled "
#~ "every round as compulsory arguments. The"
#~ " user is expected to specify the "
#~ "clipping threshold since the order of"
#~ " magnitude of the update norms is "
#~ "highly dependent on the model being "
#~ "trained and providing a default value"
#~ " would be misleading. The number of"
#~ " clients sampled at every round is"
#~ " required to calculate the amount of"
#~ " noise that must be added to "
#~ "each individual update, either by the"
#~ " server or the clients."
#~ msgstr ""
#~ "Ces modifications ont été regroupées "
#~ "dans une classe appelée :code:`DPFedAvgFixed`,"
#~ " dont le constructeur accepte la "
#~ "stratégie décorée, le seuil d'écrêtage "
#~ "et le nombre de clients échantillonnés"
#~ " à chaque tour comme arguments "
#~ "obligatoires. L'utilisateur est censé "
#~ "spécifier le seuil d'écrêtage car "
#~ "l'ordre de grandeur des normes de "
#~ "mise à jour dépend fortement du "
#~ "modèle formé et fournir une valeur "
#~ "par défaut serait trompeur. Le nombre"
#~ " de clients échantillonnés à chaque "
#~ "tour est nécessaire pour calculer la "
#~ "quantité de bruit qui doit être "
#~ "ajoutée à chaque mise à jour "
#~ "individuelle, que ce soit par le "
#~ "serveur ou par les clients."

#~ msgid ""
#~ "The additional functionality required to "
#~ "facilitate adaptive clipping has been "
#~ "provided in :code:`DPFedAvgAdaptive`, a "
#~ "subclass of :code:`DPFedAvgFixed`. It "
#~ "overrides the above-mentioned methods to"
#~ " do the following."
#~ msgstr ""
#~ "La fonctionnalité supplémentaire nécessaire "
#~ "pour faciliter l'écrêtage adaptatif a "
#~ "été fournie dans :code:`DPFedAvgAdaptive`, une"
#~ " sous-classe de :code:`DPFedAvgFixed`. Elle"
#~ " remplace les méthodes mentionnées ci-"
#~ "dessus pour effectuer les opérations "
#~ "suivantes."

#~ msgid ""
#~ ":code:`configure_fit()` : It intercepts the"
#~ " config dict returned by "
#~ ":code:`super.configure_fit()` to add the "
#~ "key-value pair "
#~ ":code:`dpfedavg_adaptive_clip_enabled:True` to it, "
#~ "which the client interprets as an "
#~ "instruction to include an indicator bit"
#~ " (1 if update norm <= clipping "
#~ "threshold, 0 otherwise) in the results"
#~ " returned by it."
#~ msgstr ""
#~ ":code:`configure_fit()` : Il intercepte le "
#~ "dict de configuration renvoyé par "
#~ ":code:`super.configure_fit()` pour y ajouter "
#~ "la paire clé-valeur "
#~ ":code:`dpfedavg_adaptive_clip_enabled:True`, que le "
#~ "client interprète comme une instruction "
#~ "d'inclure un bit indicateur (1 si "
#~ "la norme de mise à jour <= "
#~ "seuil d'écrêtage, 0 sinon) dans les "
#~ "résultats qu'il renvoie."

#~ msgid ""
#~ ":code:`aggregate_fit()` : It follows a "
#~ "call to :code:`super.aggregate_fit()` with one"
#~ " to :code:`__update_clip_norm__()`, a procedure"
#~ " which adjusts the clipping threshold "
#~ "on the basis of the indicator bits"
#~ " received from the sampled clients."
#~ msgstr ""
#~ ":code:`aggregate_fit()` : Il fait suivre "
#~ "un appel à :code:`super.aggregate_fit()` d'un"
#~ " appel à :code:`__update_clip_norm__()`, une "
#~ "procédure qui ajuste le seuil d'écrêtage"
#~ " sur la base des bits indicateurs "
#~ "reçus des clients échantillonnés."

#~ msgid ""
#~ "The client-side capabilities required "
#~ "can be completely captured through "
#~ "wrapper logic for just the :code:`fit()`"
#~ " method of the :code:`NumPyClient` abstract"
#~ " class. To be precise, we need "
#~ "to *post-process* the update computed"
#~ " by the wrapped client to clip "
#~ "it, if necessary, to the threshold "
#~ "value supplied by the server as "
#~ "part of the config dictionary. In "
#~ "addition to this, it may need to"
#~ " perform some extra work if either"
#~ " (or both) of the following keys "
#~ "are also present in the dict."
#~ msgstr ""
#~ "Les capacités requises côté client "
#~ "peuvent être entièrement capturées par "
#~ "une logique de wrapper pour la "
#~ "seule méthode :code:`fit()` de la classe"
#~ " abstraite :code:`NumPyClient`. Pour être "
#~ "précis, nous devons *post-traiter* la"
#~ " mise à jour calculée par le "
#~ "client wrapped pour l'écrêter, si "
#~ "nécessaire, à la valeur seuil fournie"
#~ " par le serveur dans le cadre "
#~ "du dictionnaire de configuration. En "
#~ "plus de cela, il peut avoir besoin"
#~ " d'effectuer un travail supplémentaire si"
#~ " l'une des clés suivantes (ou les "
#~ "deux) est également présente dans le "
#~ "dict."

#~ msgid ""
#~ ":code:`dpfedavg_noise_stddev` : Generate and "
#~ "add the specified amount of noise "
#~ "to the clipped update."
#~ msgstr ""
#~ ":code:`dpfedavg_noise_stddev` : Génère et "
#~ "ajoute la quantité de bruit spécifiée"
#~ " à la mise à jour de "
#~ "l'écrêtage."

#~ msgid ""
#~ ":code:`dpfedavg_adaptive_clip_enabled` : Augment the"
#~ " metrics dict in the :code:`FitRes` "
#~ "object being returned to the server "
#~ "with an indicator bit, calculated as "
#~ "described earlier."
#~ msgstr ""
#~ ":code:`dpfedavg_adaptive_clip_enabled` : Complète "
#~ "les métriques dict dans l'objet "
#~ ":code:`FitRes` renvoyé au serveur avec "
#~ "un bit indicateur, calculé comme décrit"
#~ " précédemment."

#~ msgid "Performing the :math:`(\\epsilon, \\delta)` analysis"
#~ msgstr "Effectuer l'analyse :math:`(\\epsilon, \\delta)`"

#~ msgid ""
#~ "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."
#~ msgstr ""
#~ "Supposons que tu te sois entraîné "
#~ "pendant :math:`n` tours avec la fraction"
#~ " d'échantillonnage :math:`q` et le "
#~ "multiplicateur de bruit :math:`z`. Afin "
#~ "de calculer la valeur :math:`epsilon` "
#~ "qui en résulterait pour un "
#~ ":math:`\\delta` particulier, le script suivant"
#~ " peut être utilisé."

#~ msgid ""
#~ "`How to run Flower using Docker "
#~ "<https://flower.ai/docs/framework/how-to-run-"
#~ "flower-using-docker.html>`_"
#~ msgstr ""

#~ msgid "Enjoy building more robust and flexible ``ClientApp``s with mods!"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`ClientApp <flwr.client.ClientApp>`\\ "
#~ "\\(client\\_fn\\[\\, mods\\]\\)"
#~ msgstr ""

#~ msgid ":py:obj:`flwr.server.driver <flwr.server.driver>`\\"
#~ msgstr ""

#~ msgid "Flower driver SDK."
#~ msgstr "Serveur de Flower"

#~ msgid "driver"
#~ msgstr "serveur"

#~ msgid ""
#~ ":py:obj:`start_driver <flwr.server.driver.start_driver>`\\ "
#~ "\\(\\*\\[\\, server\\_address\\, server\\, ...\\]\\)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`Driver <flwr.server.driver.Driver>`\\ "
#~ "\\(\\[driver\\_service\\_address\\, ...\\]\\)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`GrpcDriver <flwr.server.driver.GrpcDriver>`\\ "
#~ "\\(\\[driver\\_service\\_address\\, ...\\]\\)"
#~ msgstr ""

#~ msgid "`GrpcDriver` provides access to the gRPC Driver API/service."
#~ msgstr ""

#~ msgid ":py:obj:`get_nodes <flwr.server.driver.Driver.get_nodes>`\\ \\(\\)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`pull_task_res "
#~ "<flwr.server.driver.Driver.pull_task_res>`\\ \\(task\\_ids\\)"
#~ msgstr ""

#~ msgid "Get task results."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`push_task_ins "
#~ "<flwr.server.driver.Driver.push_task_ins>`\\ "
#~ "\\(task\\_ins\\_list\\)"
#~ msgstr ""

#~ msgid "Schedule tasks."
#~ msgstr ""

#~ msgid "GrpcDriver"
#~ msgstr ""

#~ msgid ":py:obj:`connect <flwr.server.driver.GrpcDriver.connect>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Connect to the Driver API."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`create_run "
#~ "<flwr.server.driver.GrpcDriver.create_run>`\\ \\(req\\)"
#~ msgstr ""

#~ msgid "Request for run ID."
#~ msgstr "Demande pour une nouvelle Flower Baseline"

#~ msgid ""
#~ ":py:obj:`disconnect "
#~ "<flwr.server.driver.GrpcDriver.disconnect>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Disconnect from the Driver API."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`get_nodes <flwr.server.driver.GrpcDriver.get_nodes>`\\"
#~ " \\(req\\)"
#~ msgstr ""

#~ msgid "Get client IDs."
#~ msgstr "Moteur client Edge"

#~ msgid ""
#~ ":py:obj:`pull_task_res "
#~ "<flwr.server.driver.GrpcDriver.pull_task_res>`\\ \\(req\\)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`push_task_ins "
#~ "<flwr.server.driver.GrpcDriver.push_task_ins>`\\ \\(req\\)"
#~ msgstr ""

#~ msgid ""
#~ "Optionally specify the type of actor "
#~ "to use. The actor object, which "
#~ "persists throughout the simulation, will "
#~ "be the process in charge of "
#~ "running the clients' jobs (i.e. their"
#~ " `fit()` method)."
#~ msgstr ""

#~ msgid ""
#~ "Much effort went into a completely "
#~ "restructured Flower docs experience. The "
#~ "documentation on [flower.ai/docs](flower.ai/docs) is"
#~ " now divided into Flower Framework, "
#~ "Flower Baselines, Flower Android SDK, "
#~ "Flower iOS SDK, and code example "
#~ "projects."
#~ msgstr ""

#~ msgid ""
#~ "Flower usage examples used to be "
#~ "bundled with Flower in a package "
#~ "called ``flwr_example``. We are migrating "
#~ "those examples to standalone projects to"
#~ " make them easier to use. All "
#~ "new examples are based in the "
#~ "directory `examples "
#~ "<https://github.com/adap/flower/tree/main/examples>`_."
#~ msgstr ""
#~ "Les exemples d'utilisation de Flower "
#~ "étaient auparavant regroupés avec Flower "
#~ "dans un paquet appelé ``flwr_example``. "
#~ "Nous migrons ces exemples vers des "
#~ "projets autonomes pour les rendre plus"
#~ " faciles à utiliser. Tous les "
#~ "nouveaux exemples sont basés dans le "
#~ "répertoire ``examples "
#~ "<https://github.com/adap/flower/tree/main/examples>`_."

#~ msgid "Quickstart TensorFlow/Keras"
#~ msgstr "Démarrage rapide de TensorFlow/Keras"

#~ msgid "Legacy Examples (`flwr_example`)"
#~ msgstr "Exemples hérités (`flwr_example`)"

#~ msgid ""
#~ "The useage examples in `flwr_example` "
#~ "are deprecated and will be removed "
#~ "in the future. New examples are "
#~ "provided as standalone projects in "
#~ "`examples <https://github.com/adap/flower/tree/main/examples>`_."
#~ msgstr ""
#~ "Les exemples d'utilisation dans `flwr_example`"
#~ " sont obsolètes et seront supprimés à"
#~ " l'avenir. De nouveaux exemples sont "
#~ "fournis en tant que projets autonomes"
#~ " dans `examples "
#~ "<https://github.com/adap/flower/tree/main/examples>`_."

#~ msgid "Extra Dependencies"
#~ msgstr "Dépendances supplémentaires"

#~ msgid ""
#~ "The core Flower framework keeps a "
#~ "minimal set of dependencies. The "
#~ "examples demonstrate Flower in the "
#~ "context of different machine learning "
#~ "frameworks, so additional dependencies need"
#~ " to be installed before an example"
#~ " can be run."
#~ msgstr ""
#~ "Le noyau du framework Flower conserve"
#~ " un ensemble minimal de dépendances. "
#~ "Les exemples démontrent Flower dans le"
#~ " contexte de différents frameworks "
#~ "d'apprentissage automatique, de sorte que "
#~ "des dépendances supplémentaires doivent être"
#~ " installées avant qu'un exemple puisse "
#~ "être exécuté."

#~ msgid "For PyTorch examples::"
#~ msgstr "Pour les exemples de PyTorch: :"

#~ msgid "For TensorFlow examples::"
#~ msgstr "Pour les exemples de TensorFlow : :"

#~ msgid "For both PyTorch and TensorFlow examples::"
#~ msgstr "Pour les exemples PyTorch et TensorFlow: :"

#~ msgid ""
#~ "Please consult :code:`pyproject.toml` for a"
#~ " full list of possible extras "
#~ "(section :code:`[tool.poetry.extras]`)."
#~ msgstr ""
#~ "Tu peux consulter :code:`pyproject.toml` pour"
#~ " une liste complète des extras "
#~ "possibles (section :code:`[tool.poetry.extras]`)."

#~ msgid "PyTorch Examples"
#~ msgstr "Exemples de PyTorch"

#~ msgid ""
#~ "Our PyTorch examples are based on "
#~ "PyTorch 1.7. They should work with "
#~ "other releases as well. So far, we"
#~ " provide the following examples."
#~ msgstr ""
#~ "Nos exemples PyTorch sont basés sur "
#~ "PyTorch 1.7. Ils devraient fonctionner "
#~ "avec d'autres versions également. Jusqu'à "
#~ "présent, nous fournissons les exemples "
#~ "suivants."

#~ msgid "CIFAR-10 Image Classification"
#~ msgstr "Classification d'images CIFAR-10"

#~ msgid ""
#~ "`CIFAR-10 and CIFAR-100 "
#~ "<https://www.cs.toronto.edu/~kriz/cifar.html>`_ are "
#~ "popular RGB image datasets. The Flower"
#~ " CIFAR-10 example uses PyTorch to "
#~ "train a simple CNN classifier in a"
#~ " federated learning setup with two "
#~ "clients."
#~ msgstr ""
#~ "`CIFAR-10 et CIFAR-100 "
#~ "<https://www.cs.toronto.edu/~kriz/cifar.html>`_ sont des"
#~ " ensembles de données d'images RVB "
#~ "populaires. L'exemple Flower CIFAR-10 utilise"
#~ " PyTorch pour former un classificateur "
#~ "CNN simple dans une configuration "
#~ "d'apprentissage fédéré avec deux clients."

#~ msgid "First, start a Flower server:"
#~ msgstr "Tout d'abord, démarre un serveur Flower :"

#~ msgid "$ ./src/py/flwr_example/pytorch_cifar/run-server.sh"
#~ msgstr "$ ./src/py/flwr_example/pytorch_cifar/run-server.sh"

#~ msgid "Then, start the two clients in a new terminal window:"
#~ msgstr ""
#~ "Ensuite, démarre les deux clients dans"
#~ " une nouvelle fenêtre de terminal :"

#~ msgid "$ ./src/py/flwr_example/pytorch_cifar/run-clients.sh"
#~ msgstr "$ ./src/py/flwr_example/pytorch_cifar/run-clients.sh"

#~ msgid "For more details, see :code:`src/py/flwr_example/pytorch_cifar`."
#~ msgstr "Pour plus de détails, voir :code:`src/py/flwr_example/pytorch_cifar`."

#~ msgid "ImageNet-2012 Image Classification"
#~ msgstr "ImageNet-2012 Classification des images"

#~ msgid ""
#~ "`ImageNet-2012 <http://www.image-net.org/>`_ is "
#~ "one of the major computer vision "
#~ "datasets. The Flower ImageNet example "
#~ "uses PyTorch to train a ResNet-18 "
#~ "classifier in a federated learning setup"
#~ " with ten clients."
#~ msgstr ""
#~ "`ImageNet-2012 <http://www.image-net.org/>`_ est "
#~ "l'un des principaux ensembles de données"
#~ " de vision par ordinateur. L'exemple "
#~ "Flower ImageNet utilise PyTorch pour "
#~ "entraîner un classificateur ResNet-18 dans "
#~ "une configuration d'apprentissage fédéré avec"
#~ " dix clients."

#~ msgid "$ ./src/py/flwr_example/pytorch_imagenet/run-server.sh"
#~ msgstr "$ ./src/py/flwr_example/pytorch_imagenet/run-server.sh"

#~ msgid "$ ./src/py/flwr_example/pytorch_imagenet/run-clients.sh"
#~ msgstr "$ ./src/py/flwr_example/pytorch_imagenet/run-clients.sh"

#~ msgid "For more details, see :code:`src/py/flwr_example/pytorch_imagenet`."
#~ msgstr ""
#~ "Pour plus de détails, voir "
#~ ":code:`src/py/flwr_example/pytorch_imagenet`."

#~ msgid "TensorFlow Examples"
#~ msgstr "Exemples de TensorFlow"

#~ msgid ""
#~ "Our TensorFlow examples are based on "
#~ "TensorFlow 2.0 or newer. So far, "
#~ "we provide the following examples."
#~ msgstr ""
#~ "Nos exemples TensorFlow sont basés sur"
#~ " TensorFlow 2.0 ou une version plus"
#~ " récente. Jusqu'à présent, nous te "
#~ "proposons les exemples suivants."

#~ msgid "Fashion-MNIST Image Classification"
#~ msgstr "Classification d'images Fashion-MNIST"

#~ msgid ""
#~ "`Fashion-MNIST <https://github.com/zalandoresearch"
#~ "/fashion-mnist>`_ is often used as "
#~ "the \"Hello, world!\" of machine "
#~ "learning. We follow this tradition and"
#~ " provide an example which samples "
#~ "random local datasets from Fashion-MNIST"
#~ " and trains a simple image "
#~ "classification model over those partitions."
#~ msgstr ""
#~ "nous suivons cette tradition et "
#~ "fournissons un exemple qui échantillonne "
#~ "des ensembles de données locales "
#~ "aléatoires de Fashion-MNIST et entraîne"
#~ " un modèle simple de classification "
#~ "d'images sur ces partitions."

#~ msgid "$ ./src/py/flwr_example/tensorflow_fashion_mnist/run-server.sh"
#~ msgstr "$ ./src/py/flwr_example/tensorflow_fashion_mnist/run-server.sh"

#~ msgid "$ ./src/py/flwr_example/tensorflow_fashion_mnist/run-clients.sh"
#~ msgstr "$ ./src/py/flwr_example/tensorflow_fashion_mnist/run-clients.sh"

#~ msgid ""
#~ "For more details, see "
#~ ":code:`src/py/flwr_example/tensorflow_fashion_mnist`."
#~ msgstr ""
#~ "Pour plus de détails, voir "
#~ ":code:`src/py/flwr_example/tensorflow_fashion_mnist`."

#~ msgid ""
#~ "MXNet is no longer maintained and "
#~ "has been moved into `Attic "
#~ "<https://attic.apache.org/projects/mxnet.html>`_. As a "
#~ "result, we would encourage you to "
#~ "use other ML frameworks alongise Flower,"
#~ " for example, PyTorch. This tutorial "
#~ "might be removed in future versions "
#~ "of Flower."
#~ msgstr ""

#~ msgid ""
#~ "Now that you have known how "
#~ "federated XGBoost work with Flower, it's"
#~ " time to run some more comprehensive"
#~ " experiments by customising the "
#~ "experimental settings. In the xgboost-"
#~ "comprehensive example (`full code "
#~ "<https://github.com/adap/flower/tree/main/examples/xgboost-"
#~ "comprehensive>`_), we provide more options "
#~ "to define various experimental setups, "
#~ "including aggregation strategies, data "
#~ "partitioning and centralised/distributed evaluation."
#~ " We also support `Flower simulation "
#~ "<https://flower.ai/docs/framework/how-to-run-"
#~ "simulations.html>`_ making it easy to "
#~ "simulate large client cohorts in a "
#~ "resource-aware manner. Let's take a "
#~ "look!"
#~ msgstr ""

#~ msgid "|31e4b1afa87c4b968327bbeafbf184d4|"
#~ msgstr ""

#~ msgid "|c9d935b4284e4c389a33d86b33e07c0a|"
#~ msgstr ""

#~ msgid "|00727b5faffb468f84dd1b03ded88638|"
#~ msgstr ""

#~ msgid "|daf0cf0ff4c24fd29439af78416cf47b|"
#~ msgstr ""

#~ msgid "|9f093007080d471d94ca90d3e9fde9b6|"
#~ msgstr ""

#~ msgid "|46a26e6150e0479fbd3dfd655f36eb13|"
#~ msgstr ""

#~ msgid "|3daba297595c4c7fb845d90404a6179a|"
#~ msgstr ""

#~ msgid "|5769874fa9c4455b80b2efda850d39d7|"
#~ msgstr ""

#~ msgid "|ba47ffb421814b0f8f9fa5719093d839|"
#~ msgstr ""

#~ msgid "|aeac5bf79cbf497082e979834717e01b|"
#~ msgstr ""

#~ msgid "|ce27ed4bbe95459dba016afc42486ba2|"
#~ msgstr ""

#~ msgid "|ae94a7f71dda443cbec2385751427d41|"
#~ msgstr ""

#~ msgid "|e61fce4d43d243e7bb08bdde97d81ce6|"
#~ msgstr ""

#~ msgid "|08cb60859b07461588fe44e55810b050|"
#~ msgstr ""

#~ msgid ""
#~ "Flower provides pre-made docker images"
#~ " on `Docker Hub "
#~ "<https://hub.docker.com/r/flwr/server/tags>`_ that include"
#~ " all necessary dependencies for running "
#~ "the server. You can also build "
#~ "your own custom docker images from "
#~ "scratch with a different version of "
#~ "Python or Ubuntu if that is what"
#~ " you need. In this guide, we "
#~ "will explain what images exist and "
#~ "how to build them locally."
#~ msgstr ""

#~ msgid ""
#~ "Currently, Flower provides two images, a"
#~ " base image and a server image. "
#~ "There will also be a client image"
#~ " soon. The base image, as the "
#~ "name suggests, contains basic dependencies "
#~ "that both the server and the "
#~ "client need. This includes system "
#~ "dependencies, Python and Python tools. "
#~ "The server image is based on the"
#~ " base image, but it additionally "
#~ "installs the Flower server using "
#~ "``pip``."
#~ msgstr ""

#~ msgid ""
#~ "Both, base and server image are "
#~ "configured via build arguments. Through "
#~ "build arguments, we can make our "
#~ "build more flexible. For example, in "
#~ "the base image, we can specify the"
#~ " version of Python to install using"
#~ " the ``PYTHON_VERSION`` build argument. "
#~ "Some of the build arguments have "
#~ "default values, others must be specified"
#~ " when building the image. All "
#~ "available build arguments for each image"
#~ " are listed in one of the "
#~ "tables below."
#~ msgstr ""

#~ msgid "Defaults to ``flwr/server``."
#~ msgstr ""

#~ msgid "``BASE_IMAGE_TAG``"
#~ msgstr ""

#~ msgid "The image tag of the base image."
#~ msgstr ""

#~ msgid "Defaults to ``py3.11-ubuntu22.04``."
#~ msgstr ""

#~ msgid ""
#~ "The following example creates a server"
#~ " image with the official Flower base"
#~ " image py3.11-ubuntu22.04 and Flower 1.7.0:"
#~ msgstr ""

#~ msgid ""
#~ "The name of image is ``flwr_server`` "
#~ "and the tag ``0.1.0``. Remember that "
#~ "the build arguments as well as the"
#~ " name and tag can be adapted to"
#~ " your needs. These values serve as"
#~ " examples only."
#~ msgstr ""

#~ msgid ""
#~ "If you want to use your own "
#~ "base image instead of the official "
#~ "Flower base image, all you need to"
#~ " do is set the ``BASE_REPOSITORY`` "
#~ "and ``BASE_IMAGE_TAG`` build arguments. The"
#~ " value of ``BASE_REPOSITORY`` must match"
#~ " the name of your image and the"
#~ " value of ``BASE_IMAGE_TAG`` must match "
#~ "the tag of your image."
#~ msgstr ""

#~ msgid ""
#~ "It is important to follow the "
#~ "instructions described in comments. For "
#~ "instance, in order to not break "
#~ "how our changelog system works, you "
#~ "should read the information above the"
#~ " ``Changelog entry`` section carefully. You"
#~ " can also checkout some examples and"
#~ " details in the :ref:`changelogentry` "
#~ "appendix."
#~ msgstr ""

#~ msgid "Open a PR (as shown above)"
#~ msgstr "Ouvre un RP (comme indiqué ci-dessus)"

#~ msgid ""
#~ "Add CI job to deploy the staging"
#~ " system when the ``main`` branch "
#~ "changes"
#~ msgstr "Add CI job to deploy the staging system when the `main` branch changes"

#~ msgid "Changelog entry"
#~ msgstr "Changelog"

#~ msgid ""
#~ "When opening a new PR, inside its"
#~ " description, there should be a "
#~ "``Changelog entry`` header."
#~ msgstr ""

#~ msgid ""
#~ "Above this header you should see "
#~ "the following comment that explains how"
#~ " to write your changelog entry:"
#~ msgstr ""

#~ msgid ""
#~ "Inside the following 'Changelog entry' "
#~ "section, you should put the description"
#~ " of your changes that will be "
#~ "added to the changelog alongside your"
#~ " PR title."
#~ msgstr ""

#~ msgid ""
#~ "If the section is completely empty "
#~ "(without any token) or non-existent, "
#~ "the changelog will just contain the "
#~ "title of the PR for the changelog"
#~ " entry, without any description."
#~ msgstr ""

#~ msgid ""
#~ "If the section contains some text "
#~ "other than tokens, it will use it"
#~ " to add a description to the "
#~ "change."
#~ msgstr ""

#~ msgid ""
#~ "If the section contains one of the"
#~ " following tokens it will ignore any"
#~ " other text and put the PR "
#~ "under the corresponding section of the"
#~ " changelog:"
#~ msgstr ""

#~ msgid "<general> is for classifying a PR as a general improvement."
#~ msgstr ""

#~ msgid "<skip> is to not add the PR to the changelog"
#~ msgstr ""

#~ msgid "<baselines> is to add a general baselines change to the PR"
#~ msgstr ""

#~ msgid "<examples> is to add a general examples change to the PR"
#~ msgstr ""

#~ msgid "<sdk> is to add a general sdk change to the PR"
#~ msgstr ""

#~ msgid "<simulations> is to add a general simulations change to the PR"
#~ msgstr ""

#~ msgid "Note that only one token should be used."
#~ msgstr ""

#~ msgid ""
#~ "Its content must have a specific "
#~ "format. We will break down what "
#~ "each possibility does:"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains nothing or doesn't exist, "
#~ "the following text will be added "
#~ "to the changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains a description (and no "
#~ "token), the following text will be "
#~ "added to the changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<skip>``, nothing will change"
#~ " in the changelog."
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<general>``, the following text"
#~ " will be added to the changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<baselines>``, the following "
#~ "text will be added to the "
#~ "changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<examples>``, the following "
#~ "text will be added to the "
#~ "changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<sdk>``, the following text "
#~ "will be added to the changelog::"
#~ msgstr ""

#~ msgid ""
#~ "If the ``### Changelog entry`` section"
#~ " contains ``<simulations>``, the following "
#~ "text will be added to the "
#~ "changelog::"
#~ msgstr ""

#~ msgid ""
#~ "Note that only one token must be"
#~ " provided, otherwise, only the first "
#~ "action (in the order listed above), "
#~ "will be performed."
#~ msgstr ""

#~ msgid "Example: MXNet - Run MXNet Federated"
#~ msgstr "Exemple : MXNet - Exécuter MXNet Federated"

#~ msgid ""
#~ "This tutorial will show you how to"
#~ " use Flower to build a federated "
#~ "version of an existing MXNet workload."
#~ " We are using MXNet to train a"
#~ " Sequential model on the MNIST "
#~ "dataset. We will structure the example"
#~ " similar to our `PyTorch - From "
#~ "Centralized To Federated "
#~ "<https://github.com/adap/flower/blob/main/examples/pytorch-"
#~ "from-centralized-to-federated>`_ walkthrough. "
#~ "MXNet and PyTorch are very similar "
#~ "and a very good comparison between "
#~ "MXNet and PyTorch is given `here "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials"
#~ "/getting-started/to-mxnet/pytorch.html>`_. First, "
#~ "we build a centralized training approach"
#~ " based on the `Handwritten Digit "
#~ "Recognition "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials/packages/gluon/image/mnist.html>`_"
#~ " tutorial. Then, we build upon the"
#~ " centralized training code to run the"
#~ " training in a federated fashion."
#~ msgstr ""
#~ "Ce tutoriel te montrera comment utiliser"
#~ " Flower pour construire une version "
#~ "fédérée d'une charge de travail MXNet"
#~ " existante. Nous utilisons MXNet pour "
#~ "former un modèle séquentiel sur "
#~ "l'ensemble de données MNIST. Nous "
#~ "structurerons l'exemple de la même "
#~ "manière que notre présentation `PyTorch "
#~ "- De la centralisation à la "
#~ "fédération <https://github.com/adap/flower/blob/main/examples"
#~ "/pytorch-from-centralized-to-federated>`_. "
#~ "MXNet et PyTorch sont très similaires"
#~ " et une très bonne comparaison entre"
#~ " MXNet et PyTorch est donnée ici "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials"
#~ "/getting-started/to-mxnet/pytorch.html>`_. Tout "
#~ "d'abord, nous construisons une approche "
#~ "de formation centralisée basée sur le"
#~ " tutoriel `Handandwritten Digit Recognition "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials/packages/gluon/image/mnist.html>`_."
#~ " Ensuite, nous nous basons sur le "
#~ "code de formation centralisé pour "
#~ "exécuter la formation de manière "
#~ "fédérée."

#~ msgid ""
#~ "Before we start setting up our "
#~ "MXNet example, we install the "
#~ ":code:`mxnet` and :code:`flwr` packages:"
#~ msgstr ""
#~ "Avant de commencer à configurer notre"
#~ " exemple MXNet, nous installons les "
#~ "paquets :code:`mxnet` et :code:`flwr` :"

#~ msgid "MNIST Training with MXNet"
#~ msgstr "Formation MNIST avec MXNet"

#~ msgid ""
#~ "We begin with a brief description "
#~ "of the centralized training code based"
#~ " on a :code:`Sequential` model. If "
#~ "you want a more in-depth "
#~ "explanation of what's going on then "
#~ "have a look at the official `MXNet"
#~ " tutorial "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials/>`_."
#~ msgstr ""
#~ "Nous commençons par une brève "
#~ "description du code d'entraînement centralisé"
#~ " basé sur un modèle :code:`Sequential`. "
#~ "Si tu veux une explication plus "
#~ "approfondie de ce qui se passe, "
#~ "jette un coup d'œil au tutoriel "
#~ "officiel `MXNet "
#~ "<https://mxnet.apache.org/versions/1.7.0/api/python/docs/tutorials/>`_."

#~ msgid ""
#~ "Let's create a new file "
#~ "called:code:`mxnet_mnist.py` with all the "
#~ "components required for a traditional "
#~ "(centralized) MNIST training. First, the "
#~ "MXNet package :code:`mxnet` needs to be"
#~ " imported. You can see that we "
#~ "do not yet import the :code:`flwr` "
#~ "package for federated learning. This "
#~ "will be done later."
#~ msgstr ""
#~ "Créons un nouveau fichier appelé "
#~ ":code:`mxnet_mnist.py` avec tous les "
#~ "composants requis pour un apprentissage "
#~ "MNIST traditionnel (centralisé). Tout d'abord,"
#~ " le package MXNet :code:`mxnet` doit "
#~ "être importé. Tu peux voir que "
#~ "nous n'avons pas encore importé le "
#~ "package :code:`flwr` pour l'apprentissage "
#~ "fédéré. Cela sera fait plus tard."

#~ msgid ""
#~ "The :code:`load_data()` function loads the "
#~ "MNIST training and test sets."
#~ msgstr ""
#~ "La fonction :code:`load_data()` charge les "
#~ "ensembles d'entraînement et de test "
#~ "MNIST."

#~ msgid ""
#~ "As already mentioned, we will use "
#~ "the MNIST dataset for this machine "
#~ "learning workload. The model architecture "
#~ "(a very simple :code:`Sequential` model) "
#~ "is defined in :code:`model()`."
#~ msgstr ""
#~ "Comme nous l'avons déjà mentionné, nous"
#~ " utiliserons l'ensemble de données MNIST"
#~ " pour cette charge de travail "
#~ "d'apprentissage automatique. L'architecture du "
#~ "modèle (un modèle :code:`Séquentiel` très "
#~ "simple) est définie dans :code:`model()`."

#~ msgid ""
#~ "We now need to define the training"
#~ " (function :code:`train()`) which loops "
#~ "over the training set and measures "
#~ "the loss for each batch of "
#~ "training examples."
#~ msgstr ""
#~ "Nous devons maintenant définir la "
#~ "formation (fonction :code:`train()`) qui passe"
#~ " en boucle sur l'ensemble de la "
#~ "formation et mesure la perte pour "
#~ "chaque lot d'exemples de formation."

#~ msgid ""
#~ "The evaluation of the model is "
#~ "defined in function :code:`test()`. The "
#~ "function loops over all test samples "
#~ "and measures the loss and accuracy "
#~ "of the model based on the test "
#~ "dataset."
#~ msgstr ""
#~ "L'évaluation du modèle est définie dans"
#~ " la fonction :code:`test()`. Cette fonction"
#~ " passe en boucle sur tous les "
#~ "échantillons de test et mesure la "
#~ "perte et la précision du modèle en"
#~ " fonction de l'ensemble des données "
#~ "de test."

#~ msgid ""
#~ "Having defined the data loading, model"
#~ " architecture, training, and evaluation we"
#~ " can put everything together and "
#~ "train our model on MNIST. Note "
#~ "that the GPU/CPU device for the "
#~ "training and testing is defined within"
#~ " the :code:`ctx` (context)."
#~ msgstr ""
#~ "Après avoir défini le chargement des "
#~ "données, l'architecture du modèle, "
#~ "l'entraînement et l'évaluation, nous pouvons"
#~ " tout assembler et entraîner notre "
#~ "modèle sur MNIST. Note que le "
#~ "dispositif GPU/CPU pour l'entraînement et "
#~ "le test est défini dans le "
#~ ":code:`ctx` (contexte)."

#~ msgid "You can now run your (centralized) MXNet machine learning workload:"
#~ msgstr ""
#~ "Tu peux maintenant exécuter ta charge"
#~ " de travail (centralisée) d'apprentissage "
#~ "automatique MXNet :"

#~ msgid ""
#~ "So far this should all look fairly"
#~ " familiar if you've used MXNet (or"
#~ " even PyTorch) before. Let's take the"
#~ " next step and use what we've "
#~ "built to create a simple federated "
#~ "learning system consisting of one server"
#~ " and two clients."
#~ msgstr ""
#~ "Jusqu'à présent, tout cela devrait te"
#~ " sembler assez familier si tu as "
#~ "déjà utilisé MXNet (ou même PyTorch)."
#~ " Passons à l'étape suivante et "
#~ "utilisons ce que nous avons construit"
#~ " pour créer un simple système "
#~ "d'apprentissage fédéré composé d'un serveur"
#~ " et de deux clients."

#~ msgid "MXNet meets Flower"
#~ msgstr "MXNet rencontre Flower"

#~ msgid ""
#~ "So far, it was not easily possible"
#~ " to use MXNet workloads for federated"
#~ " learning because federated learning is "
#~ "not supported in MXNet. Since Flower "
#~ "is fully agnostic towards the underlying"
#~ " machine learning framework, it can "
#~ "be used to federated arbitrary machine"
#~ " learning workloads. This section will "
#~ "show you how Flower can be used"
#~ " to federate our centralized MXNet "
#~ "workload."
#~ msgstr ""
#~ "Jusqu'à présent, il n'était pas facile"
#~ " d'utiliser les charges de travail "
#~ "MXNet pour l'apprentissage fédéré car "
#~ "l'apprentissage fédéré n'est pas pris en"
#~ " charge dans MXNet. Comme Flower est"
#~ " totalement agnostique vis-à-vis du cadre"
#~ " d'apprentissage automatique sous-jacent, "
#~ "il peut être utilisé pour fédérer "
#~ "des charges de travail d'apprentissage "
#~ "automatique arbitraires. Cette section te "
#~ "montrera comment Flower peut être "
#~ "utilisé pour fédérer notre charge de "
#~ "travail MXNet centralisée."

#~ msgid ""
#~ "The concept to federate an existing "
#~ "workload is always the same and "
#~ "easy to understand. We have to "
#~ "start a *server* and then use the"
#~ " code in :code:`mxnet_mnist.py` for the "
#~ "*clients* that are connected to the "
#~ "*server*. The *server* sends model "
#~ "parameters to the clients. The *clients*"
#~ " run the training and update the "
#~ "parameters. The updated parameters are "
#~ "sent back to the *server* which "
#~ "averages all received parameter updates. "
#~ "This describes one round of the "
#~ "federated learning process and we repeat"
#~ " this for multiple rounds."
#~ msgstr ""
#~ "Le concept pour fédérer une charge "
#~ "de travail existante est toujours le "
#~ "même et facile à comprendre. Nous "
#~ "devons démarrer un *serveur* et ensuite"
#~ " utiliser le code dans "
#~ ":code:`mxnet_mnist.py` pour les *clients* qui"
#~ " sont connectés au *serveur*. Le "
#~ "*serveur* envoie les paramètres du "
#~ "modèle aux clients. Les *clients* "
#~ "exécutent la formation et mettent à "
#~ "jour les paramètres. Les paramètres mis"
#~ " à jour sont renvoyés au *serveur*"
#~ " qui fait la moyenne de toutes "
#~ "les mises à jour de paramètres "
#~ "reçues. Ceci décrit un tour du "
#~ "processus d'apprentissage fédéré et nous "
#~ "répétons cette opération pour plusieurs "
#~ "tours."

#~ msgid ""
#~ "Finally, we will define our *client* "
#~ "logic in :code:`client.py` and build "
#~ "upon the previously defined MXNet "
#~ "training in :code:`mxnet_mnist.py`. Our "
#~ "*client* needs to import :code:`flwr`, "
#~ "but also :code:`mxnet` to update the "
#~ "parameters on our MXNet model:"
#~ msgstr ""
#~ "Enfin, nous allons définir la logique"
#~ " de notre *client* dans :code:`client.py`"
#~ " et nous appuyer sur l'entraînement "
#~ "MXNet défini précédemment dans "
#~ ":code:`mxnet_mnist.py`. Notre *client* doit "
#~ "importer :code:`flwr`, mais aussi "
#~ ":code:`mxnet` pour mettre à jour les "
#~ "paramètres de notre modèle MXNet :"

#~ msgid ""
#~ "Implementing a Flower *client* basically "
#~ "means implementing a subclass of either"
#~ " :code:`flwr.client.Client` or "
#~ ":code:`flwr.client.NumPyClient`. Our implementation "
#~ "will be based on "
#~ ":code:`flwr.client.NumPyClient` and we'll call "
#~ "it :code:`MNISTClient`. :code:`NumPyClient` is "
#~ "slightly easier to implement than "
#~ ":code:`Client` if you use a framework"
#~ " with good NumPy interoperability (like "
#~ "PyTorch or MXNet) because it avoids "
#~ "some of the boilerplate that would "
#~ "otherwise be necessary. :code:`MNISTClient` "
#~ "needs to implement four methods, two "
#~ "methods for getting/setting model parameters,"
#~ " one method for training the model,"
#~ " and one method for testing the "
#~ "model:"
#~ msgstr ""
#~ "Implementing a Flower *client* basically "
#~ "means implementing a subclass of either"
#~ " :code:`flwr.client.Client` or "
#~ ":code:`flwr.client.NumPyClient`. Our implementation "
#~ "will be based on "
#~ ":code:`flwr.client.NumPyClient` and we'll call "
#~ "it :code:`MNISTClient`. :code:`NumPyClient` is "
#~ "slightly easier to implement than "
#~ ":code:`Client` if you use a framework"
#~ " with good NumPy interoperability (like "
#~ "PyTorch or MXNet) because it avoids "
#~ "some of the boilerplate that would "
#~ "otherwise be necessary. :code:`MNISTClient` "
#~ "needs to implement four methods, two "
#~ "methods for getting/setting model parameters,"
#~ " one method for training the model,"
#~ " and one method for testing the "
#~ "model:"

#~ msgid "transform MXNet :code:`NDArray`'s to NumPy :code:`ndarray`'s"
#~ msgstr "transforme les :code:`NDArray` du MXNet en :code:`ndarray` de NumPy"

#~ msgid ""
#~ "The challenging part is to transform "
#~ "the MXNet parameters from :code:`NDArray` "
#~ "to :code:`NumPy Arrays` to make it "
#~ "readable for Flower."
#~ msgstr ""
#~ "La partie la plus difficile est de"
#~ " transformer les paramètres MXNet de "
#~ ":code:`NDArray` en :code:`NumPy Arrays` pour"
#~ " les rendre lisibles pour Flower."

#~ msgid ""
#~ "The two :code:`NumPyClient` methods "
#~ ":code:`fit` and :code:`evaluate` make use "
#~ "of the functions :code:`train()` and "
#~ ":code:`test()` previously defined in "
#~ ":code:`mxnet_mnist.py`. So what we really "
#~ "do here is we tell Flower through"
#~ " our :code:`NumPyClient` subclass which of"
#~ " our already defined functions to "
#~ "call for training and evaluation. We "
#~ "included type annotations to give you"
#~ " a better understanding of the data"
#~ " types that get passed around."
#~ msgstr ""
#~ "Les deux méthodes :code:`NumPyClient` "
#~ ":code:`fit` et :code:`evaluate` utilisent les"
#~ " fonctions :code:`train()` et :code:`test()` "
#~ "définies précédemment dans :code:`mxnet_mnist.py`."
#~ " Ce que nous faisons vraiment ici,"
#~ " c'est que nous indiquons à Flower,"
#~ " par le biais de notre sous-"
#~ "classe :code:`NumPyClient`, laquelle de nos"
#~ " fonctions déjà définies doit être "
#~ "appelée pour l'entraînement et l'évaluation."
#~ " Nous avons inclus des annotations de"
#~ " type pour te donner une meilleure"
#~ " compréhension des types de données "
#~ "qui sont transmis."

#~ msgid ""
#~ "Having defined data loading, model "
#~ "architecture, training, and evaluation we "
#~ "can put everything together and train"
#~ " our :code:`Sequential` model on MNIST."
#~ msgstr ""
#~ "Après avoir défini le chargement des "
#~ "données, l'architecture du modèle, la "
#~ "formation et l'évaluation, nous pouvons "
#~ "tout rassembler et former notre modèle"
#~ " :code:`Sequential` sur MNIST."

#~ msgid ""
#~ "in each window (make sure that the"
#~ " server is still running before you"
#~ " do so) and see your MXNet "
#~ "project run federated learning across "
#~ "two clients. Congratulations!"
#~ msgstr ""
#~ "dans chaque fenêtre (assure-toi que "
#~ "le serveur est toujours en cours "
#~ "d'exécution avant de le faire) et "
#~ "tu verras ton projet MXNet exécuter "
#~ "l'apprentissage fédéré sur deux clients. "
#~ "Félicitations !"

#~ msgid ""
#~ "The full source code for this "
#~ "example: `MXNet: From Centralized To "
#~ "Federated (Code) "
#~ "<https://github.com/adap/flower/blob/main/examples/mxnet-"
#~ "from-centralized-to-federated>`_. Our "
#~ "example is of course somewhat over-"
#~ "simplified because both clients load the"
#~ " exact same dataset, which isn't "
#~ "realistic. You're now prepared to "
#~ "explore this topic further. How about"
#~ " using a CNN or using a "
#~ "different dataset? How about adding more"
#~ " clients?"
#~ msgstr ""
#~ "Le code source complet de cet "
#~ "exemple : `MXNet : From Centralized "
#~ "To Federated (Code) "
#~ "<https://github.com/adap/flower/blob/main/examples/mxnet-"
#~ "from-centralized-to-federated>`_. Notre "
#~ "exemple est bien sûr un peu trop"
#~ " simplifié parce que les deux clients"
#~ " chargent exactement le même ensemble "
#~ "de données, ce qui n'est pas "
#~ "réaliste. Tu es maintenant prêt à "
#~ "explorer ce sujet plus en profondeur."
#~ " Pourquoi ne pas utiliser un CNN "
#~ "ou un ensemble de données différent "
#~ "? Pourquoi ne pas ajouter d'autres "
#~ "clients ?"

#~ msgid "with the following command sequence:"
#~ msgstr "avec la séquence de commandes suivante :"

#~ msgid ""
#~ "In case you are a researcher you"
#~ " might be just fine using the "
#~ "self-signed certificates generated using "
#~ "the scripts which are part of this"
#~ " guide."
#~ msgstr ""
#~ "Si tu es un chercheur, tu peux "
#~ "très bien utiliser les certificats "
#~ "auto-signés générés à l'aide des "
#~ "scripts qui font partie de ce "
#~ "guide."

#~ msgid ""
#~ "We are now going to show how "
#~ "to write a sever which uses the"
#~ " previously generated scripts."
#~ msgstr ""
#~ "Nous allons maintenant montrer comment "
#~ "écrire un serveur qui utilise les "
#~ "scripts générés précédemment."

#~ msgid ""
#~ "When providing certificates, the server "
#~ "expects a tuple of three certificates."
#~ " :code:`Path` can be used to easily"
#~ " read the contents of those files "
#~ "into byte strings, which is the "
#~ "data type :code:`start_server` expects."
#~ msgstr ""
#~ "Lorsqu'il fournit des certificats, le "
#~ "serveur attend un tuple de trois "
#~ "certificats. :code:`Path` peut être utilisé"
#~ " pour lire facilement le contenu de"
#~ " ces fichiers en chaînes d'octets, ce"
#~ " qui est le type de données "
#~ "attendu par :code:`start_server`."

#~ msgid ""
#~ "The simplest way to get started "
#~ "with Flower is by using the "
#~ "pre-made Docker images, which you can"
#~ " find on `Docker Hub "
#~ "<https://hub.docker.com/r/flwr/server/tags>`_."
#~ msgstr ""

#~ msgid "Flower server"
#~ msgstr "Serveur de Flower"

#~ msgid ""
#~ "The command will pull the Docker "
#~ "image with the tag "
#~ "``1.7.0-py3.11-ubuntu22.04`` from Docker Hub. "
#~ "The tag contains the information which"
#~ " Flower, Python and Ubuntu is used."
#~ " In this case, it uses Flower "
#~ "1.7.0, Python 3.11 and Ubuntu 22.04. "
#~ "The ``--rm`` flag tells Docker to "
#~ "remove the container after it exits."
#~ msgstr ""

#~ msgid ""
#~ "By default, the Flower server keeps "
#~ "state in-memory. When using the "
#~ "Docker flag ``--rm``, the state is "
#~ "not persisted between container starts. "
#~ "We will show below how to save "
#~ "the state in a file on your "
#~ "host system."
#~ msgstr ""

#~ msgid ""
#~ "The ``-p <host>:<container>`` flag tells "
#~ "Docker to map the ports "
#~ "``9091``/``9092`` of the host to "
#~ "``9091``/``9092`` of the container, allowing"
#~ " you to access the Driver API "
#~ "on ``http://localhost:9091`` and the Fleet "
#~ "API on ``http://localhost:9092``. Lastly, any"
#~ " flag that comes after the tag "
#~ "is passed to the Flower server. "
#~ "Here, we are passing the flag "
#~ "``--insecure``."
#~ msgstr ""

#~ msgid ""
#~ "The ``--insecure`` flag enables insecure "
#~ "communication (using HTTP, not HTTPS) "
#~ "and should only be used for "
#~ "testing purposes. We strongly recommend "
#~ "enabling `SSL <https://flower.ai/docs/framework/how-"
#~ "to-run-flower-using-docker.html#enabling-"
#~ "ssl-for-secure-connections>`_ when "
#~ "deploying to a production environment."
#~ msgstr ""

#~ msgid ""
#~ "You can use ``--help`` to view all"
#~ " available flags that the server "
#~ "supports:"
#~ msgstr ""

#~ msgid ""
#~ "If you want to persist the state"
#~ " of the server on your host "
#~ "system, all you need to do is "
#~ "specify a path where you want to"
#~ " save the file on your host "
#~ "system and a name for the database"
#~ " file. In the example below, we "
#~ "tell Docker via the flag ``-v`` to"
#~ " mount the user's home directory "
#~ "(``~/`` on your host) into the "
#~ "``/app/`` directory of the container. "
#~ "Furthermore, we use the flag "
#~ "``--database`` to specify the name of"
#~ " the database file."
#~ msgstr ""

#~ msgid ""
#~ "As soon as the server starts, the"
#~ " file ``state.db`` is created in the"
#~ " user's home directory on your host"
#~ " system. If the file already exists,"
#~ " the server tries to restore the "
#~ "state from the file. To start the"
#~ " server with an empty database, "
#~ "simply remove the ``state.db`` file."
#~ msgstr ""

#~ msgid ""
#~ "To enable SSL, you will need a "
#~ "CA certificate, a server certificate and"
#~ " a server private key."
#~ msgstr ""

#~ msgid ""
#~ "For testing purposes, you can generate"
#~ " your own self-signed certificates. "
#~ "The `Enable SSL connections "
#~ "<https://flower.ai/docs/framework/how-to-enable-"
#~ "ssl-connections.html#certificates>`_ page contains "
#~ "a section that will guide you "
#~ "through the process."
#~ msgstr ""

#~ msgid ""
#~ "Assuming all files we need are in"
#~ " the local ``certificates`` directory, we"
#~ " can use the flag ``-v`` to "
#~ "mount the local directory into the "
#~ "``/app/`` directory of the container. "
#~ "This allows the server to access "
#~ "the files within the container. Finally,"
#~ " we pass the names of the "
#~ "certificates to the server with the "
#~ "``--certificates`` flag."
#~ msgstr ""

#~ msgid "Using a different Flower or Python version"
#~ msgstr ""

#~ msgid ""
#~ "If you want to use a different "
#~ "version of Flower or Python, you "
#~ "can do so by changing the tag. "
#~ "All versions we provide are available"
#~ " on `Docker Hub "
#~ "<https://hub.docker.com/r/flwr/server/tags>`_."
#~ msgstr ""

#~ msgid ""
#~ "The following command returns the "
#~ "current image hash referenced by the "
#~ "``server:1.7.0-py3.11-ubuntu22.04`` tag:"
#~ msgstr ""

#~ msgid "Next, we can pin the hash when running a new server container:"
#~ msgstr ""

#~ msgid "flower-driver-api"
#~ msgstr "flower-driver-api"

#~ msgid "flower-fleet-api"
#~ msgstr "flower-fleet-api"

#~ msgid ""
#~ "Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
#~ "[:py:class:`str`, :py:obj:`~typing.Union`\\ "
#~ "[:py:class:`int`, :py:class:`float`, :py:class:`str`, "
#~ ":py:class:`bytes`, :py:class:`bool`, "
#~ ":py:class:`~typing.List`\\ [:py:class:`int`], "
#~ ":py:class:`~typing.List`\\ [:py:class:`float`], "
#~ ":py:class:`~typing.List`\\ [:py:class:`str`], "
#~ ":py:class:`~typing.List`\\ [:py:class:`bytes`], "
#~ ":py:class:`~typing.List`\\ [:py:class:`bool`]]]"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`create_error_reply "
#~ "<flwr.common.Message.create_error_reply>`\\ \\(error\\, "
#~ "ttl\\)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`create_reply <flwr.common.Message.create_reply>`\\ "
#~ "\\(content\\, ttl\\)"
#~ msgstr ""

#~ msgid ""
#~ "Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
#~ "[:py:class:`str`, :py:obj:`~typing.Union`\\ "
#~ "[:py:class:`int`, :py:class:`float`, "
#~ ":py:class:`~typing.List`\\ [:py:class:`int`], "
#~ ":py:class:`~typing.List`\\ [:py:class:`float`]]]"
#~ msgstr ""

#~ msgid "Run Flower server (Driver API and Fleet API)."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`start_driver <flwr.server.start_driver>`\\ "
#~ "\\(\\*\\[\\, server\\_address\\, server\\, ...\\]\\)"
#~ msgstr ""

#~ msgid "Start a Flower Driver API server."
#~ msgstr "Tout d'abord, démarre un serveur Flower :"

#~ msgid ""
#~ ":py:obj:`Driver <flwr.server.Driver>`\\ "
#~ "\\(\\[driver\\_service\\_address\\, ...\\]\\)"
#~ msgstr ""
#~ "Flower 1.0 : ``start_server(..., "
#~ "config=flwr.server.ServerConfig(num_rounds=3, "
#~ "round_timeout=600.0), ...)``"

#~ msgid "`Driver` class provides an interface to the Driver API."
#~ msgstr ""

#~ msgid ""
#~ "The IPv4 or IPv6 address of the"
#~ " Driver API server. Defaults to "
#~ "`\"[::]:9091\"`."
#~ msgstr ""

#~ msgid "Disconnect from the SuperLink if connected."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`create_message <flwr.server.Driver.create_message>`\\"
#~ " \\(content\\, message\\_type\\, ...\\)"
#~ msgstr ""

#~ msgid ""
#~ "Time-to-live for the round trip"
#~ " of this message, i.e., the time "
#~ "from sending this message to receiving"
#~ " a reply. It specifies the duration"
#~ " for which the message and its "
#~ "potential reply are considered valid."
#~ msgstr ""

#~ msgid "start\\_driver"
#~ msgstr "start_client"

#~ msgid ""
#~ "The IPv4 or IPv6 address of the"
#~ " Driver API server. Defaults to "
#~ "`\"[::]:8080\"`."
#~ msgstr ""

#~ msgid ""
#~ "A server implementation, either "
#~ "`flwr.server.Server` or a subclass thereof."
#~ " If no instance is provided, then "
#~ "`start_driver` will create one."
#~ msgstr ""

#~ msgid ""
#~ "An implementation of the class "
#~ "`flwr.server.ClientManager`. If no implementation"
#~ " is provided, then `start_driver` will "
#~ "use `flwr.server.SimpleClientManager`."
#~ msgstr ""

#~ msgid "The Driver object to use."
#~ msgstr ""

#~ msgid "Starting a driver that connects to an insecure server:"
#~ msgstr ""

#~ msgid "Starting a driver that connects to an SSL-enabled server:"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`run_simulation_from_cli "
#~ "<flwr.simulation.run_simulation_from_cli>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Run Simulation Engine from the CLI."
#~ msgstr ""

#~ msgid "run\\_simulation\\_from\\_cli"
#~ msgstr "Simulation de moniteur"

#~ msgid ""
#~ "Check out this Federated Learning "
#~ "quickstart tutorial for using Flower "
#~ "with MXNet to train a Sequential "
#~ "model on MNIST."
#~ msgstr ""

#~ msgid "Quickstart MXNet"
#~ msgstr "Démarrage rapide de MXNet"

#~ msgid ""
#~ "MXNet is no longer maintained and "
#~ "has been moved into `Attic "
#~ "<https://attic.apache.org/projects/mxnet.html>`_. As a "
#~ "result, we would encourage you to "
#~ "use other ML frameworks alongside "
#~ "Flower, for example, PyTorch. This "
#~ "tutorial might be removed in future "
#~ "versions of Flower."
#~ msgstr ""

#~ msgid ""
#~ "In this tutorial, we will learn "
#~ "how to train a :code:`Sequential` model"
#~ " on MNIST using Flower and MXNet."
#~ msgstr ""
#~ "Dans ce tutoriel, nous allons apprendre"
#~ " à former un modèle :code:`Sequential` "
#~ "sur MNIST à l'aide de Flower et"
#~ " de MXNet."

#~ msgid "Since we want to use MXNet, let's go ahead and install it:"
#~ msgstr "Puisque nous voulons utiliser MXNet, allons-y et installons-le :"

#~ msgid ""
#~ "Now that we have all our "
#~ "dependencies installed, let's run a "
#~ "simple distributed training with two "
#~ "clients and one server. Our training "
#~ "procedure and network architecture are "
#~ "based on MXNet´s `Hand-written Digit "
#~ "Recognition tutorial "
#~ "<https://mxnet.apache.org/api/python/docs/tutorials/packages/gluon/image/mnist.html>`_."
#~ msgstr ""
#~ "Maintenant que toutes nos dépendances "
#~ "sont installées, lançons une formation "
#~ "distribuée simple avec deux clients et"
#~ " un serveur. Notre procédure de "
#~ "formation et l'architecture du réseau "
#~ "sont basées sur le tutoriel de "
#~ "reconnaissance de chiffres écrits à la"
#~ " main du MXNet "
#~ "<https://mxnet.apache.org/api/python/docs/tutorials/packages/gluon/image/mnist.html>`_."

#~ msgid ""
#~ "In a file called :code:`client.py`, "
#~ "import Flower and MXNet related "
#~ "packages:"
#~ msgstr ""
#~ "Dans un fichier appelé :code:`client.py`, "
#~ "importe Flower et les paquets liés "
#~ "au MXNet :"

#~ msgid "In addition, define the device allocation in MXNet with:"
#~ msgstr "En outre, définis l'attribution de l'appareil dans MXNet avec :"

#~ msgid ""
#~ "We use MXNet to load MNIST, a "
#~ "popular image classification dataset of "
#~ "handwritten digits for machine learning. "
#~ "The MXNet utility :code:`mx.test_utils.get_mnist()`"
#~ " downloads the training and test "
#~ "data."
#~ msgstr ""
#~ "Nous utilisons MXNet pour charger MNIST,"
#~ " un ensemble de données de "
#~ "classification d'images populaire de chiffres"
#~ " manuscrits pour l'apprentissage automatique. "
#~ "L'utilitaire MXNet :code:`mx.test_utils.get_mnist()` "
#~ "télécharge les données d'entraînement et "
#~ "de test."

#~ msgid ""
#~ "Define the training and loss with "
#~ "MXNet. We train the model by "
#~ "looping over the dataset, measure the"
#~ " corresponding loss, and optimize it."
#~ msgstr ""
#~ "Définis l'entraînement et la perte avec"
#~ " MXNet. Nous entraînons le modèle en"
#~ " parcourant en boucle l'ensemble des "
#~ "données, nous mesurons la perte "
#~ "correspondante et nous l'optimisons."

#~ msgid ""
#~ "Next, we define the validation of "
#~ "our machine learning model. We loop "
#~ "over the test set and measure both"
#~ " loss and accuracy on the test "
#~ "set."
#~ msgstr ""
#~ "Ensuite, nous définissons la validation "
#~ "de notre modèle d'apprentissage automatique."
#~ " Nous effectuons une boucle sur "
#~ "l'ensemble de test et mesurons à "
#~ "la fois la perte et la précision"
#~ " sur l'ensemble de test."

#~ msgid ""
#~ "After defining the training and testing"
#~ " of a MXNet machine learning model,"
#~ " we use these functions to implement"
#~ " a Flower client."
#~ msgstr ""
#~ "Après avoir défini la formation et "
#~ "le test d'un modèle d'apprentissage "
#~ "automatique MXNet, nous utilisons ces "
#~ "fonctions pour mettre en œuvre un "
#~ "client Flower."

#~ msgid "Our Flower clients will use a simple :code:`Sequential` model:"
#~ msgstr "Nos clients Flower utiliseront un modèle simple :code:`Sequential` :"

#~ msgid ""
#~ "After loading the dataset with "
#~ ":code:`load_data()` we perform one forward "
#~ "propagation to initialize the model and"
#~ " model parameters with :code:`model(init)`. "
#~ "Next, we implement a Flower client."
#~ msgstr ""
#~ "Après avoir chargé l'ensemble de données"
#~ " avec :code:`load_data()`, nous effectuons "
#~ "une propagation vers l'avant pour "
#~ "initialiser le modèle et les paramètres"
#~ " du modèle avec :code:`model(init)`. "
#~ "Ensuite, nous implémentons un client "
#~ "Flower."

#~ msgid ""
#~ "Flower provides a convenience class "
#~ "called :code:`NumPyClient` which makes it "
#~ "easier to implement the :code:`Client` "
#~ "interface when your workload uses MXNet."
#~ " Implementing :code:`NumPyClient` usually means"
#~ " defining the following methods "
#~ "(:code:`set_parameters` is optional though):"
#~ msgstr ""
#~ "Flower fournit une classe de commodité"
#~ " appelée :code:`NumPyClient` qui facilite "
#~ "l'implémentation de l'interface :code:`Client` "
#~ "lorsque ta charge de travail utilise "
#~ "MXNet. L'implémentation de :code:`NumPyClient` "
#~ "signifie généralement la définition des "
#~ "méthodes suivantes (:code:`set_parameters` est "
#~ "cependant facultatif) :"

#~ msgid "They can be implemented in the following way:"
#~ msgstr "Ils peuvent être mis en œuvre de la manière suivante :"

#~ msgid ""
#~ "We can now create an instance of"
#~ " our class :code:`MNISTClient` and add "
#~ "one line to actually run this "
#~ "client:"
#~ msgstr ""
#~ "Nous pouvons maintenant créer une "
#~ "instance de notre classe :code:`MNISTClient`"
#~ " et ajouter une ligne pour exécuter"
#~ " ce client :"

#~ msgid ""
#~ "That's it for the client. We only"
#~ " have to implement :code:`Client` or "
#~ ":code:`NumPyClient` and call "
#~ ":code:`fl.client.start_client()` or "
#~ ":code:`fl.client.start_numpy_client()`. The string "
#~ ":code:`\"0.0.0.0:8080\"` tells the client "
#~ "which server to connect to. In our"
#~ " case we can run the server and"
#~ " the client on the same machine, "
#~ "therefore we use :code:`\"0.0.0.0:8080\"`. If"
#~ " we run a truly federated workload"
#~ " with the server and clients running"
#~ " on different machines, all that "
#~ "needs to change is the "
#~ ":code:`server_address` we pass to the "
#~ "client."
#~ msgstr ""
#~ "C'est tout pour le client. Il nous"
#~ " suffit d'implémenter :code:`Client` ou "
#~ ":code:`NumPyClient` et d'appeler "
#~ ":code:`fl.client.start_client()`. La chaîne "
#~ ":code:`\"0.0.0:8080\"` indique au client à "
#~ "quel serveur se connecter. Dans notre"
#~ " cas, nous pouvons exécuter le "
#~ "serveur et le client sur la même"
#~ " machine, c'est pourquoi nous utilisons "
#~ ":code:`\"0.0.0:8080\"`. Si nous exécutons une"
#~ " charge de travail véritablement fédérée"
#~ " avec le serveur et les clients "
#~ "s'exécutant sur des machines différentes, "
#~ "tout ce qui doit changer est "
#~ ":code:`server_address` que nous transmettons "
#~ "au client."

#~ msgid ""
#~ "With both client and server ready, "
#~ "we can now run everything and see"
#~ " federated learning in action. Federated"
#~ " learning systems usually have a "
#~ "server and multiple clients. We "
#~ "therefore have to start the server "
#~ "first:"
#~ msgstr ""
#~ "Le client et le serveur étant "
#~ "prêts, nous pouvons maintenant tout "
#~ "exécuter et voir l'apprentissage fédéré "
#~ "en action. Les systèmes d'apprentissage "
#~ "fédéré ont généralement un serveur et"
#~ " plusieurs clients. Nous devons donc "
#~ "commencer par démarrer le serveur :"

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated learning "
#~ "system. The full `source code "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "mxnet/client.py>`_ for this example can "
#~ "be found in :code:`examples/quickstart-mxnet`."
#~ msgstr ""
#~ "Félicitations ! Tu as réussi à "
#~ "construire et à faire fonctionner ton"
#~ " premier système d'apprentissage fédéré. Le"
#~ " code source complet "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "mxnet/client.py>`_ de cet exemple se "
#~ "trouve dans :code:`examples/quickstart-mxnet`."

#~ msgid ":code:`load_mnist()`"
#~ msgstr ":code:`load_mnist()`"

#~ msgid "Loads the MNIST dataset using OpenML"
#~ msgstr "Charge l'ensemble de données MNIST à l'aide d'OpenML"

#~ msgid ":code:`shuffle()`"
#~ msgstr ":code:`shuffle()`"

#~ msgid "Shuffles data and its label"
#~ msgstr "Mélange les données et leur étiquette"

#~ msgid ":code:`partition()`"
#~ msgstr ":code:`partition()`"

#~ msgid "Splits datasets into a number of partitions"
#~ msgstr "Divise les ensembles de données en un certain nombre de partitions"

#~ msgid ""
#~ "We load the MNIST dataset from "
#~ "`OpenML "
#~ "<https://www.openml.org/search?type=data&sort=runs&id=554>`_, a"
#~ " popular image classification dataset of"
#~ " handwritten digits for machine learning."
#~ " The utility :code:`utils.load_mnist()` downloads"
#~ " the training and test data. The "
#~ "training set is split afterwards into"
#~ " 10 partitions with :code:`utils.partition()`."
#~ msgstr ""
#~ "Nous chargeons l'ensemble de données "
#~ "MNIST de `OpenML <https://www.openml.org/d/554>`_,"
#~ " un ensemble de données de "
#~ "classification d'images populaires de chiffres"
#~ " manuscrits pour l'apprentissage automatique. "
#~ "L'utilitaire :code:`utils.load_mnist()` télécharge "
#~ "les données d'entraînement et de test."
#~ " L'ensemble d'entraînement est ensuite "
#~ "divisé en 10 partitions avec "
#~ ":code:`utils.partition()`."

#~ msgid "Let's get stated!"
#~ msgstr "Allons-y, déclarons-le !"

#~ msgid "|2b5c62c529f6416f840c594cce062fbb|"
#~ msgstr ""

#~ msgid "|90b334680cb7467d9a04d39b8e8dca9f|"
#~ msgstr ""

#~ msgid "|65764ceee89f4335bfd93fd0b115e831|"
#~ msgstr ""

#~ msgid "|d97319ec28bb407ea0ab9705e38f3bcf|"
#~ msgstr ""

#~ msgid "|11e95ac83a8548d8b3505b4663187d07|"
#~ msgstr ""

#~ msgid "|1dab2f3a23674abc8a6731f20fa10730|"
#~ msgstr ""

#~ msgid "|7f0ee162da38450788493a21627306f7|"
#~ msgstr ""

#~ msgid "|296a1fb72c514b23b3d8905ff0ff98c6|"
#~ msgstr ""

#~ msgid "|5b1408eec0d746cdb91162a9107b6089|"
#~ msgstr ""

#~ msgid "|aef19f4b122c4e8d9f4c57f99bcd5dd2|"
#~ msgstr ""

#~ msgid "|2881a86d8fc54ba29d96b29fc2819f4a|"
#~ msgstr ""

#~ msgid "|ec1fe880237247e0975f52766775ab84|"
#~ msgstr ""

#~ msgid "|9fdf048ed58d4467b2718cdf4aaf1ec3|"
#~ msgstr ""

#~ msgid "|ff726bc5505e432388ee2fdd6ef420b9|"
#~ msgstr ""

#~ msgid ""
#~ "Flower provides pre-made docker images"
#~ " on `Docker Hub <https://hub.docker.com/u/flwr>`_"
#~ " that include all necessary dependencies"
#~ " for running the SuperLink. You can"
#~ " also build your own custom docker"
#~ " images from scratch with a different"
#~ " version of Python or Ubuntu if "
#~ "that is what you need. In this "
#~ "guide, we will explain what images "
#~ "exist and how to build them "
#~ "locally."
#~ msgstr ""

#~ msgid ""
#~ "Currently, Flower provides two images, a"
#~ " ``base`` image and a ``superlink`` "
#~ "image. The base image, as the name"
#~ " suggests, contains basic dependencies that"
#~ " the SuperLink needs. This includes "
#~ "system dependencies, Python and Python "
#~ "tools. The SuperLink image is based "
#~ "on the base image, but it "
#~ "additionally installs the SuperLink using "
#~ "``pip``."
#~ msgstr ""

#~ msgid ""
#~ "Both, base and SuperLink image are "
#~ "configured via build arguments. Through "
#~ "build arguments, we can make our "
#~ "build more flexible. For example, in "
#~ "the base image, we can specify the"
#~ " version of Python to install using"
#~ " the ``PYTHON_VERSION`` build argument. "
#~ "Some of the build arguments have "
#~ "default values, others must be specified"
#~ " when building the image. All "
#~ "available build arguments for each image"
#~ " are listed in one of the "
#~ "tables below."
#~ msgstr ""

#~ msgid "``3.11``"
#~ msgstr "1.0.0rc1"

#~ msgid "``UBUNTU_VERSION``"
#~ msgstr ""

#~ msgid "Version of the official Ubuntu Docker image."
#~ msgstr ""

#~ msgid "Defaults to ``22.04``."
#~ msgstr ""

#~ msgid ""
#~ "The following example creates a base "
#~ "image with Python 3.11.0, pip 23.0.1 "
#~ "and setuptools 69.0.2:"
#~ msgstr ""

#~ msgid "Building the SuperLink image"
#~ msgstr "Démarrer le serveur"

#~ msgid "Defaults to ``flwr/base``."
#~ msgstr ""

#~ msgid "The Python version of the base image."
#~ msgstr "Évaluer la réponse d'un client."

#~ msgid "Defaults to ``py3.11``."
#~ msgstr ""

#~ msgid "Defaults to ``ubuntu22.04``."
#~ msgstr ""

#~ msgid "The PyPI package to install."
#~ msgstr ""

#~ msgid "Defaults to ``flwr``."
#~ msgstr "Flux de travail"

#~ msgid ""
#~ "The following example creates a "
#~ "SuperLink image with the official Flower"
#~ " base image py3.11-ubuntu22.04 and Flower"
#~ " 1.8.0:"
#~ msgstr ""

#~ msgid ""
#~ "The name of image is ``flwr_superlink``"
#~ " and the tag ``0.1.0``. Remember that"
#~ " the build arguments as well as "
#~ "the name and tag can be adapted"
#~ " to your needs. These values serve"
#~ " as examples only."
#~ msgstr ""

#~ msgid ""
#~ "If you want to use your own "
#~ "base image instead of the official "
#~ "Flower base image, all you need to"
#~ " do is set the ``BASE_REPOSITORY``, "
#~ "``PYTHON_VERSION`` and ``UBUNTU_VERSION`` build "
#~ "arguments."
#~ msgstr ""

#~ msgid "Creating New Messages"
#~ msgstr "Création de nouveaux messages"

#~ msgid ""
#~ "This is a simple guide for "
#~ "creating a new type of message "
#~ "between the server and clients in "
#~ "Flower."
#~ msgstr ""
#~ "Voici un guide simple pour créer "
#~ "un nouveau type de message entre "
#~ "le serveur et les clients dans "
#~ "Flower."

#~ msgid ""
#~ "Let's suppose we have the following "
#~ "example functions in :code:`server.py` and "
#~ ":code:`numpy_client.py`..."
#~ msgstr ""
#~ "Supposons que nous ayons les fonctions"
#~ " suivantes dans :code:`server.py` et "
#~ ":code:`numpy_client.py`..."

#~ msgid "Server's side:"
#~ msgstr "Côté serveur :"

#~ msgid "Client's side:"
#~ msgstr "Côté client :"

#~ msgid ""
#~ "Let's now see what we need to "
#~ "implement in order to get this "
#~ "simple function between the server and"
#~ " client to work!"
#~ msgstr ""
#~ "Voyons maintenant ce que nous devons "
#~ "mettre en œuvre pour que cette "
#~ "simple fonction entre le serveur et "
#~ "le client fonctionne !"

#~ msgid "Message Types for Protocol Buffers"
#~ msgstr "Types de messages pour les tampons de protocole"

#~ msgid ""
#~ "The first thing we need to do "
#~ "is to define a message type for"
#~ " the RPC system in :code:`transport.proto`."
#~ " Note that we have to do it "
#~ "for both the request and response "
#~ "messages. For more details on the "
#~ "syntax of proto3, please see the  "
#~ "`official documentation <https://protobuf.dev"
#~ "/programming-guides/proto3/>`_."
#~ msgstr ""
#~ "La première chose à faire est de"
#~ " définir un type de message pour "
#~ "le système RPC dans :code:`transport.proto`."
#~ " Notez que nous devons le faire "
#~ "à la fois pour les messages de "
#~ "demande et de réponse. Pour plus "
#~ "de détails sur la syntaxe de "
#~ "proto3, veuillez consulter la `documentation"
#~ " officielle <https://developers.google.com/protocol-"
#~ "buffers/docs/proto3>`_."

#~ msgid "Within the :code:`ServerMessage` block:"
#~ msgstr "Dans le bloc :code:`ServerMessage` :"

#~ msgid "Within the ClientMessage block:"
#~ msgstr "Dans le bloc ClientMessage :"

#~ msgid ""
#~ "Make sure to also add a field "
#~ "of the newly created message type "
#~ "in :code:`oneof msg`."
#~ msgstr ""
#~ "Veille à ajouter également un champ "
#~ "du type de message nouvellement créé "
#~ "dans :code:`oneof msg`."

#~ msgid "Once that is done, we will compile the file with:"
#~ msgstr "Une fois que c'est fait, nous compilerons le fichier avec :"

#~ msgid "If it compiles successfully, you should see the following message:"
#~ msgstr "S'il se compile avec succès, tu devrais voir le message suivant :"

#~ msgid "Serialization and Deserialization Functions"
#~ msgstr "Fonctions de sérialisation et de désérialisation"

#~ msgid ""
#~ "Our next step is to add functions"
#~ " to serialize and deserialize Python "
#~ "datatypes to or from our defined "
#~ "RPC message types. You should add "
#~ "these functions in :code:`serde.py`."
#~ msgstr ""
#~ "La prochaine étape consiste à ajouter"
#~ " des fonctions pour sérialiser et "
#~ "désérialiser les types de données Python"
#~ " vers ou à partir des types de"
#~ " messages RPC définis. Tu dois "
#~ "ajouter ces fonctions dans :code:`serde.py`."

#~ msgid "The four functions:"
#~ msgstr "Les quatre fonctions :"

#~ msgid "Sending the Message from the Server"
#~ msgstr "Envoi du message à partir du serveur"

#~ msgid ""
#~ "Now write the request function in "
#~ "your Client Proxy class (e.g., "
#~ ":code:`grpc_client_proxy.py`) using the serde "
#~ "functions you just created:"
#~ msgstr ""
#~ "Écris maintenant la fonction de demande"
#~ " dans ta classe Client Proxy (par "
#~ "exemple, :code:`grpc_client_proxy.py`) en utilisant"
#~ " les fonctions serde que tu viens "
#~ "de créer :"

#~ msgid "Receiving the Message by the Client"
#~ msgstr "Réception du message par le client"

#~ msgid ""
#~ "Last step! Modify the code in "
#~ ":code:`message_handler.py` to check the field"
#~ " of your message and call the "
#~ ":code:`example_response` function. Remember to "
#~ "use the serde functions!"
#~ msgstr ""
#~ "Dernière étape ! Modifie le code "
#~ "dans :code:`message_handler.py` pour vérifier "
#~ "le champ de ton message et appeler"
#~ " la fonction :code:`example_response`. N'oublie"
#~ " pas d'utiliser les fonctions serde !"

#~ msgid "Within the handle function:"
#~ msgstr "Dans le cadre de la fonction de poignée :"

#~ msgid "And add a new function:"
#~ msgstr "Et ajoute une nouvelle fonction :"

#~ msgid "Hopefully, when you run your program you will get the intended result!"
#~ msgstr ""
#~ "Avec un peu de chance, lorsque tu"
#~ " exécuteras ton programme, tu obtiendras"
#~ " le résultat escompté !"

#~ msgid ""
#~ "The simplest way to get started "
#~ "with Flower is by using the "
#~ "pre-made Docker images, which you can"
#~ " find on `Docker Hub "
#~ "<https://hub.docker.com/u/flwr>`__."
#~ msgstr ""

#~ msgid ""
#~ "If you want to persist the state"
#~ " of the SuperLink on your host "
#~ "system, all you need to do is "
#~ "specify a path where you want to"
#~ " save the file on your host "
#~ "system and a name for the database"
#~ " file. In the example below, we "
#~ "tell Docker via the flag ``--volume``"
#~ " to mount the user's home directory"
#~ " (``~/`` on your host) into the "
#~ "``/app/`` directory of the container. "
#~ "Furthermore, we use the flag "
#~ "``--database`` to specify the name of"
#~ " the database file."
#~ msgstr ""

#~ msgid ""
#~ "As soon as the SuperLink starts, "
#~ "the file ``state.db`` is created in "
#~ "the user's home directory on your "
#~ "host system. If the file already "
#~ "exists, the SuperLink tries to restore"
#~ " the state from the file. To "
#~ "start the SuperLink with an empty "
#~ "database, simply remove the ``state.db`` "
#~ "file."
#~ msgstr ""

#~ msgid ""
#~ "Assuming all files we need are in"
#~ " the local ``certificates`` directory, we"
#~ " can use the flag ``--volume`` to "
#~ "mount the local directory into the "
#~ "``/app/`` directory of the container. "
#~ "This allows the SuperLink to access "
#~ "the files within the container. Finally,"
#~ " we pass the names of the "
#~ "certificates to the SuperLink with the"
#~ " ``--certificates`` flag."
#~ msgstr ""

#~ msgid ""
#~ "``--server 192.168.1.100:9092``: This option "
#~ "specifies the address of the SuperLinks"
#~ " Fleet"
#~ msgstr ""

#~ msgid ""
#~ "Assuming the certificate already exists "
#~ "locally, we can use the flag "
#~ "``--volume`` to mount the local "
#~ "certificate into the container's ``/app/`` "
#~ "directory. This allows the SuperNode to"
#~ " access the certificate within the "
#~ "container. Use the ``--certificates`` flag "
#~ "when starting the container."
#~ msgstr ""

#~ msgid ""
#~ "``--server 192.168.1.100:9091``: This option "
#~ "specifies the address of the SuperLinks"
#~ " Driver"
#~ msgstr ""

#~ msgid ""
#~ "Assuming the certificate already exists "
#~ "locally, we can use the flag "
#~ "``--volume`` to mount the local "
#~ "certificate into the container's ``/app/`` "
#~ "directory. This allows the ServerApp to"
#~ " access the certificate within the "
#~ "container. Use the ``--certificates`` flag "
#~ "when starting the container."
#~ msgstr ""

#~ msgid ""
#~ "If you want to use a different "
#~ "version of Flower, for example Flower"
#~ " nightly, you can do so by "
#~ "changing the tag. All available versions"
#~ " are on `Docker Hub "
#~ "<https://hub.docker.com/r/flwr/superlink/tags>`__."
#~ msgstr ""

#~ msgid ""
#~ "Here's another example to start with "
#~ "HTTPS. Use the ``--certificates`` command "
#~ "line argument to pass paths to (CA"
#~ " certificate, server certificate, and "
#~ "server private key)."
#~ msgstr ""

#~ msgid ":py:obj:`run_driver_api <flwr.server.run_driver_api>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Run Flower server (Driver API)."
#~ msgstr "flower-driver-api"

#~ msgid ":py:obj:`run_fleet_api <flwr.server.run_fleet_api>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Run Flower server (Fleet API)."
#~ msgstr "flower-fleet-api"

#~ msgid "|d8bf04f23d9b46d8a23cc6f4887d7873|"
#~ msgstr ""

#~ msgid "|5aa1711387d74d0f8b9c499e1a51627e|"
#~ msgstr ""

#~ msgid "|2bc8e069228d4873804061ff4a95048c|"
#~ msgstr ""

#~ msgid "|c258488766324dc9a6807f0e7c4fd5f4|"
#~ msgstr ""

#~ msgid "|d5f962c3f4ec48529efda980868c14b0|"
#~ msgstr ""

#~ msgid "|a5eccea18d4c43a68b54b65043cabef8|"
#~ msgstr ""

#~ msgid "|f17662f7df2d42f68cac70a1fdeda8a7|"
#~ msgstr ""

#~ msgid "|241fc906441a4f038c625a19d30d01b2|"
#~ msgstr ""

#~ msgid "|0aa5aa05810b44b6a835cecce28f3137|"
#~ msgstr ""

#~ msgid "|c742940dd4bf4de09d8d0d5e8d179638|"
#~ msgstr ""

#~ msgid "|1f169ab4601a47e1a226f1628f4ebddb|"
#~ msgstr ""

#~ msgid "|12cfa9cde14440ecb8c8f6c1d7185bec|"
#~ msgstr ""

#~ msgid "|72939caf6e294b0986fee6dde96614d7|"
#~ msgstr ""

#~ msgid "|83a8daee45da4a98b8d6f24ae098fc50|"
#~ msgstr ""

#~ msgid "Edge Client Engine"
#~ msgstr "Moteur client Edge"

#~ msgid ""
#~ "`Flower <https://flower.ai>`_ core framework "
#~ "architecture with Edge Client Engine"
#~ msgstr ""
#~ "`Flower <https://flower.ai>`_ architecture de "
#~ "base avec Edge Client Engine"

#~ msgid "Virtual Client Engine"
#~ msgstr "Moteur de client virtuel"

#~ msgid ""
#~ "`Flower <https://flower.ai>`_ core framework "
#~ "architecture with Virtual Client Engine"
#~ msgstr ""
#~ "`Flower <https://flower.ai>`_ architecture de "
#~ "base avec moteur de client virtuel"

#~ msgid "Virtual Client Engine and Edge Client Engine in the same workload"
#~ msgstr ""
#~ "Moteur client virtuel et moteur client"
#~ " Edge dans la même charge de "
#~ "travail"

#~ msgid ""
#~ "`Flower <https://flower.ai>`_ core framework "
#~ "architecture with both Virtual Client "
#~ "Engine and Edge Client Engine"
#~ msgstr ""
#~ "`Flower <https://flower.ai>`_ architecture de "
#~ "base avec un moteur de client "
#~ "virtuel et un moteur de client "
#~ "périphérique"

#~ msgid "How to build Docker Flower images locally"
#~ msgstr ""

#~ msgid "Clone the flower repository."
#~ msgstr "**Fourche le dépôt de Flower**"

#~ msgid ""
#~ "Please follow the first section on "
#~ ":doc:`Run Flower using Docker <how-"
#~ "to-run-flower-using-docker>` which "
#~ "covers this step in more detail."
#~ msgstr ""

#~ msgid "``22.04``"
#~ msgstr "1.0.0rc1"

#~ msgid "``23.0.1``"
#~ msgstr "1.0.0rc1"

#~ msgid "``69.0.2``"
#~ msgstr "``1.0.0b0``"

#~ msgid "``1.8.0``"
#~ msgstr "``1.0.0b0``"

#~ msgid ""
#~ "The following example creates a base "
#~ "Ubuntu/Alpine image with Python 3.11.0, "
#~ "pip 23.0.1, setuptools 69.0.2 and Flower"
#~ " 1.8.0:"
#~ msgstr ""

#~ msgid ""
#~ "The name of image is ``flwr_base`` "
#~ "and the tag ``0.1.0``. Remember that "
#~ "the build arguments as well as the"
#~ " name and tag can be adapted to"
#~ " your needs. These values serve as"
#~ " examples only."
#~ msgstr ""

#~ msgid "Building the SuperLink/SuperNode or ServerApp image"
#~ msgstr "Démarrer le serveur"

#~ msgid "``1.8.0-py3.10-ubuntu22.04``"
#~ msgstr ""

#~ msgid ""
#~ "The following example creates a "
#~ "SuperLink/SuperNode or ServerApp image with"
#~ " the official Flower base image:"
#~ msgstr ""

#~ msgid ""
#~ "If you want to use your own "
#~ "base image instead of the official "
#~ "Flower base image, all you need to"
#~ " do is set the ``BASE_REPOSITORY`` "
#~ "build argument."
#~ msgstr ""

#~ msgid "Trigger the CI for building the Docker images."
#~ msgstr "Démarrer le serveur"

#~ msgid ""
#~ "To trigger the workflow, a collaborator"
#~ " must create a ``workflow_dispatch`` event"
#~ " in the GitHub CI. This can be"
#~ " done either through the UI or "
#~ "via the GitHub CLI. The event "
#~ "requires only one input, the Flower "
#~ "version, to be released."
#~ msgstr ""

#~ msgid "**Via the UI**"
#~ msgstr "**Review the PR**"

#~ msgid ""
#~ "Go to the ``Build docker images`` "
#~ "workflow `page "
#~ "<https://github.com/adap/flower/actions/workflows/docker-"
#~ "images.yml>`_."
#~ msgstr ""

#~ msgid ""
#~ "Click on the ``Run workflow`` button "
#~ "and type the new version of Flower"
#~ " in the ``Version of Flower`` input"
#~ " field."
#~ msgstr ""

#~ msgid "Click on the **green** ``Run workflow`` button."
#~ msgstr ""

#~ msgid "**Via the GitHub CI**"
#~ msgstr ""

#~ msgid ""
#~ "Make sure you are logged in via"
#~ " ``gh auth login`` and that the "
#~ "current working directory is the root"
#~ " of the Flower repository."
#~ msgstr ""

#~ msgid ""
#~ "Trigger the workflow via ``gh workflow"
#~ " run docker-images.yml -f flwr-"
#~ "version=<NEW_VERSION>``."
#~ msgstr ""

#~ msgid "Preliminarities"
#~ msgstr ""

#~ msgid "Example: JAX - Run JAX Federated"
#~ msgstr "Exemple : JAX - Exécuter JAX Federated"

#~ msgid ""
#~ "\\small\n"
#~ "P[M(D_{1} \\in A)] \\leq e^{\\delta} P[M(D_{2} \\in A)] + \\delta"
#~ msgstr ""

#~ msgid ":doc:`How to run Flower using Docker <how-to-run-flower-using-docker>`"
#~ msgstr ""

#~ msgid ""
#~ "The simplest way to get started "
#~ "with Flower is by using the "
#~ "pre-made Docker images, which you can"
#~ " find on `Docker Hub "
#~ "<https://hub.docker.com/u/flwr>`__. Supported "
#~ "architectures include ``amd64`` and "
#~ "``arm64v8``."
#~ msgstr ""

#~ msgid "Before you start, make sure that the Docker daemon is running:"
#~ msgstr ""

#~ msgid ""
#~ "If you do not see the version "
#~ "of Docker but instead get an error"
#~ " saying that the command was not "
#~ "found, you will need to install "
#~ "Docker first. You can find installation"
#~ " instruction `here <https://docs.docker.com/get-"
#~ "docker/>`_."
#~ msgstr ""

#~ msgid ""
#~ "On Linux, Docker commands require "
#~ "``sudo`` privilege. If you want to "
#~ "avoid using ``sudo``, you can follow "
#~ "the `Post-installation steps "
#~ "<https://docs.docker.com/engine/install/linux-postinstall/>`_"
#~ " on the official Docker website."
#~ msgstr ""

#~ msgid ""
#~ "To ensure optimal performance and "
#~ "compatibility, the SuperLink, SuperNode and"
#~ " ServerApp image must have the same"
#~ " version when running together. This "
#~ "guarantees seamless integration and avoids "
#~ "potential conflicts or issues that may"
#~ " arise from using different versions."
#~ msgstr ""

#~ msgid "Flower SuperLink"
#~ msgstr "flower-superlink"

#~ msgid "Quickstart"
#~ msgstr "Démarrage rapide de JAX"

#~ msgid "If you're looking to try out Flower, you can use the following command:"
#~ msgstr ""

#~ msgid ""
#~ "The command pulls the Docker image "
#~ "with the tag ``1.8.0`` from Docker "
#~ "Hub. The tag specifies the Flower "
#~ "version. In this case, Flower 1.8.0. "
#~ "The ``--rm`` flag tells Docker to "
#~ "remove the container after it exits."
#~ msgstr ""

#~ msgid ""
#~ "By default, the Flower SuperLink keeps"
#~ " state in-memory. When using the "
#~ "Docker flag ``--rm``, the state is "
#~ "not persisted between container starts. "
#~ "We will show below how to save "
#~ "the state in a file on your "
#~ "host system."
#~ msgstr ""

#~ msgid ""
#~ "The ``-p <host>:<container>`` flag tells "
#~ "Docker to map the ports "
#~ "``9091``/``9092`` of the host to "
#~ "``9091``/``9092`` of the container, allowing"
#~ " you to access the Driver API "
#~ "on ``http://localhost:9091`` and the Fleet "
#~ "API on ``http://localhost:9092``. Lastly, any"
#~ " flag that comes after the tag "
#~ "is passed to the Flower SuperLink. "
#~ "Here, we are passing the flag "
#~ "``--insecure``."
#~ msgstr ""

#~ msgid ""
#~ "The ``--insecure`` flag enables insecure "
#~ "communication (using HTTP, not HTTPS) "
#~ "and should only be used for "
#~ "testing purposes. We strongly recommend "
#~ "enabling `SSL <https://flower.ai/docs/framework/how-"
#~ "to-run-flower-using-docker.html#enabling-"
#~ "ssl-for-secure-connections>`__ when "
#~ "deploying to a production environment."
#~ msgstr ""

#~ msgid ""
#~ "You can use ``--help`` to view all"
#~ " available flags that the SuperLink "
#~ "supports:"
#~ msgstr ""

#~ msgid "Mounting a volume to store the state on the host system"
#~ msgstr ""

#~ msgid ""
#~ "If you want to persist the state"
#~ " of the SuperLink on your host "
#~ "system, all you need to do is "
#~ "specify a directory where you want "
#~ "to save the file on your host "
#~ "system and a name for the database"
#~ " file. By default, the SuperLink "
#~ "container runs with a non-root "
#~ "user called ``app`` with the user "
#~ "ID ``49999``. It is recommended to "
#~ "create new directory and change the "
#~ "user ID of the directory to "
#~ "``49999`` to ensure the mounted "
#~ "directory has the proper permissions. If"
#~ " you later want to delete the "
#~ "directory, you can change the user "
#~ "ID back to the current user ID "
#~ "by running ``sudo chown -R $USER:$(id"
#~ " -gn) state``."
#~ msgstr ""

#~ msgid ""
#~ "In the example below, we create a"
#~ " new directory, change the user ID"
#~ " and tell Docker via the flag "
#~ "``--volume`` to mount the local "
#~ "``state`` directory into the ``/app/state``"
#~ " directory of the container. Furthermore,"
#~ " we use the flag ``--database`` to"
#~ " specify the name of the database "
#~ "file."
#~ msgstr ""

#~ msgid ""
#~ "As soon as the SuperLink starts, "
#~ "the file ``state.db`` is created in "
#~ "the ``state`` directory on your host "
#~ "system. If the file already exists, "
#~ "the SuperLink tries to restore the "
#~ "state from the file. To start the"
#~ " SuperLink with an empty database, "
#~ "simply remove the ``state.db`` file."
#~ msgstr ""

#~ msgid ""
#~ "To enable SSL, you will need a "
#~ "PEM-encoded root certificate, a PEM-"
#~ "encoded private key and a PEM-"
#~ "encoded certificate chain."
#~ msgstr ""

#~ msgid ""
#~ "Assuming all files we need are in"
#~ " the local ``certificates`` directory, we"
#~ " can use the flag ``--volume`` to "
#~ "mount the local directory into the "
#~ "``/app/certificates/`` directory of the "
#~ "container. This allows the SuperLink to"
#~ " access the files within the "
#~ "container. The ``ro`` stands for "
#~ "``read-only``. Docker volumes default to"
#~ " ``read-write``; that option tells "
#~ "Docker to make the volume ``read-"
#~ "only`` instead. Finally, we pass the "
#~ "names of the certificates and key "
#~ "file to the SuperLink with the "
#~ "``--ssl-ca-certfile``, ``--ssl-certfile`` "
#~ "and ``--ssl-keyfile`` flag."
#~ msgstr ""

#~ msgid ""
#~ "Because Flower containers, by default, "
#~ "run with a non-root user ``app``,"
#~ " the mounted files and directories "
#~ "must have the proper permissions for "
#~ "the user ID ``49999``. For example, "
#~ "to change the user ID of all "
#~ "files in the ``certificates/`` directory, "
#~ "you can run ``sudo chown -R "
#~ "49999:49999 certificates/*``."
#~ msgstr ""

#~ msgid ""
#~ "The SuperNode Docker image comes with"
#~ " a pre-installed version of Flower"
#~ " and serves as a base for "
#~ "building your own SuperNode image."
#~ msgstr ""

#~ msgid ""
#~ "The SuperNode Docker image currently "
#~ "works only with the 1.9.0-nightly "
#~ "release. A stable version will be "
#~ "available when Flower 1.9.0 (stable) "
#~ "gets released (ETA: May). A SuperNode"
#~ " nightly image must be paired with"
#~ " the corresponding SuperLink and ServerApp"
#~ " nightly images released on the same"
#~ " day. To ensure the versions are "
#~ "in sync, using the concrete tag, "
#~ "e.g., ``1.9.0.dev20240501`` instead of "
#~ "``nightly`` is recommended."
#~ msgstr ""

#~ msgid ""
#~ "We will use the ``quickstart-pytorch``"
#~ " example, which you can find in "
#~ "the Flower repository, to illustrate how"
#~ " you can dockerize your ClientApp."
#~ msgstr ""

#~ msgid ""
#~ "Before we can start, we need to"
#~ " meet a few prerequisites in our "
#~ "local development environment. You can "
#~ "skip the first part if you want"
#~ " to run your ClientApp instead of "
#~ "the ``quickstart-pytorch`` example."
#~ msgstr ""

#~ msgid "Creating a SuperNode Dockerfile"
#~ msgstr ""

#~ msgid "Let's assume the following project layout:"
#~ msgstr ""

#~ msgid ""
#~ "First, we need to create a "
#~ "``requirements.txt`` file in the directory "
#~ "where the ``ClientApp`` code is located."
#~ " In the file, we list all the"
#~ " dependencies that the ClientApp requires."
#~ msgstr ""

#~ msgid ""
#~ "Note that `flwr <https://pypi.org/project/flwr/>`__"
#~ " is already installed in the "
#~ "``flwr/supernode`` base image, so you "
#~ "only need to include other package "
#~ "dependencies in your ``requirements.txt``, "
#~ "such as ``torch``, ``tensorflow``, etc."
#~ msgstr ""

#~ msgid ""
#~ "Next, we create a Dockerfile. If "
#~ "you use the ``quickstart-pytorch`` "
#~ "example, create a new file called "
#~ "``Dockerfile.supernode`` in ``examples/quickstart-"
#~ "pytorch``."
#~ msgstr ""

#~ msgid ""
#~ "The ``Dockerfile.supernode`` contains the "
#~ "instructions that assemble the SuperNode "
#~ "image."
#~ msgstr ""

#~ msgid ""
#~ "In the first two lines, we "
#~ "instruct Docker to use the SuperNode "
#~ "image tagged ``nightly`` as a base "
#~ "image and set our working directory "
#~ "to ``/app``. The following instructions "
#~ "will now be executed in the "
#~ "``/app`` directory. Next, we install the"
#~ " ClientApp dependencies by copying the "
#~ "``requirements.txt`` file into the image "
#~ "and run ``pip install``. In the "
#~ "last two lines, we copy the "
#~ "``client.py`` module into the image and"
#~ " set the entry point to ``flower-"
#~ "client-app`` with the argument "
#~ "``client:app``. The argument is the "
#~ "object reference of the ClientApp "
#~ "(``<module>:<attribute>``) that will be run"
#~ " inside the ClientApp."
#~ msgstr ""

#~ msgid "Building the SuperNode Docker image"
#~ msgstr "Démarrer le serveur"

#~ msgid ""
#~ "Next, we build the SuperNode Docker "
#~ "image by running the following command"
#~ " in the directory where Dockerfile "
#~ "and ClientApp code are located."
#~ msgstr ""

#~ msgid ""
#~ "We gave the image the name "
#~ "``flwr_supernode``, and the tag ``0.0.1``. "
#~ "Remember that the here chosen values "
#~ "only serve as an example. You can"
#~ " change them to your needs."
#~ msgstr ""

#~ msgid "Now that we have built the SuperNode image, we can finally run it."
#~ msgstr ""

#~ msgid "Let's break down each part of this command:"
#~ msgstr ""

#~ msgid "``docker run``: This is the command to run a new Docker container."
#~ msgstr ""

#~ msgid ""
#~ "``--rm``: This option specifies that the"
#~ " container should be automatically removed"
#~ " when it stops."
#~ msgstr ""

#~ msgid "``flwr_supernode:0.0.1``: The name the tag of the Docker image to use."
#~ msgstr ""

#~ msgid "``--insecure``: This option enables insecure communication."
#~ msgstr ""

#~ msgid ""
#~ "``--superlink 192.168.1.100:9092``: This option "
#~ "specifies the address of the SuperLinks"
#~ " Fleet"
#~ msgstr ""

#~ msgid "API to connect to. Remember to update it with your SuperLink IP."
#~ msgstr ""

#~ msgid ""
#~ "To test running Flower locally, you "
#~ "can create a `bridge network "
#~ "<https://docs.docker.com/network/network-tutorial-"
#~ "standalone/#use-user-defined-bridge-"
#~ "networks>`__, use the ``--network`` argument"
#~ " and pass the name of the "
#~ "Docker network to run your SuperNodes."
#~ msgstr ""

#~ msgid ""
#~ "Any argument that comes after the "
#~ "tag is passed to the Flower "
#~ "SuperNode binary. To see all available"
#~ " flags that the SuperNode supports, "
#~ "run:"
#~ msgstr ""

#~ msgid ""
#~ "To enable SSL, we will need to "
#~ "mount a PEM-encoded root certificate "
#~ "into your SuperNode container."
#~ msgstr ""

#~ msgid ""
#~ "Assuming the certificate already exists "
#~ "locally, we can use the flag "
#~ "``--volume`` to mount the local "
#~ "certificate into the container's ``/app/`` "
#~ "directory. This allows the SuperNode to"
#~ " access the certificate within the "
#~ "container. Use the ``--root-certificates`` "
#~ "flag when starting the container."
#~ msgstr ""

#~ msgid ""
#~ "The procedure for building and running"
#~ " a ServerApp image is almost "
#~ "identical to the SuperNode image."
#~ msgstr ""

#~ msgid ""
#~ "Similar to the SuperNode image, the "
#~ "ServerApp Docker image comes with a "
#~ "pre-installed version of Flower and "
#~ "serves as a base for building your"
#~ " own ServerApp image."
#~ msgstr ""

#~ msgid ""
#~ "We will use the same ``quickstart-"
#~ "pytorch`` example as we do in the"
#~ " Flower SuperNode section. If you "
#~ "have not already done so, please "
#~ "follow the `SuperNode Prerequisites`_ before"
#~ " proceeding."
#~ msgstr ""

#~ msgid "Creating a ServerApp Dockerfile"
#~ msgstr ""

#~ msgid ""
#~ "First, we need to create a "
#~ "Dockerfile in the directory where the"
#~ " ``ServerApp`` code is located. If "
#~ "you use the ``quickstart-pytorch`` "
#~ "example, create a new file called "
#~ "``Dockerfile.serverapp`` in ``examples/quickstart-"
#~ "pytorch``."
#~ msgstr ""

#~ msgid ""
#~ "The ``Dockerfile.serverapp`` contains the "
#~ "instructions that assemble the ServerApp "
#~ "image."
#~ msgstr ""

#~ msgid ""
#~ "In the first two lines, we "
#~ "instruct Docker to use the ServerApp "
#~ "image tagged ``1.8.0`` as a base "
#~ "image and set our working directory "
#~ "to ``/app``. The following instructions "
#~ "will now be executed in the "
#~ "``/app`` directory. In the last two "
#~ "lines, we copy the ``server.py`` module"
#~ " into the image and set the "
#~ "entry point to ``flower-server-app`` "
#~ "with the argument ``server:app``. The "
#~ "argument is the object reference of "
#~ "the ServerApp (``<module>:<attribute>``) that "
#~ "will be run inside the ServerApp "
#~ "container."
#~ msgstr ""

#~ msgid "Building the ServerApp Docker image"
#~ msgstr "Démarrer le serveur"

#~ msgid ""
#~ "Next, we build the ServerApp Docker "
#~ "image by running the following command"
#~ " in the directory where Dockerfile "
#~ "and ServerApp code are located."
#~ msgstr ""

#~ msgid ""
#~ "We gave the image the name "
#~ "``flwr_serverapp``, and the tag ``0.0.1``. "
#~ "Remember that the here chosen values "
#~ "only serve as an example. You can"
#~ " change them to your needs."
#~ msgstr ""

#~ msgid "Running the ServerApp Docker image"
#~ msgstr "Démarrer le serveur"

#~ msgid "Now that we have built the ServerApp image, we can finally run it."
#~ msgstr ""

#~ msgid "``flwr_serverapp:0.0.1``: The name the tag of the Docker image to use."
#~ msgstr ""

#~ msgid ""
#~ "``--superlink 192.168.1.100:9091``: This option "
#~ "specifies the address of the SuperLinks"
#~ " Driver"
#~ msgstr ""

#~ msgid ""
#~ "To test running Flower locally, you "
#~ "can create a `bridge network "
#~ "<https://docs.docker.com/network/network-tutorial-"
#~ "standalone/#use-user-defined-bridge-"
#~ "networks>`__, use the ``--network`` argument"
#~ " and pass the name of the "
#~ "Docker network to run your ServerApps."
#~ msgstr ""

#~ msgid ""
#~ "Any argument that comes after the "
#~ "tag is passed to the Flower "
#~ "ServerApp binary. To see all available"
#~ " flags that the ServerApp supports, "
#~ "run:"
#~ msgstr ""

#~ msgid ""
#~ "To enable SSL, we will need to "
#~ "mount a PEM-encoded root certificate "
#~ "into your ServerApp container."
#~ msgstr ""

#~ msgid ""
#~ "Assuming the certificate already exists "
#~ "locally, we can use the flag "
#~ "``--volume`` to mount the local "
#~ "certificate into the container's ``/app/`` "
#~ "directory. This allows the ServerApp to"
#~ " access the certificate within the "
#~ "container. Use the ``--root-certificates`` "
#~ "flags when starting the container."
#~ msgstr ""

#~ msgid "Run with root user privileges"
#~ msgstr ""

#~ msgid ""
#~ "Flower Docker images, by default, run"
#~ " with a non-root user "
#~ "(username/groupname: ``app``, UID/GID: ``49999``)."
#~ " Using root user is not recommended"
#~ " unless it is necessary for specific"
#~ " tasks during the build process. "
#~ "Always make sure to run the "
#~ "container as a non-root user in"
#~ " production to maintain security best "
#~ "practices."
#~ msgstr ""

#~ msgid "**Run a container with root user privileges**"
#~ msgstr ""

#~ msgid "**Run the build process with root user privileges**"
#~ msgstr ""

#~ msgid "Using a different Flower version"
#~ msgstr ""

#~ msgid "Pinning a Docker image to a specific version"
#~ msgstr ""

#~ msgid ""
#~ "It may happen that we update the"
#~ " images behind the tags. Such updates"
#~ " usually include security updates of "
#~ "system dependencies that should not "
#~ "change the functionality of Flower. "
#~ "However, if you want to ensure "
#~ "that you always use the same "
#~ "image, you can specify the hash of"
#~ " the image instead of the tag."
#~ msgstr ""

#~ msgid ""
#~ "The following command returns the "
#~ "current image hash referenced by the "
#~ "``superlink:1.8.0`` tag:"
#~ msgstr ""

#~ msgid "Next, we can pin the hash when running a new SuperLink container:"
#~ msgstr ""

#~ msgid ""
#~ "To set a variable inside a Docker"
#~ " container, you can use the ``-e "
#~ "<name>=<value>`` flag."
#~ msgstr ""

#~ msgid ""
#~ "This approach consists of two seprate"
#~ " phases: clipping of the updates and"
#~ " adding noise to the aggregated "
#~ "model. For the clipping phase, Flower"
#~ " framework has made it possible to"
#~ " decide whether to perform clipping "
#~ "on the server side or the client"
#~ " side."
#~ msgstr ""

#~ msgid ":py:obj:`flwr.client <flwr.client>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`flwr.common <flwr.common>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`flwr.server <flwr.server>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`flwr.simulation <flwr.simulation>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`run_client_app <flwr.client.run_client_app>`\\ \\(\\)"
#~ msgstr ""

#~ msgid ":py:obj:`run_supernode <flwr.client.run_supernode>`\\ \\(\\)"
#~ msgstr "serveur.stratégie.Stratégie"

#~ msgid ":py:obj:`Context <flwr.common.Context>`\\ \\(state\\)"
#~ msgstr ""

#~ msgid "State of your run."
#~ msgstr ""

#~ msgid "Metrics record."
#~ msgstr ""

#~ msgid ""
#~ "Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
#~ "[:py:class:`str`, :py:class:`int` | "
#~ ":py:class:`float` | :py:class:`str` | "
#~ ":py:class:`bytes` | :py:class:`bool` | "
#~ ":py:class:`~typing.List`\\ [:py:class:`int`] | "
#~ ":py:class:`~typing.List`\\ [:py:class:`float`] | "
#~ ":py:class:`~typing.List`\\ [:py:class:`str`] | "
#~ ":py:class:`~typing.List`\\ [:py:class:`bytes`] | "
#~ ":py:class:`~typing.List`\\ [:py:class:`bool`]]"
#~ msgstr ""

#~ msgid "Remove all items from R."
#~ msgstr ""

#~ msgid ":py:obj:`get <flwr.common.ConfigsRecord.get>`\\ \\(k\\[\\,d\\]\\)"
#~ msgstr ""

#~ msgid "d defaults to None."
#~ msgstr ""

#~ msgid "Update R from dict/iterable E and F."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`RUN_DRIVER_API_ENTER "
#~ "<flwr.common.EventType.RUN_DRIVER_API_ENTER>`\\"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`RUN_DRIVER_API_LEAVE "
#~ "<flwr.common.EventType.RUN_DRIVER_API_LEAVE>`\\"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`RUN_FLEET_API_ENTER "
#~ "<flwr.common.EventType.RUN_FLEET_API_ENTER>`\\"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`RUN_FLEET_API_LEAVE "
#~ "<flwr.common.EventType.RUN_FLEET_API_LEAVE>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`DRIVER_CONNECT <flwr.common.EventType.DRIVER_CONNECT>`\\"
#~ msgstr ""

#~ msgid ":py:obj:`DRIVER_DISCONNECT <flwr.common.EventType.DRIVER_DISCONNECT>`\\"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`START_DRIVER_ENTER "
#~ "<flwr.common.EventType.START_DRIVER_ENTER>`\\"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`START_DRIVER_LEAVE "
#~ "<flwr.common.EventType.START_DRIVER_LEAVE>`\\"
#~ msgstr ""

#~ msgid ""
#~ "An identifier that can be used "
#~ "when loading a particular data partition"
#~ " for a ClientApp. Making use of "
#~ "this identifier is more relevant when"
#~ " conducting simulations."
#~ msgstr ""

#~ msgid ":py:obj:`partition_id <flwr.common.Metadata.partition_id>`\\"
#~ msgstr ""

#~ msgid "An identifier telling which data partition a ClientApp should use."
#~ msgstr ""

#~ msgid ""
#~ "Bases: :py:class:`~flwr.common.record.typeddict.TypedDict`\\ "
#~ "[:py:class:`str`, :py:class:`int` | "
#~ ":py:class:`float` | :py:class:`~typing.List`\\ "
#~ "[:py:class:`int`] | :py:class:`~typing.List`\\ "
#~ "[:py:class:`float`]]"
#~ msgstr ""

#~ msgid ":py:obj:`get <flwr.common.MetricsRecord.get>`\\ \\(k\\[\\,d\\]\\)"
#~ msgstr ""

#~ msgid ""
#~ "A dataclass storing named Arrays in "
#~ "order. This means that it holds "
#~ "entries as an OrderedDict[str, Array]. "
#~ "ParametersRecord objects can be viewed "
#~ "as an equivalent to PyTorch's "
#~ "state_dict, but holding serialised tensors "
#~ "instead."
#~ msgstr ""

#~ msgid ":py:obj:`get <flwr.common.ParametersRecord.get>`\\ \\(k\\[\\,d\\]\\)"
#~ msgstr ""

#~ msgid ":py:obj:`run_server_app <flwr.server.run_server_app>`\\ \\(\\)"
#~ msgstr ""

#~ msgid ":py:obj:`run_superlink <flwr.server.run_superlink>`\\ \\(\\)"
#~ msgstr ""

#~ msgid "Run Flower SuperLink (Driver API and Fleet API)."
#~ msgstr "flower-fleet-api"

#~ msgid ""
#~ ":py:obj:`LegacyContext <flwr.server.LegacyContext>`\\ "
#~ "\\(state\\[\\, config\\, strategy\\, ...\\]\\)"
#~ msgstr ""

#~ msgid "run\\_driver\\_api"
#~ msgstr "flower-driver-api"

#~ msgid "run\\_fleet\\_api"
#~ msgstr ""

#~ msgid ""
#~ "The protocol involves four main stages:"
#~ " - 'setup': Send SecAgg+ configuration "
#~ "to clients and collect their public "
#~ "keys. - 'share keys': Broadcast public"
#~ " keys among clients and collect "
#~ "encrypted secret"
#~ msgstr ""

#~ msgid "key shares."
#~ msgstr ""

#~ msgid ""
#~ "The protocol involves four main stages:"
#~ " - 'setup': Send SecAgg configuration "
#~ "to clients and collect their public "
#~ "keys. - 'share keys': Broadcast public"
#~ " keys among clients and collect "
#~ "encrypted secret"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`start_simulation <flwr.simulation.start_simulation>`\\"
#~ " \\(\\*\\, client\\_fn\\[\\, ...\\]\\)"
#~ msgstr ""

#~ msgid ""
#~ "'A dictionary, e.g {\"<keyA>\": <value>, "
#~ "\"<keyB>\": <value>} to configure a "
#~ "backend. Values supported in <value> are"
#~ " those included by "
#~ "`flwr.common.typing.ConfigsRecordValues`."
#~ msgstr ""

#~ msgid ""
#~ "When diabled, only INFO, WARNING and "
#~ "ERROR log messages will be shown. "
#~ "If enabled, DEBUG-level logs will "
#~ "be displayed."
#~ msgstr ""

#~ msgid ""
#~ "A function creating client instances. "
#~ "The function must take a single "
#~ "`str` argument called `cid`. It should"
#~ " return a single client instance of"
#~ " type Client. Note that the created"
#~ " client instances are ephemeral and "
#~ "will often be destroyed after a "
#~ "single method invocation. Since client "
#~ "instances are not long-lived, they "
#~ "should not attempt to carry state "
#~ "over method invocations. Any state "
#~ "required by the instance (model, "
#~ "dataset, hyperparameters, ...) should be "
#~ "(re-)created in either the call to "
#~ "`client_fn` or the call to any of"
#~ " the client methods (e.g., load "
#~ "evaluation data in the `evaluate` method"
#~ " itself)."
#~ msgstr ""

#~ msgid ""
#~ "In this tutorial we will learn how"
#~ " to train a Convolutional Neural "
#~ "Network on CIFAR10 using Flower and "
#~ "PyTorch."
#~ msgstr ""
#~ "Dans ce tutoriel, nous allons apprendre"
#~ " à entraîner un réseau neuronal "
#~ "convolutif sur CIFAR10 à l'aide de "
#~ "Flower et PyTorch."

#~ msgid ""
#~ "*Clients* are responsible for generating "
#~ "individual weight-updates for the model"
#~ " based on their local datasets. These"
#~ " updates are then sent to the "
#~ "*server* which will aggregate them to"
#~ " produce a better model. Finally, the"
#~ " *server* sends this improved version "
#~ "of the model back to each "
#~ "*client*. A complete cycle of weight "
#~ "updates is called a *round*."
#~ msgstr ""
#~ "*Les clients* sont chargés de générer"
#~ " des mises à jour de poids "
#~ "individuelles pour le modèle en fonction"
#~ " de leurs ensembles de données "
#~ "locales. Ces mises à jour sont "
#~ "ensuite envoyées au *serveur* qui les"
#~ " agrège pour produire un meilleur "
#~ "modèle. Enfin, le *serveur* renvoie "
#~ "cette version améliorée du modèle à "
#~ "chaque *client*. Un cycle complet de "
#~ "mises à jour de poids s'appelle un"
#~ " *round*."

#~ msgid ""
#~ "Now that we have a rough idea "
#~ "of what is going on, let's get "
#~ "started. We first need to install "
#~ "Flower. You can do this by running"
#~ " :"
#~ msgstr ""
#~ "Maintenant que nous avons une idée "
#~ "générale de ce qui se passe, "
#~ "commençons. Nous devons d'abord installer "
#~ "Flower. Tu peux le faire en "
#~ "exécutant :"

#~ msgid ""
#~ "Since we want to use PyTorch to"
#~ " solve a computer vision task, let's"
#~ " go ahead and install PyTorch and "
#~ "the **torchvision** library:"
#~ msgstr ""
#~ "Puisque nous voulons utiliser PyTorch "
#~ "pour résoudre une tâche de vision "
#~ "par ordinateur, allons-y et installons "
#~ "PyTorch et la bibliothèque **torchvision** "
#~ ":"

#~ msgid ""
#~ "Now that we have all our "
#~ "dependencies installed, let's run a "
#~ "simple distributed training with two "
#~ "clients and one server. Our training "
#~ "procedure and network architecture are "
#~ "based on PyTorch's `Deep Learning with"
#~ " PyTorch "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_."
#~ msgstr ""
#~ "Maintenant que nous avons installé "
#~ "toutes nos dépendances, lançons une "
#~ "formation distribuée simple avec deux "
#~ "clients et un serveur. Notre procédure"
#~ " de formation et l'architecture de "
#~ "notre réseau sont basées sur `Deep "
#~ "Learning with PyTorch "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_"
#~ " de PyTorch."

#~ msgid ""
#~ "In a file called :code:`client.py`, "
#~ "import Flower and PyTorch related "
#~ "packages:"
#~ msgstr ""
#~ "Dans un fichier appelé :code:`client.py`, "
#~ "importe Flower et les paquets liés "
#~ "à PyTorch :"

#~ msgid "In addition, we define the device allocation in PyTorch with:"
#~ msgstr ""
#~ "En outre, nous définissons l'attribution "
#~ "des appareils dans PyTorch avec :"

#~ msgid ""
#~ "We use PyTorch to load CIFAR10, a"
#~ " popular colored image classification "
#~ "dataset for machine learning. The "
#~ "PyTorch :code:`DataLoader()` downloads the "
#~ "training and test data that are "
#~ "then normalized."
#~ msgstr ""
#~ "Nous utilisons PyTorch pour charger "
#~ "CIFAR10, un ensemble de données de "
#~ "classification d'images colorées populaire "
#~ "pour l'apprentissage automatique. Le "
#~ ":code:`DataLoader()` de PyTorch télécharge les"
#~ " données d'entraînement et de test "
#~ "qui sont ensuite normalisées."

#~ msgid ""
#~ "Define the loss and optimizer with "
#~ "PyTorch. The training of the dataset "
#~ "is done by looping over the "
#~ "dataset, measure the corresponding loss "
#~ "and optimize it."
#~ msgstr ""
#~ "Définis la perte et l'optimiseur avec"
#~ " PyTorch L'entraînement de l'ensemble de"
#~ " données se fait en bouclant sur "
#~ "l'ensemble de données, en mesurant la"
#~ " perte correspondante et en l'optimisant."

#~ msgid ""
#~ "Define then the validation of the  "
#~ "machine learning network. We loop over"
#~ " the test set and measure the "
#~ "loss and accuracy of the test set."
#~ msgstr ""
#~ "Définis ensuite la validation du réseau"
#~ " d'apprentissage automatique. Nous passons "
#~ "en boucle sur l'ensemble de test "
#~ "et mesurons la perte et la "
#~ "précision de l'ensemble de test."

#~ msgid ""
#~ "After defining the training and testing"
#~ " of a PyTorch machine learning model,"
#~ " we use the functions for the "
#~ "Flower clients."
#~ msgstr ""
#~ "Après avoir défini l'entraînement et le"
#~ " test d'un modèle d'apprentissage "
#~ "automatique PyTorch, nous utilisons les "
#~ "fonctions pour les clients Flower."

#~ msgid ""
#~ "The Flower clients will use a "
#~ "simple CNN adapted from 'PyTorch: A "
#~ "60 Minute Blitz':"
#~ msgstr ""
#~ "Les clients de Flower utiliseront un "
#~ "CNN simple adapté de \"PyTorch : A"
#~ " 60 Minute Blitz\" :"

#~ msgid ""
#~ "After loading the data set with "
#~ ":code:`load_data()` we define the Flower "
#~ "interface."
#~ msgstr ""
#~ "Après avoir chargé l'ensemble des "
#~ "données avec :code:`load_data()`, nous "
#~ "définissons l'interface Flower."

#~ msgid ""
#~ "Flower provides a convenience class "
#~ "called :code:`NumPyClient` which makes it "
#~ "easier to implement the :code:`Client` "
#~ "interface when your workload uses "
#~ "PyTorch. Implementing :code:`NumPyClient` usually"
#~ " means defining the following methods "
#~ "(:code:`set_parameters` is optional though):"
#~ msgstr ""
#~ "Flower fournit une classe de commodité"
#~ " appelée :code:`NumPyClient` qui facilite "
#~ "la mise en œuvre de l'interface "
#~ ":code:`Client` lorsque ta charge de "
#~ "travail utilise PyTorch. Mettre en œuvre"
#~ " :code:`NumPyClient` signifie généralement "
#~ "définir les méthodes suivantes "
#~ "(:code:`set_parameters` est cependant facultatif)"
#~ " :"

#~ msgid "which can be implemented in the following way:"
#~ msgstr "qui peut être mis en œuvre de la manière suivante :"

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated learning "
#~ "system. The full `source code "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "pytorch/client.py>`_ for this example can "
#~ "be found in :code:`examples/quickstart-"
#~ "pytorch`."
#~ msgstr ""
#~ "Félicitations ! Tu as réussi à "
#~ "construire et à faire fonctionner ton"
#~ " premier système d'apprentissage fédéré. Le"
#~ " code source complet "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "pytorch/client.py>`_ de cet exemple se "
#~ "trouve dans :code:`examples/quickstart-pytorch`."

#~ msgid ""
#~ "In this example, we split the "
#~ "dataset into two partitions with uniform"
#~ " distribution (:code:`IidPartitioner(num_partitions=2)`). "
#~ "Then, we load the partition for "
#~ "the given client based on "
#~ ":code:`node_id`:"
#~ msgstr ""

#~ msgid ""
#~ "The :code:`self.bst` is used to keep "
#~ "the Booster objects that remain "
#~ "consistent across rounds, allowing them "
#~ "to store predictions from trees "
#~ "integrated in earlier rounds and "
#~ "maintain other essential data structures "
#~ "for training."
#~ msgstr ""

#~ msgid ""
#~ "In :code:`fit`, at the first round, "
#~ "we call :code:`xgb.train()` to build up"
#~ " the first set of trees. the "
#~ "returned Booster object and config are"
#~ " stored in :code:`self.bst` and "
#~ ":code:`self.config`, respectively. From the "
#~ "second round, we load the global "
#~ "model sent from server to "
#~ ":code:`self.bst`, and then update model "
#~ "weights on local training data with "
#~ "function :code:`local_boost` as follows:"
#~ msgstr ""

#~ msgid ""
#~ "Given :code:`num_local_round`, we update trees"
#~ " by calling :code:`self.bst.update` method. "
#~ "After training, the last "
#~ ":code:`N=num_local_round` trees will be "
#~ "extracted to send to the server."
#~ msgstr ""

#~ msgid ""
#~ "In :code:`evaluate`, we call "
#~ ":code:`self.bst.eval_set` function to conduct "
#~ "evaluation on valid set. The AUC "
#~ "value will be returned."
#~ msgstr ""

#~ msgid ""
#~ "We use two clients for this "
#~ "example. An :code:`evaluate_metrics_aggregation` "
#~ "function is defined to collect and "
#~ "wighted average the AUC values from "
#~ "clients."
#~ msgstr ""

#~ msgid ""
#~ "Let's now create the Federated Dataset"
#~ " abstraction that from ``flwr-datasets``"
#~ " that partitions the CIFAR-10. We "
#~ "will create small training and test "
#~ "set for each edge device and wrap"
#~ " each of them into a PyTorch "
#~ "``DataLoader``:"
#~ msgstr ""

#~ msgid "Implementing a Flower client"
#~ msgstr "Mise en place d'un client Flower"

#~ msgid ""
#~ "To implement the Flower client, we "
#~ "create a subclass of "
#~ "``flwr.client.NumPyClient`` and implement the "
#~ "three methods ``get_parameters``, ``fit``, and"
#~ " ``evaluate``:"
#~ msgstr ""
#~ "Pour mettre en œuvre le client "
#~ "Flower, nous créons une sous-classe "
#~ "de ``flwr.client.NumPyClient`` et mettons en"
#~ " œuvre les trois méthodes "
#~ "``get_parameters``, ``fit`` et ``evaluate`` :"

#~ msgid ""
#~ "The function ``start_simulation`` accepts a"
#~ " number of arguments, amongst them "
#~ "the ``client_fn`` used to create "
#~ "``FlowerClient`` instances, the number of "
#~ "clients to simulate (``num_clients``), the "
#~ "number of federated learning rounds "
#~ "(``num_rounds``), and the strategy. The "
#~ "strategy encapsulates the federated learning"
#~ " approach/algorithm, for example, *Federated "
#~ "Averaging* (FedAvg)."
#~ msgstr ""
#~ "La fonction ``start_simulation`` accepte un"
#~ " certain nombre d'arguments, parmi lesquels"
#~ " le ``client_fn`` utilisé pour créer "
#~ "les instances ``FlowerClient``, le nombre "
#~ "de clients à simuler (``num_clients``), "
#~ "le nombre de tours d'apprentissage "
#~ "fédéré (``num_rounds``), et la stratégie. "
#~ "La stratégie encapsule l'approche/algorithme "
#~ "d'apprentissage fédéré, par exemple, "
#~ "*Federated Averaging* (FedAvg)."

#~ msgid ""
#~ "The only thing left to do is "
#~ "to tell the strategy to call this"
#~ " function whenever it receives evaluation"
#~ " metric dictionaries from the clients:"
#~ msgstr ""
#~ "La seule chose qui reste à faire"
#~ " est d'indiquer à la stratégie "
#~ "d'appeler cette fonction chaque fois "
#~ "qu'elle reçoit des dictionnaires de "
#~ "métriques d'évaluation de la part des"
#~ " clients :"

#~ msgid "|93b02017c78049bbbd5ae456dcb2c91b|"
#~ msgstr ""

#~ msgid "|01471150fd5144c080a176b43e92a3ff|"
#~ msgstr ""

#~ msgid "|9bc21c7dbd17444a8f070c60786e3484|"
#~ msgstr ""

#~ msgid "|3047bbce54b34099ae559963d0420d79|"
#~ msgstr ""

#~ msgid "|e9f8ce948593444fb838d2f354c7ec5d|"
#~ msgstr ""

#~ msgid "|c24c1478b30e4f74839208628a842d1e|"
#~ msgstr ""

#~ msgid "|1b3613d7a58847b59e1d3180802dbc09|"
#~ msgstr ""

#~ msgid "|9980b5213db547d0b8024a50992b9e3f|"
#~ msgstr ""

#~ msgid "|c7afb4c92d154bfaa5e8cb9a150e17f1|"
#~ msgstr ""

#~ msgid "|032eb6fed6924ac387b9f13854919196|"
#~ msgstr ""

#~ msgid "|fbf225add7fd4df5a9bf25a95597d954|"
#~ msgstr ""

#~ msgid "|7efbe3d29d8349b89594e8947e910525|"
#~ msgstr ""

#~ msgid "|329fb3c04c744eda83bb51fa444c2266|"
#~ msgstr ""

#~ msgid "|c00bf2750bc24d229737a0fe1395f0fc|"
#~ msgstr ""

#~ msgid "run\\_client\\_app"
#~ msgstr "client"

#~ msgid "run\\_supernode"
#~ msgstr "flower-superlink"

#~ msgid "Retrieve the corresponding layout by the string key."
#~ msgstr ""

#~ msgid ""
#~ "When there isn't an exact match, "
#~ "all the existing keys in the "
#~ "layout map will be treated as a"
#~ " regex and map against the input "
#~ "key again. The first match will be"
#~ " returned, based on the key insertion"
#~ " order. Return None if there isn't"
#~ " any match found."
#~ msgstr ""

#~ msgid "the string key as the query for the layout."
#~ msgstr ""

#~ msgid "Corresponding layout based on the query."
#~ msgstr ""

#~ msgid "run\\_server\\_app"
#~ msgstr "serveur"

#~ msgid "run\\_superlink"
#~ msgstr "flower-superlink"

#~ msgid ""
#~ ":py:obj:`start_simulation <flwr.simulation.start_simulation>`\\"
#~ " \\(\\*\\, client\\_fn\\, num\\_clients\\)"
#~ msgstr ""

#~ msgid ""
#~ "A function creating `Client` instances. "
#~ "The function must have the signature "
#~ "`client_fn(context: Context). It should return"
#~ " a single client instance of type "
#~ "`Client`. Note that the created client"
#~ " instances are ephemeral and will "
#~ "often be destroyed after a single "
#~ "method invocation. Since client instances "
#~ "are not long-lived, they should "
#~ "not attempt to carry state over "
#~ "method invocations. Any state required "
#~ "by the instance (model, dataset, "
#~ "hyperparameters, ...) should be (re-)created"
#~ " in either the call to `client_fn`"
#~ " or the call to any of the "
#~ "client methods (e.g., load evaluation "
#~ "data in the `evaluate` method itself)."
#~ msgstr ""

#~ msgid "The total number of clients in this simulation."
#~ msgstr ""

#~ msgid ""
#~ "UNSUPPORTED, WILL BE REMOVED. USE "
#~ "`num_clients` INSTEAD. List `client_id`s for"
#~ " each client. This is only required"
#~ " if `num_clients` is not set. Setting"
#~ " both `num_clients` and `clients_ids` with"
#~ " `len(clients_ids)` not equal to "
#~ "`num_clients` generates an error. Using "
#~ "this argument will raise an error."
#~ msgstr ""

#~ msgid ""
#~ "CPU and GPU resources for a single"
#~ " client. Supported keys are `num_cpus` "
#~ "and `num_gpus`. To understand the GPU"
#~ " utilization caused by `num_gpus`, as "
#~ "well as using custom resources, please"
#~ " consult the Ray documentation."
#~ msgstr ""

#~ msgid ""
#~ "Optionally specify the type of actor "
#~ "to use. The actor object, which "
#~ "persists throughout the simulation, will "
#~ "be the process in charge of "
#~ "executing a ClientApp wrapping input "
#~ "argument `client_fn`."
#~ msgstr ""

#~ msgid ""
#~ "If you want to create your own "
#~ "Actor classes, you might need to "
#~ "pass some input argument. You can "
#~ "use this dictionary for such purpose."
#~ msgstr ""

#~ msgid ""
#~ "(default: \"DEFAULT\") Optional string "
#~ "(\"DEFAULT\" or \"SPREAD\") for the VCE"
#~ " to choose in which node the "
#~ "actor is placed. If you are an "
#~ "advanced user needed more control you"
#~ " can use lower-level scheduling "
#~ "strategies to pin actors to specific "
#~ "compute nodes (e.g. via "
#~ "NodeAffinitySchedulingStrategy). Please note this"
#~ " is an advanced feature. For all "
#~ "details, please refer to the Ray "
#~ "documentation: https://docs.ray.io/en/latest/ray-"
#~ "core/scheduling/index.html"
#~ msgstr ""

#~ msgid ""
#~ "Check out this Federated Learning "
#~ "quickstart tutorial for using Flower "
#~ "with FastAI to train a vision "
#~ "model on CIFAR-10."
#~ msgstr ""

#~ msgid "Let's build a federated learning system using fastai and Flower!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " en utilisant fastai et Flower !"

#~ msgid ""
#~ "Please refer to the `full code "
#~ "example <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-fastai>`_ to learn more."
#~ msgstr ""
#~ "Réfère-toi à l'exemple de code "
#~ "complet <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-fastai>`_ pour en savoir plus."

#~ msgid ""
#~ "Check out this Federating Learning "
#~ "quickstart tutorial for using Flower "
#~ "with HuggingFace Transformers in order "
#~ "to fine-tune an LLM."
#~ msgstr ""

#~ msgid ""
#~ "Let's build a federated learning system"
#~ " using Hugging Face Transformers and "
#~ "Flower!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " à l'aide des transformateurs Hugging "
#~ "Face et de Flower !"

#~ msgid "Dependencies"
#~ msgstr "Dépendances"

#~ msgid ""
#~ "To follow along this tutorial you "
#~ "will need to install the following "
#~ "packages: :code:`datasets`, :code:`evaluate`, "
#~ ":code:`flwr`, :code:`torch`, and "
#~ ":code:`transformers`. This can be done "
#~ "using :code:`pip`:"
#~ msgstr ""
#~ "Pour suivre ce tutoriel, tu devras "
#~ "installer les paquets suivants : "
#~ ":code:`datasets`, :code:`evaluate`, :code:`flwr`, "
#~ ":code:`torch`, et :code:`transformers`. Cela "
#~ "peut être fait en utilisant :code:`pip`"
#~ " :"

#~ msgid "Standard Hugging Face workflow"
#~ msgstr "Flux de travail standard pour le visage"

#~ msgid "Handling the data"
#~ msgstr "Traitement des données"

#~ msgid ""
#~ "To fetch the IMDB dataset, we will"
#~ " use Hugging Face's :code:`datasets` "
#~ "library. We then need to tokenize "
#~ "the data and create :code:`PyTorch` "
#~ "dataloaders, this is all done in "
#~ "the :code:`load_data` function:"
#~ msgstr ""
#~ "Pour récupérer le jeu de données "
#~ "IMDB, nous utiliserons la bibliothèque "
#~ ":code:`datasets` de Hugging Face. Nous "
#~ "devons ensuite tokeniser les données et"
#~ " créer des :code:`PyTorch` dataloaders, ce"
#~ " qui est fait dans la fonction "
#~ ":code:`load_data` :"

#~ msgid "Training and testing the model"
#~ msgstr "Former et tester le modèle"

#~ msgid ""
#~ "Once we have a way of creating "
#~ "our trainloader and testloader, we can"
#~ " take care of the training and "
#~ "testing. This is very similar to "
#~ "any :code:`PyTorch` training or testing "
#~ "loop:"
#~ msgstr ""
#~ "Une fois que nous avons trouvé un"
#~ " moyen de créer notre trainloader et"
#~ " notre testloader, nous pouvons nous "
#~ "occuper de l'entraînement et du test."
#~ " C'est très similaire à n'importe "
#~ "quelle boucle d'entraînement ou de test"
#~ " :code:`PyTorch` :"

#~ msgid "Creating the model itself"
#~ msgstr "Créer le modèle lui-même"

#~ msgid ""
#~ "To create the model itself, we "
#~ "will just load the pre-trained "
#~ "distillBERT model using Hugging Face’s "
#~ ":code:`AutoModelForSequenceClassification` :"
#~ msgstr ""
#~ "Pour créer le modèle lui-même, "
#~ "nous allons simplement charger le modèle"
#~ " distillBERT pré-entraîné en utilisant le"
#~ " :code:`AutoModelForSequenceClassification` de Hugging"
#~ " Face :"

#~ msgid "Creating the IMDBClient"
#~ msgstr "Création du client IMDBC"

#~ msgid ""
#~ "To federate our example to multiple "
#~ "clients, we first need to write "
#~ "our Flower client class (inheriting from"
#~ " :code:`flwr.client.NumPyClient`). This is very"
#~ " easy, as our model is a "
#~ "standard :code:`PyTorch` model:"
#~ msgstr ""
#~ "Pour fédérer notre exemple à plusieurs"
#~ " clients, nous devons d'abord écrire "
#~ "notre classe de client Flower (héritant"
#~ " de :code:`flwr.client.NumPyClient`). C'est très"
#~ " facile, car notre modèle est un "
#~ "modèle :code:`PyTorch` standard :"

#~ msgid ""
#~ "The :code:`get_parameters` function lets the"
#~ " server get the client's parameters. "
#~ "Inversely, the :code:`set_parameters` function "
#~ "allows the server to send its "
#~ "parameters to the client. Finally, the"
#~ " :code:`fit` function trains the model "
#~ "locally for the client, and the "
#~ ":code:`evaluate` function tests the model "
#~ "locally and returns the relevant "
#~ "metrics."
#~ msgstr ""
#~ "La fonction :code:`get_parameters` permet au"
#~ " serveur d'obtenir les paramètres du "
#~ "client. Inversement, la fonction "
#~ ":code:`set_parameters` permet au serveur "
#~ "d'envoyer ses paramètres au client. "
#~ "Enfin, la fonction :code:`fit` forme le"
#~ " modèle localement pour le client, et"
#~ " la fonction :code:`evaluate` teste le "
#~ "modèle localement et renvoie les mesures"
#~ " correspondantes."

#~ msgid "Starting the server"
#~ msgstr "Démarrer le serveur"

#~ msgid ""
#~ "Now that we have a way to "
#~ "instantiate clients, we need to create"
#~ " our server in order to aggregate "
#~ "the results. Using Flower, this can "
#~ "be done very easily by first "
#~ "choosing a strategy (here, we are "
#~ "using :code:`FedAvg`, which will define "
#~ "the global weights as the average "
#~ "of all the clients' weights at "
#~ "each round) and then using the "
#~ ":code:`flwr.server.start_server` function:"
#~ msgstr ""
#~ "Maintenant que nous avons un moyen "
#~ "d'instancier les clients, nous devons "
#~ "créer notre serveur afin d'agréger les"
#~ " résultats. Avec Flower, cela peut "
#~ "être fait très facilement en choisissant"
#~ " d'abord une stratégie (ici, nous "
#~ "utilisons :code:`FedAvg`, qui définira les "
#~ "poids globaux comme la moyenne des "
#~ "poids de tous les clients à chaque"
#~ " tour) et en utilisant ensuite la "
#~ "fonction :code:`flwr.server.start_server` :"

#~ msgid ""
#~ "The :code:`weighted_average` function is there"
#~ " to provide a way to aggregate "
#~ "the metrics distributed amongst the "
#~ "clients (basically this allows us to "
#~ "display a nice average accuracy and "
#~ "loss for every round)."
#~ msgstr ""
#~ "La fonction :code:`weighted_average` est là"
#~ " pour fournir un moyen d'agréger les"
#~ " mesures réparties entre les clients "
#~ "(en gros, cela nous permet d'afficher"
#~ " une belle moyenne de précision et"
#~ " de perte pour chaque tour)."

#~ msgid "Putting everything together"
#~ msgstr "Tout assembler"

#~ msgid "We can now start client instances using:"
#~ msgstr ""
#~ "Nous pouvons maintenant démarrer des "
#~ "instances de clients en utilisant :"

#~ msgid ""
#~ "And they will be able to connect"
#~ " to the server and start the "
#~ "federated training."
#~ msgstr ""
#~ "Et ils pourront se connecter au "
#~ "serveur et démarrer la formation "
#~ "fédérée."

#~ msgid ""
#~ "If you want to check out "
#~ "everything put together, you should "
#~ "check out the `full code example "
#~ "<https://github.com/adap/flower/tree/main/examples/quickstart-"
#~ "huggingface>`_ ."
#~ msgstr ""
#~ "Si tu veux voir tout ce qui "
#~ "est mis ensemble, tu devrais consulter"
#~ " l'exemple de code complet : "
#~ "[https://github.com/adap/flower/tree/main/examples/quickstart-"
#~ "huggingface](https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-huggingface)."

#~ msgid ""
#~ "Of course, this is a very basic"
#~ " example, and a lot can be "
#~ "added or modified, it was just to"
#~ " showcase how simply we could "
#~ "federate a Hugging Face workflow using"
#~ " Flower."
#~ msgstr ""
#~ "Bien sûr, c'est un exemple très "
#~ "basique, et beaucoup de choses peuvent"
#~ " être ajoutées ou modifiées, il "
#~ "s'agissait juste de montrer avec quelle"
#~ " simplicité on pouvait fédérer un "
#~ "flux de travail Hugging Face à "
#~ "l'aide de Flower."

#~ msgid ""
#~ "Note that in this example we used"
#~ " :code:`PyTorch`, but we could have "
#~ "very well used :code:`TensorFlow`."
#~ msgstr ""
#~ "Notez que dans cet exemple, nous "
#~ "avons utilisé :code:`PyTorch`, mais nous "
#~ "aurions très bien pu utiliser "
#~ ":code:`TensorFlow`."

#~ msgid ""
#~ "Check out this Federated Learning "
#~ "quickstart tutorial for using Flower "
#~ "with PyTorch Lightning to train an "
#~ "Auto Encoder model on MNIST."
#~ msgstr ""

#~ msgid ""
#~ "Let's build a horizontal federated "
#~ "learning system using PyTorch Lightning "
#~ "and Flower!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " en utilisant PyTorch Lightning et "
#~ "Flower !"

#~ msgid ""
#~ "Please refer to the `full code "
#~ "example <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-pytorch-lightning>`_ to learn "
#~ "more."
#~ msgstr ""
#~ "Réfère-toi à l'exemple de code "
#~ "complet <https://github.com/adap/flower/tree/main/examples"
#~ "/quickstart-pytorch-lightning>`_ pour en "
#~ "savoir plus."

#~ msgid ""
#~ "Check out this Federated Learning "
#~ "quickstart tutorial for using Flower "
#~ "with TensorFlow to train a MobilNetV2"
#~ " model on CIFAR-10."
#~ msgstr ""

#~ msgid "Let's build a federated learning system in less than 20 lines of code!"
#~ msgstr ""
#~ "Construisons un système d'apprentissage fédéré"
#~ " en moins de 20 lignes de code"
#~ " !"

#~ msgid "Before Flower can be imported we have to install it:"
#~ msgstr "Avant de pouvoir importer une fleur, nous devons l'installer :"

#~ msgid ""
#~ "Since we want to use the Keras "
#~ "API of TensorFlow (TF), we have to"
#~ " install TF as well:"
#~ msgstr ""
#~ "Comme nous voulons utiliser l'API Keras"
#~ " de TensorFlow (TF), nous devons "
#~ "également installer TF :"

#~ msgid "Next, in a file called :code:`client.py`, import Flower and TensorFlow:"
#~ msgstr ""
#~ "Ensuite, dans un fichier appelé "
#~ ":code:`client.py`, importe Flower et "
#~ "TensorFlow :"

#~ msgid ""
#~ "We use the Keras utilities of TF"
#~ " to load CIFAR10, a popular colored"
#~ " image classification dataset for machine"
#~ " learning. The call to "
#~ ":code:`tf.keras.datasets.cifar10.load_data()` downloads "
#~ "CIFAR10, caches it locally, and then "
#~ "returns the entire training and test "
#~ "set as NumPy ndarrays."
#~ msgstr ""
#~ "Nous utilisons les utilitaires Keras de"
#~ " TF pour charger CIFAR10, un ensemble"
#~ " de données de classification d'images "
#~ "colorées populaire pour l'apprentissage "
#~ "automatique. L'appel à "
#~ ":code:`tf.keras.datasets.cifar10.load_data()` télécharge "
#~ "CIFAR10, le met en cache localement, "
#~ "puis renvoie l'ensemble d'entraînement et "
#~ "de test sous forme de NumPy "
#~ "ndarrays."

#~ msgid ""
#~ "Next, we need a model. For the "
#~ "purpose of this tutorial, we use "
#~ "MobilNetV2 with 10 output classes:"
#~ msgstr ""
#~ "Ensuite, nous avons besoin d'un modèle."
#~ " Pour les besoins de ce tutoriel, "
#~ "nous utilisons MobilNetV2 avec 10 "
#~ "classes de sortie :"

#~ msgid ""
#~ "The Flower server interacts with clients"
#~ " through an interface called "
#~ ":code:`Client`. When the server selects "
#~ "a particular client for training, it "
#~ "sends training instructions over the "
#~ "network. The client receives those "
#~ "instructions and calls one of the "
#~ ":code:`Client` methods to run your code"
#~ " (i.e., to train the neural network"
#~ " we defined earlier)."
#~ msgstr ""
#~ "Le serveur Flower interagit avec les "
#~ "clients par le biais d'une interface "
#~ "appelée :code:`Client`. Lorsque le serveur "
#~ "sélectionne un client particulier pour "
#~ "la formation, il envoie des instructions"
#~ " de formation sur le réseau. Le "
#~ "client reçoit ces instructions et "
#~ "appelle l'une des méthodes :code:`Client` "
#~ "pour exécuter ton code (c'est-à-dire "
#~ "pour former le réseau neuronal que "
#~ "nous avons défini plus tôt)."

#~ msgid ""
#~ "Flower provides a convenience class "
#~ "called :code:`NumPyClient` which makes it "
#~ "easier to implement the :code:`Client` "
#~ "interface when your workload uses Keras."
#~ " The :code:`NumPyClient` interface defines "
#~ "three methods which can be implemented"
#~ " in the following way:"
#~ msgstr ""
#~ "Flower fournit une classe de commodité"
#~ " appelée :code:`NumPyClient` qui facilite "
#~ "la mise en œuvre de l'interface "
#~ ":code:`Client` lorsque ta charge de "
#~ "travail utilise Keras. L'interface "
#~ ":code:`NumPyClient` définit trois méthodes qui"
#~ " peuvent être mises en œuvre de "
#~ "la manière suivante :"

#~ msgid ""
#~ "We can now create an instance of"
#~ " our class :code:`CifarClient` and add "
#~ "one line to actually run this "
#~ "client:"
#~ msgstr ""
#~ "Nous pouvons maintenant créer une "
#~ "instance de notre classe :code:`CifarClient`"
#~ " et ajouter une ligne pour exécuter"
#~ " ce client :"

#~ msgid ""
#~ "That's it for the client. We only"
#~ " have to implement :code:`Client` or "
#~ ":code:`NumPyClient` and call "
#~ ":code:`fl.client.start_client()`. If you implement"
#~ " a client of type :code:`NumPyClient` "
#~ "you'll need to first call its "
#~ ":code:`to_client()` method. The string "
#~ ":code:`\"[::]:8080\"` tells the client which"
#~ " server to connect to. In our "
#~ "case we can run the server and "
#~ "the client on the same machine, "
#~ "therefore we use :code:`\"[::]:8080\"`. If "
#~ "we run a truly federated workload "
#~ "with the server and clients running "
#~ "on different machines, all that needs"
#~ " to change is the :code:`server_address`"
#~ " we point the client at."
#~ msgstr ""
#~ "C'est tout pour le client. Il nous"
#~ " suffit d'implémenter :code:`Client` ou "
#~ ":code:`NumPyClient` et d'appeler "
#~ ":code:`fl.client.start_client()`. La chaîne "
#~ ":code:`\"[: :]:8080\"` indique au client "
#~ "à quel serveur se connecter. Dans "
#~ "notre cas, nous pouvons exécuter le "
#~ "serveur et le client sur la même"
#~ " machine, c'est pourquoi nous utilisons "
#~ ":code:`\"[: :]:8080\"`. Si nous exécutons "
#~ "une charge de travail véritablement "
#~ "fédérée avec le serveur et les "
#~ "clients fonctionnant sur des machines "
#~ "différentes, tout ce qui doit changer"
#~ " est l'adresse :code:`server_address` vers "
#~ "laquelle nous dirigeons le client."

#~ msgid "Each client will have its own dataset."
#~ msgstr "Chaque client aura son propre ensemble de données."

#~ msgid ""
#~ "You should now see how the "
#~ "training does in the very first "
#~ "terminal (the one that started the "
#~ "server):"
#~ msgstr ""
#~ "Tu devrais maintenant voir comment la"
#~ " formation se déroule dans le tout"
#~ " premier terminal (celui qui a "
#~ "démarré le serveur) :"

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated learning "
#~ "system. The full `source code "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "tensorflow/client.py>`_ for this can be "
#~ "found in :code:`examples/quickstart-"
#~ "tensorflow/client.py`."
#~ msgstr ""
#~ "Félicitations ! Tu as réussi à "
#~ "construire et à faire fonctionner ton"
#~ " premier système d'apprentissage fédéré. Le"
#~ " `code source complet "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "tensorflow/client.py>`_ pour cela se trouve"
#~ " dans :code:`examples/quickstart-tensorflow/client.py`."

#~ msgid "|e5918c1c06a4434bbe4bf49235e40059|"
#~ msgstr ""

#~ msgid "|c0165741bd1944f09ec55ce49032377d|"
#~ msgstr ""

#~ msgid "|0a0ac9427ac7487b8e52d75ed514f04e|"
#~ msgstr ""

#~ msgid "|5defee3ea4ca40d99fcd3e4ea045be25|"
#~ msgstr ""

#~ msgid "|74f26ca701254d3db57d7899bd91eb55|"
#~ msgstr ""

#~ msgid "|bda79f21f8154258a40e5766b2634ad7|"
#~ msgstr ""

#~ msgid "|89d30862e62e4f9989e193483a08680a|"
#~ msgstr ""

#~ msgid "|77e9918671c54b4f86e01369c0785ce8|"
#~ msgstr ""

#~ msgid "|7e4ccef37cc94148a067107b34eb7447|"
#~ msgstr ""

#~ msgid "|28e47e4cded14479a0846c8e5f22c872|"
#~ msgstr ""

#~ msgid "|4b8c5d1afa144294b76ffc76e4658a38|"
#~ msgstr ""

#~ msgid "|9dbdb3a0f6cb4a129fac863eaa414c17|"
#~ msgstr ""

#~ msgid "|81749d0ac0834c36a83bd38f433fea31|"
#~ msgstr ""

#~ msgid "|ed9aae51da70428eab7eef32f21e819e|"
#~ msgstr ""

#~ msgid "|e87b69b2ada74ea49412df16f4a0b9cc|"
#~ msgstr ""

#~ msgid "|33cacb7d985c4906b348515c1a5cd993|"
#~ msgstr ""

#~ msgid "|cc080a555947492fa66131dc3a967603|"
#~ msgstr ""

#~ msgid "|085c3e0fb8664c6aa06246636524b20b|"
#~ msgstr ""

#~ msgid "|bfe69c74e48c45d49b50251c38c2a019|"
#~ msgstr ""

#~ msgid "|ebbecd651f0348d99c6511ea859bf4ca|"
#~ msgstr ""

#~ msgid "|163117eb654a4273babba413cf8065f5|"
#~ msgstr ""

#~ msgid "|452ac3ba453b4cd1be27be1ba7560d64|"
#~ msgstr ""

#~ msgid "|f403fcd69e4e44409627e748b404c086|"
#~ msgstr ""

#~ msgid "|4b00fe63870145968f8443619a792a42|"
#~ msgstr ""

#~ msgid "|368378731066486fa4397e89bc6b870c|"
#~ msgstr ""

#~ msgid "|a66aa83d85bf4ffba7ed660b718066da|"
#~ msgstr ""

#~ msgid "|82324b9af72a4582a81839d55caab767|"
#~ msgstr ""

#~ msgid "|fbf2da0da3cc4f8ab3b3eff852d80c41|"
#~ msgstr ""

#~ msgid ""
#~ "Install `xz` (to install different "
#~ "Python versions) and `pandoc` to build"
#~ " the docs::"
#~ msgstr ""

#~ msgid ""
#~ "Ensure you system (Ubuntu 22.04+) is "
#~ "up-to-date, and you have all "
#~ "necessary packages::"
#~ msgstr ""

#~ msgid ""
#~ "Let's create the Python environment for"
#~ " all-things Flower. If you wish "
#~ "to use :code:`pyenv`, we provide two "
#~ "convenience scripts that you can use."
#~ " If you prefer using something else"
#~ " than :code:`pyenv`, create a new "
#~ "environment, activate and skip to the"
#~ " last point where all packages are"
#~ " installed."
#~ msgstr ""

#~ msgid ""
#~ "If in a hurry, bypass the hook "
#~ "using ``--no-verify`` with the ``git "
#~ "commit`` command. ::"
#~ msgstr ""

#~ msgid ""
#~ "Flower's documentation uses `Sphinx "
#~ "<https://www.sphinx-doc.org/>`_. There's no "
#~ "convenience script to re-build the "
#~ "documentation yet, but it's pretty "
#~ "easy::"
#~ msgstr ""

#~ msgid ""
#~ "Some quickstart examples may have "
#~ "limitations or requirements that prevent "
#~ "them from running on every environment."
#~ " For more information, please see "
#~ "`Limitations`_."
#~ msgstr ""

#~ msgid ""
#~ "Change the application code. For "
#~ "example, change the  ``seed`` in "
#~ "``quickstart_docker/task.py`` to ``43`` and "
#~ "save it:"
#~ msgstr ""

#~ msgid ":code:`fit`"
#~ msgstr ":code:`fit`"

#~ msgid ""
#~ "\\small\n"
#~ "\\frac{∆ \\times \\sqrt{2 \\times "
#~ "\\log\\left(\\frac{1.25}{\\delta}\\right)}}{\\epsilon}\n"
#~ "\n"
#~ msgstr ""

#~ msgid "Enable node authentication in :code:`SuperLink`"
#~ msgstr ""

#~ msgid ""
#~ "To enable node authentication, first you"
#~ " need to configure SSL/TLS connections "
#~ "to secure the SuperLink<>SuperNode "
#~ "communication. You can find the complete"
#~ " guide `here <https://flower.ai/docs/framework/how-"
#~ "to-enable-ssl-connections.html>`_. After "
#~ "configuring secure connections, you can "
#~ "enable client authentication in a "
#~ "long-running Flower :code:`SuperLink`. Use "
#~ "the following terminal command to start"
#~ " a Flower :code:`SuperNode` that has "
#~ "both secure connections and node "
#~ "authentication enabled:"
#~ msgstr ""

#~ msgid ""
#~ "The first flag :code:`--auth-list-"
#~ "public-keys` expects a path to a "
#~ "CSV file storing all known node "
#~ "public keys. You need to store all"
#~ " known node public keys that are "
#~ "allowed to participate in a federation"
#~ " in one CSV file (:code:`.csv`)."
#~ msgstr ""

#~ msgid ""
#~ "The second and third flags :code"
#~ ":`--auth-superlink-private-key` and :code"
#~ ":`--auth-superlink-public-key` expect paths"
#~ " to the server's private and public"
#~ " keys. For development purposes, you "
#~ "can generate a private and public "
#~ "key pair using :code:`ssh-keygen -t "
#~ "ecdsa -b 384`."
#~ msgstr ""

#~ msgid "Enable node authentication in :code:`SuperNode`"
#~ msgstr ""

#~ msgid ""
#~ "Similar to the long-running Flower "
#~ "server (:code:`SuperLink`), you can easily "
#~ "enable node authentication in the "
#~ "long-running Flower client (:code:`SuperNode`)."
#~ " Use the following terminal command "
#~ "to start an authenticated :code:`SuperNode`:"
#~ msgstr ""

#~ msgid ""
#~ "The :code:`--auth-supernode-private-key` "
#~ "flag expects a path to the node's"
#~ " private key file and the :code"
#~ ":`--auth-supernode-public-key` flag expects"
#~ " a path to the node's public "
#~ "key file. For development purposes, you"
#~ " can generate a private and public"
#~ " key pair using :code:`ssh-keygen -t"
#~ " ecdsa -b 384`."
#~ msgstr ""

#~ msgid ""
#~ "You should now have learned how to"
#~ " start a long-running Flower server"
#~ " (:code:`SuperLink`) and client "
#~ "(:code:`SuperNode`) with node authentication "
#~ "enabled. You should also know the "
#~ "significance of the private key and "
#~ "store it safely to minimize security "
#~ "risks."
#~ msgstr ""

#~ msgid ""
#~ "If you have not added ``conda-"
#~ "forge`` to your channels, you will "
#~ "first need to run the following::"
#~ msgstr ""

#~ msgid ""
#~ "Once the ``conda-forge`` channel has "
#~ "been enabled, ``flwr`` can be installed"
#~ " with ``conda``::"
#~ msgstr ""

#~ msgid "or with ``mamba``::"
#~ msgstr ""

#~ msgid ""
#~ "For central DP with server-side "
#~ "clipping, there are two :code:`Strategy` "
#~ "classes that act as wrappers around "
#~ "the actual :code:`Strategy` instance (for "
#~ "example, :code:`FedAvg`). The two wrapper "
#~ "classes are "
#~ ":code:`DifferentialPrivacyServerSideFixedClipping` and "
#~ ":code:`DifferentialPrivacyServerSideAdaptiveClipping` for "
#~ "fixed and adaptive clipping."
#~ msgstr ""

#~ msgid ""
#~ "The code sample below enables the "
#~ ":code:`FedAvg` strategy to use server-"
#~ "side fixed clipping using the "
#~ ":code:`DifferentialPrivacyServerSideFixedClipping` wrapper "
#~ "class. The same approach can be "
#~ "used with "
#~ ":code:`DifferentialPrivacyServerSideAdaptiveClipping` by "
#~ "adjusting the corresponding input parameters."
#~ msgstr ""

#~ msgid ""
#~ "For central DP with client-side "
#~ "clipping, the server sends the clipping"
#~ " value to selected clients on each"
#~ " round. Clients can use existing "
#~ "Flower :code:`Mods` to perform the "
#~ "clipping. Two mods are available for "
#~ "fixed and adaptive client-side clipping:"
#~ " :code:`fixedclipping_mod` and "
#~ ":code:`adaptiveclipping_mod` with corresponding "
#~ "server-side wrappers "
#~ ":code:`DifferentialPrivacyClientSideFixedClipping` and "
#~ ":code:`DifferentialPrivacyClientSideAdaptiveClipping`."
#~ msgstr ""

#~ msgid ""
#~ "The code sample below enables the "
#~ ":code:`FedAvg` strategy to use differential"
#~ " privacy with client-side fixed "
#~ "clipping using both the "
#~ ":code:`DifferentialPrivacyClientSideFixedClipping` wrapper "
#~ "class and, on the client, "
#~ ":code:`fixedclipping_mod`:"
#~ msgstr ""

#~ msgid ""
#~ "In addition to the server-side "
#~ "strategy wrapper, the :code:`ClientApp` needs"
#~ " to configure the matching "
#~ ":code:`fixedclipping_mod` to perform the "
#~ "client-side clipping:"
#~ msgstr ""

#~ msgid "Below is a code example that shows how to use :code:`LocalDpMod`:"
#~ msgstr ""

#~ msgid ""
#~ "Note that since version :code:`1.11.0`, "
#~ ":code:`flower-server-app` no longer "
#~ "supports passing a reference to a "
#~ "`ServerApp` attribute. Instead, you need "
#~ "to pass the path to Flower app "
#~ "via the argument :code:`--app`. This is"
#~ " the path to a directory containing"
#~ " a `pyproject.toml`. You can create a"
#~ " valid Flower app by executing "
#~ ":code:`flwr new` and following the "
#~ "prompt."
#~ msgstr ""

#~ msgid ""
#~ "Since CoreML does not allow the "
#~ "model parameters to be seen before "
#~ "training, and accessing the model "
#~ "parameters during or after the training"
#~ " can only be done by specifying "
#~ "the layer name, we need to know"
#~ " this information beforehand, through "
#~ "looking at the model specification, "
#~ "which are written as proto files. "
#~ "The implementation can be seen in "
#~ ":code:`MLModelInspect`."
#~ msgstr ""

#~ msgid ""
#~ "Prior to local training, we need "
#~ "to load the MNIST dataset, a "
#~ "popular image classification dataset of "
#~ "handwritten digits for machine learning, "
#~ "and partition the dataset for FL. "
#~ "This can be conveniently achieved using"
#~ " `Flower Datasets <https://flower.ai/docs/datasets>`_."
#~ " The :code:`FederatedDataset.load_partition()` method"
#~ " loads the partitioned training set "
#~ "for each partition ID defined in "
#~ "the :code:`--partition-id` argument."
#~ msgstr ""

#~ msgid ""
#~ "In this tutorial we will learn how"
#~ " to train a federated XGBoost model"
#~ " on HIGGS dataset using Flower and"
#~ " :code:`xgboost` package. We use a "
#~ "simple example (`full code xgboost-"
#~ "quickstart <https://github.com/adap/flower/tree/main/examples"
#~ "/xgboost-quickstart>`_) with two *clients* "
#~ "and one *server* to demonstrate how "
#~ "federated XGBoost works, and then we "
#~ "dive into a more complex example "
#~ "(`full code xgboost-comprehensive "
#~ "<https://github.com/adap/flower/tree/main/examples/xgboost-"
#~ "comprehensive>`_) to run various experiments."
#~ msgstr ""

#~ msgid ""
#~ "In this example, we split the "
#~ "dataset into 30 partitions with uniform"
#~ " distribution (:code:`IidPartitioner(num_partitions=30)`)."
#~ " Then, we load the partition for "
#~ "the given client based on "
#~ ":code:`partition_id`:"
#~ msgstr ""

#~ msgid ""
#~ "After that, we do train/test splitting"
#~ " on the given partition (client's "
#~ "local data), and transform data format"
#~ " for :code:`xgboost` package."
#~ msgstr ""

#~ msgid ""
#~ "The functions of :code:`train_test_split` and"
#~ " :code:`transform_dataset_to_dmatrix` are defined "
#~ "as below:"
#~ msgstr ""

#~ msgid ""
#~ "The :code:`num_local_round` represents the "
#~ "number of iterations for local tree "
#~ "boost. We use CPU for the training"
#~ " in default. One can shift it "
#~ "to GPU by setting :code:`tree_method` to"
#~ " :code:`gpu_hist`. We use AUC as "
#~ "evaluation metric."
#~ msgstr ""

#~ msgid ""
#~ "After loading the dataset we define "
#~ "the Flower client. We follow the "
#~ "general rule to define :code:`XgbClient` "
#~ "class inherited from :code:`fl.client.Client`."
#~ msgstr ""

#~ msgid ""
#~ "All required parameters defined above "
#~ "are passed to :code:`XgbClient`'s constructor."
#~ msgstr ""

#~ msgid ""
#~ "Then, we override :code:`get_parameters`, "
#~ ":code:`fit` and :code:`evaluate` methods "
#~ "insides :code:`XgbClient` class as follows."
#~ msgstr ""

#~ msgid ""
#~ "Unlike neural network training, XGBoost "
#~ "trees are not started from a "
#~ "specified random weights. In this case,"
#~ " we do not use :code:`get_parameters` "
#~ "and :code:`set_parameters` to initialise model"
#~ " parameters for XGBoost. As a result,"
#~ " let's return an empty tensor in "
#~ ":code:`get_parameters` when it is called "
#~ "by the server at the first round."
#~ msgstr ""

#~ msgid ""
#~ "In :code:`fit`, at the first round, "
#~ "we call :code:`xgb.train()` to build up"
#~ " the first set of trees. From "
#~ "the second round, we load the "
#~ "global model sent from server to "
#~ "new build Booster object, and then "
#~ "update model weights on local training"
#~ " data with function :code:`local_boost` as"
#~ " follows:"
#~ msgstr ""

#~ msgid ""
#~ "Given :code:`num_local_round`, we update trees"
#~ " by calling :code:`bst_input.update` method. "
#~ "After training, the last "
#~ ":code:`N=num_local_round` trees will be "
#~ "extracted to send to the server."
#~ msgstr ""

#~ msgid ""
#~ "In :code:`evaluate`, after loading the "
#~ "global model, we call :code:`bst.eval_set` "
#~ "function to conduct evaluation on valid"
#~ " set. The AUC value will be "
#~ "returned."
#~ msgstr ""

#~ msgid ""
#~ "We use two clients for this "
#~ "example. An :code:`evaluate_metrics_aggregation` "
#~ "function is defined to collect and "
#~ "wighted average the AUC values from "
#~ "clients. The :code:`config_func` function is"
#~ " to return the current FL round "
#~ "number to client's :code:`fit()` and "
#~ ":code:`evaluate()` methods."
#~ msgstr ""

#~ msgid ""
#~ "In file :code:`flwr.server.strategy.fedxgb_bagging.py`,"
#~ " we define :code:`FedXgbBagging` inherited "
#~ "from :code:`flwr.server.strategy.FedAvg`. Then, we"
#~ " override the :code:`aggregate_fit`, "
#~ ":code:`aggregate_evaluate` and :code:`evaluate` "
#~ "methods as follows:"
#~ msgstr ""

#~ msgid ""
#~ "In :code:`aggregate_fit`, we sequentially "
#~ "aggregate the clients' XGBoost trees by"
#~ " calling :code:`aggregate()` function:"
#~ msgstr ""

#~ msgid ""
#~ "In this function, we first fetch "
#~ "the number of trees and the number"
#~ " of parallel trees for the current"
#~ " and previous model by calling "
#~ ":code:`_get_tree_nums`. Then, the fetched "
#~ "information will be aggregated. After "
#~ "that, the trees (containing model "
#~ "weights) are aggregated to generate a"
#~ " new tree model."
#~ msgstr ""

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated XGBoost "
#~ "system. The AUC values can be "
#~ "checked in :code:`metrics_distributed`. One "
#~ "can see that the average AUC "
#~ "increases over FL rounds."
#~ msgstr ""

#~ msgid ""
#~ "To do this, we first customise a"
#~ " :code:`ClientManager` in :code:`server_utils.py`:"
#~ msgstr ""

#~ msgid ""
#~ "The customised :code:`ClientManager` samples "
#~ "all available clients in each FL "
#~ "round based on the order of "
#~ "connection to the server. Then, we "
#~ "define a new strategy :code:`FedXgbCyclic` "
#~ "in :code:`flwr.server.strategy.fedxgb_cyclic.py`, in "
#~ "order to sequentially select only one"
#~ " client in given round and pass "
#~ "the received model to next client."
#~ msgstr ""

#~ msgid ""
#~ "Unlike the original :code:`FedAvg`, we "
#~ "don't perform aggregation here. Instead, "
#~ "we just make a copy of the "
#~ "received client model as global model"
#~ " by overriding :code:`aggregate_fit`."
#~ msgstr ""

#~ msgid ""
#~ "Also, the customised :code:`configure_fit` and"
#~ " :code:`configure_evaluate` methods ensure the"
#~ " clients to be sequentially selected "
#~ "given FL round:"
#~ msgstr ""

#~ msgid ""
#~ "In :code:`dataset.py`, we have a "
#~ "function :code:`instantiate_partitioner` to "
#~ "instantiate the data partitioner based "
#~ "on the given :code:`num_partitions` and "
#~ ":code:`partitioner_type`. Currently, we provide "
#~ "four supported partitioner type to "
#~ "simulate the uniformity/non-uniformity in "
#~ "data quantity (uniform, linear, square, "
#~ "exponential)."
#~ msgstr ""

#~ msgid ""
#~ "To facilitate centralised evaluation, we "
#~ "define a function in :code:`server_utils.py`:"
#~ msgstr ""

#~ msgid ""
#~ "This function returns a evaluation "
#~ "function which instantiates a :code:`Booster`"
#~ " object and loads the global model"
#~ " weights to it. The evaluation is "
#~ "conducted by calling :code:`eval_set()` "
#~ "method, and the tested AUC value "
#~ "is reported."
#~ msgstr ""

#~ msgid ""
#~ "As for distributed evaluation on the "
#~ "clients, it's same as the quick-"
#~ "start example by overriding the "
#~ ":code:`evaluate()` method insides the "
#~ ":code:`XgbClient` class in :code:`client_utils.py`."
#~ msgstr ""

#~ msgid ""
#~ "We also provide an example code "
#~ "(:code:`sim.py`) to use the simulation "
#~ "capabilities of Flower to simulate "
#~ "federated XGBoost training on either a"
#~ " single machine or a cluster of "
#~ "machines."
#~ msgstr ""

#~ msgid ""
#~ "After importing all required packages, "
#~ "we define a :code:`main()` function to"
#~ " perform the simulation process:"
#~ msgstr ""

#~ msgid ""
#~ "We first load the dataset and "
#~ "perform data partitioning, and the "
#~ "pre-processed data is stored in a "
#~ ":code:`list`. After the simulation begins, "
#~ "the clients won't need to pre-"
#~ "process their partitions again."
#~ msgstr ""

#~ msgid ""
#~ "After that, we start the simulation "
#~ "by calling :code:`fl.simulation.start_simulation`:"
#~ msgstr ""

#~ msgid ""
#~ "One of key parameters for "
#~ ":code:`start_simulation` is :code:`client_fn` which"
#~ " returns a function to construct a"
#~ " client. We define it as follows:"
#~ msgstr ""

#~ msgid ""
#~ "In :code:`utils.py`, we define the "
#~ "arguments parsers for clients, server "
#~ "and simulation, allowing users to "
#~ "specify different experimental settings. Let's"
#~ " first see the sever side:"
#~ msgstr ""

#~ msgid ""
#~ "This allows user to specify training "
#~ "strategies / the number of total "
#~ "clients / FL rounds / participating "
#~ "clients / clients for evaluation, and"
#~ " evaluation fashion. Note that with "
#~ ":code:`--centralised-eval`, the sever will "
#~ "do centralised evaluation and all "
#~ "functionalities for client evaluation will "
#~ "be disabled."
#~ msgstr ""

#~ msgid ""
#~ "This defines various options for client"
#~ " data partitioning. Besides, clients also"
#~ " have an option to conduct evaluation"
#~ " on centralised test set by setting"
#~ " :code:`--centralised-eval`, as well as "
#~ "an option to perform scaled learning "
#~ "rate based on the number of "
#~ "clients by setting :code:`--scaled-lr`."
#~ msgstr ""

#~ msgid "|b8714c45b74b4d8fb008e2ebb3bc1d44|"
#~ msgstr ""

#~ msgid "|75f1561efcfd422ea67d28d1513120dc|"
#~ msgstr ""

#~ msgid "|6a1f51b235304558a9bdaaabfc93b8d2|"
#~ msgstr ""

#~ msgid "|35e70dab1fb544af9aa3a9c09c4f9797|"
#~ msgstr ""

#~ msgid "|d7efb5705dd3467f991ed23746824a07|"
#~ msgstr ""

#~ msgid "|94e7b021c7b540bfbedf7f082a41ff87|"
#~ msgstr ""

#~ msgid "|a80714782dde439ab73936518f91fc3c|"
#~ msgstr ""

#~ msgid "|c62080ca6197473da57d191c8225a9d9|"
#~ msgstr ""

#~ msgid "|21a8f1e6a5b14a7bbb8559979d0e8a2b|"
#~ msgstr ""

#~ msgid "|c310f2a22f7b4917bf42775aae7a1c09|"
#~ msgstr ""

#~ msgid "|a0c5b43401194535a8460bcf02e65f9a|"
#~ msgstr ""

#~ msgid "|aabfdbd5564e41a790f8ea93cc21a444|"
#~ msgstr ""

#~ msgid "|c9cc8f160fa647b09e742fe4dc8edb54|"
#~ msgstr ""

#~ msgid "|7e83aad011cd4907b2f02f907c6922e9|"
#~ msgstr ""

#~ msgid "|4627c2bb6cc443ae9e079f81f33c9dd9|"
#~ msgstr ""

#~ msgid "|131af8322dc5466b827afd24be98f8c0|"
#~ msgstr ""

#~ msgid "|f92920b87f3a40179bf7ddd0b6144c53|"
#~ msgstr ""

#~ msgid "|d62da263071d45a496f543e41fce3a19|"
#~ msgstr ""

#~ msgid "|ad851971645b4e1fbf8d15bcc0b2ee11|"
#~ msgstr ""

#~ msgid "|929e9a6de6b34edb8488e644e2bb5221|"
#~ msgstr ""

#~ msgid "|404cf9c9e8d64784a55646c0f9479cbc|"
#~ msgstr ""

#~ msgid "|b021ff9d25814458b1e631f8985a648b|"
#~ msgstr ""

#~ msgid "|e6ca84e1df244f238288a768352678e5|"
#~ msgstr ""

#~ msgid "|39c2422082554a21963baffb33a0d057|"
#~ msgstr ""

#~ msgid "|07ecf5fcd6814e88906accec6fa0fbfb|"
#~ msgstr ""

#~ msgid "|57e78c0ca8a94ba5a64a04b1f2280e55|"
#~ msgstr ""

#~ msgid "|9819b40e59ee40a4921e1244e8c99bac|"
#~ msgstr ""

#~ msgid "|797bf279c4894b5ead31dc9b0534ed62|"
#~ msgstr ""

#~ msgid "|3a7aceef05f0421794726ac54aaf12fd|"
#~ msgstr ""

#~ msgid "|d741075f8e624331b42c0746f7d258a0|"
#~ msgstr ""

#~ msgid "|8fc92d668bcb42b8bda55143847f2329|"
#~ msgstr ""

#~ msgid "|1c705d833a024f22adcaeb8ae3d13b0b|"
#~ msgstr ""

#~ msgid "|77a037b546a84262b608e04bc82a2c96|"
#~ msgstr ""

#~ msgid "|f568e24c9fb0435690ac628210a4be96|"
#~ msgstr ""

#~ msgid "|a7bf029981514e2593aa3a2b48c9d76a|"
#~ msgstr ""

#~ msgid "|3f645ad807f84be8b1f8f3267173939c|"
#~ msgstr ""

#~ msgid "|a06a9dbd603f45819afd8e8cfc3c4b8f|"
#~ msgstr ""

#~ msgid "|edcf9a04d96e42608fd01a333375febe|"
#~ msgstr ""

#~ msgid "|3dae22fe797043968e2b7aa7073c78bd|"
#~ msgstr ""

#~ msgid "|ba178f75267d4ad8aa7363f20709195f|"
#~ msgstr ""

#~ msgid "|c380c750bfd2444abce039a1c6fa8e60|"
#~ msgstr ""

#~ msgid "|e7cec00a114b48359935c6510595132e|"
#~ msgstr ""

#~ msgid ""
#~ "Include SecAgg, SecAgg+, and LightSecAgg "
#~ "protocol. The LightSecAgg protocol has "
#~ "not been implemented yet, so its "
#~ "diagram and abstraction may not be "
#~ "accurate in practice. The SecAgg "
#~ "protocol can be considered as a "
#~ "special case of the SecAgg+ protocol."
#~ msgstr ""
#~ "Inclut les protocoles SecAgg, SecAgg+ et"
#~ " LightSecAgg. Le protocole LightSecAgg n'a"
#~ " pas encore été mis en œuvre, "
#~ "de sorte que son diagramme et son"
#~ " abstraction peuvent ne pas être "
#~ "exacts dans la pratique. Le protocole"
#~ " SecAgg peut être considéré comme un"
#~ " cas particulier du protocole SecAgg+."

#~ msgid "The ``SecAgg+`` abstraction"
#~ msgstr "L'abstraction :code:`SecAgg+`"

#~ msgid ""
#~ "In this implementation, each client will"
#~ " be assigned with a unique index "
#~ "(int) for secure aggregation, and thus"
#~ " many python dictionaries used have "
#~ "keys of int type rather than "
#~ "ClientProxy type."
#~ msgstr ""
#~ "Dans cette implémentation, chaque client "
#~ "se verra attribuer un index unique "
#~ "(int) pour une agrégation sécurisée, et"
#~ " donc de nombreux dictionnaires python "
#~ "utilisés ont des clés de type int"
#~ " plutôt que de type ClientProxy."

#~ msgid ""
#~ "The Flower server will execute and "
#~ "process received results in the "
#~ "following order:"
#~ msgstr ""
#~ "Le serveur Flower exécutera et traitera"
#~ " les résultats reçus dans l'ordre "
#~ "suivant :"

#~ msgid "The ``LightSecAgg`` abstraction"
#~ msgstr "L'abstraction :code:`LightSecAgg`"

#~ msgid "Types"
#~ msgstr "Types"

#~ msgid ""
#~ "Docker Compose is `installed "
#~ "<https://docs.docker.com/compose/install/>`_."
#~ msgstr ""

#~ msgid "Run the example:"
#~ msgstr "Fédérer l'exemple"

#~ msgid "Follow the logs of the SuperExec service:"
#~ msgstr ""

#~ msgid "Only runs on AMD64."
#~ msgstr ""

#~ msgid ""
#~ "Use the method that works best for"
#~ " you to copy the ``server`` "
#~ "directory, the certificates, and your "
#~ "Flower project to the remote machine."
#~ msgstr ""

#~ msgid ""
#~ "The Path of the ``PROJECT_DIR`` should"
#~ " be relative to the location of "
#~ "the ``server`` Docker Compose files."
#~ msgstr ""

#~ msgid ""
#~ "The Path of the ``PROJECT_DIR`` should"
#~ " be relative to the location of "
#~ "the ``client`` Docker Compose files."
#~ msgstr ""

#~ msgid ""
#~ "The Path of the ``root-certificates``"
#~ " should be relative to the location"
#~ " of the ``pyproject.toml`` file."
#~ msgstr ""

#~ msgid "To run the project, execute:"
#~ msgstr ""

#~ msgid "Run the ``quickstart-docker`` project by executing the command:"
#~ msgstr ""

#~ msgid "Follow the SuperExec logs to track the execution of the run:"
#~ msgstr ""

#~ msgid "Execute the command to run the quickstart example:"
#~ msgstr ""

#~ msgid "Monitor the SuperExec logs and wait for the summary to appear:"
#~ msgstr ""

#~ msgid "Example: FedBN in PyTorch - From Centralized To Federated"
#~ msgstr "Exemple : FedBN dans PyTorch - De la centralisation à la fédération"

#~ msgid "Centralized Training"
#~ msgstr "Formation centralisée"

#~ msgid ""
#~ "All files are revised based on "
#~ ":doc:`Example: PyTorch - From Centralized "
#~ "To Federated <example-pytorch-from-"
#~ "centralized-to-federated>`. The only thing"
#~ " to do is modifying the file "
#~ "called ``cifar.py``, revised part is "
#~ "shown below:"
#~ msgstr ""
#~ "Tous les fichiers sont révisés sur "
#~ "la base de `Exemple : PyTorch -"
#~ " From Centralized To Federated "
#~ "<https://flower.ai/docs/example-pytorch-from-"
#~ "centralized-to-federated.html>`_. La seule "
#~ "chose à faire est de modifier le"
#~ " fichier appelé :code:`cifar.py`, la partie"
#~ " révisée est montrée ci-dessous :"

#~ msgid ""
#~ "The model architecture defined in class"
#~ " Net() is added with Batch "
#~ "Normalization layers accordingly."
#~ msgstr ""
#~ "L'architecture du modèle définie dans la"
#~ " classe Net() est ajoutée avec les"
#~ " couches de normalisation par lots en"
#~ " conséquence."

#~ msgid "You can now run your machine learning workload:"
#~ msgstr ""
#~ "Tu peux maintenant exécuter ta charge"
#~ " de travail d'apprentissage automatique :"

#~ msgid ""
#~ "So far this should all look fairly"
#~ " familiar if you've used PyTorch "
#~ "before. Let's take the next step "
#~ "and use what we've built to create"
#~ " a federated learning system within "
#~ "FedBN, the system consists of one "
#~ "server and two clients."
#~ msgstr ""
#~ "Jusqu'à présent, tout ceci devrait te"
#~ " sembler assez familier si tu as "
#~ "déjà utilisé PyTorch. Passons à l'étape"
#~ " suivante et utilisons ce que nous"
#~ " avons construit pour créer un "
#~ "système d'apprentissage fédéré au sein "
#~ "de FedBN, le système se compose "
#~ "d'un serveur et de deux clients."

#~ msgid "Federated Training"
#~ msgstr "Formation fédérée"

#~ msgid ""
#~ "If you have read :doc:`Example: PyTorch"
#~ " - From Centralized To Federated "
#~ "<example-pytorch-from-centralized-to-"
#~ "federated>`, the following parts are "
#~ "easy to follow, only ``get_parameters`` "
#~ "and ``set_parameters`` function in "
#~ "``client.py`` needed to revise. If not,"
#~ " please read the :doc:`Example: PyTorch "
#~ "- From Centralized To Federated "
#~ "<example-pytorch-from-centralized-to-"
#~ "federated>`. first."
#~ msgstr ""
#~ "Si vous avez lu `Exemple : PyTorch"
#~ " - From Centralized To Federated "
#~ "<https://flower.ai/docs/example-pytorch-from-"
#~ "centralized-to-federated.html>`_, les parties "
#~ "suivantes sont faciles à suivre, seules"
#~ " les fonctions :code:`get_parameters` et "
#~ ":code:`set_parameters` dans :code:`client.py` ont"
#~ " besoin d'être révisées. Si ce n'est"
#~ " pas le cas, veuillez lire `Exemple"
#~ " : PyTorch - From Centralized To "
#~ "Federated <https://flower.ai/docs/example-pytorch-"
#~ "from-centralized-to-federated.html>`. d'abord."

#~ msgid ""
#~ "Our example consists of one *server* "
#~ "and two *clients*. In FedBN, "
#~ "``server.py`` keeps unchanged, we can "
#~ "start the server directly."
#~ msgstr ""
#~ "Notre exemple consiste en un *serveur*"
#~ " et deux *clients*. Dans FedBN, "
#~ ":code:`server.py` reste inchangé, nous pouvons"
#~ " démarrer le serveur directement."

#~ msgid "Now, you can now open two additional terminal windows and run"
#~ msgstr "Tu peux maintenant ouvrir deux autres fenêtres de terminal et lancer"

#~ msgid ""
#~ "in each window (make sure that the"
#~ " server is still running before you"
#~ " do so) and see your (previously "
#~ "centralized) PyTorch project run federated "
#~ "learning with FedBN strategy across two"
#~ " clients. Congratulations!"
#~ msgstr ""
#~ "dans chaque fenêtre (assure-toi que "
#~ "le serveur est toujours en cours "
#~ "d'exécution avant de le faire) et "
#~ "tu verras ton projet PyTorch (auparavant"
#~ " centralisé) exécuter l'apprentissage fédéré "
#~ "avec la stratégie FedBN sur deux "
#~ "clients. Félicitations !"

#~ msgid "Example: PyTorch - From Centralized To Federated"
#~ msgstr "Exemple : PyTorch - De la centralisation à la fédération"

#~ msgid ""
#~ "This tutorial will show you how to"
#~ " use Flower to build a federated "
#~ "version of an existing machine learning"
#~ " workload. We are using PyTorch to"
#~ " train a Convolutional Neural Network "
#~ "on the CIFAR-10 dataset. First, we "
#~ "introduce this machine learning task "
#~ "with a centralized training approach "
#~ "based on the `Deep Learning with "
#~ "PyTorch "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_"
#~ " tutorial. Then, we build upon the"
#~ " centralized training code to run the"
#~ " training in a federated fashion."
#~ msgstr ""
#~ "Ce tutoriel te montrera comment utiliser"
#~ " Flower pour construire une version "
#~ "fédérée d'une charge de travail "
#~ "d'apprentissage automatique existante. Nous "
#~ "utilisons PyTorch pour entraîner un "
#~ "réseau neuronal convolutif sur l'ensemble "
#~ "de données CIFAR-10. Tout d'abord, nous"
#~ " présentons cette tâche d'apprentissage "
#~ "automatique avec une approche d'entraînement"
#~ " centralisée basée sur le tutoriel "
#~ "`Deep Learning with PyTorch "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_."
#~ " Ensuite, nous nous appuyons sur le"
#~ " code d'entraînement centralisé pour "
#~ "exécuter l'entraînement de manière fédérée."

#~ msgid ""
#~ "We begin with a brief description "
#~ "of the centralized CNN training code."
#~ " If you want a more in-depth"
#~ " explanation of what's going on then"
#~ " have a look at the official "
#~ "`PyTorch tutorial "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_."
#~ msgstr ""
#~ "Nous commençons par une brève "
#~ "description du code d'entraînement CNN "
#~ "centralisé. Si tu veux une explication"
#~ " plus approfondie de ce qui se "
#~ "passe, jette un coup d'œil au "
#~ "tutoriel officiel `PyTorch "
#~ "<https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html>`_."

#~ msgid ""
#~ "Let's create a new file called "
#~ "``cifar.py`` with all the components "
#~ "required for a traditional (centralized) "
#~ "training on CIFAR-10. First, all "
#~ "required packages (such as ``torch`` and"
#~ " ``torchvision``) need to be imported. "
#~ "You can see that we do not "
#~ "import any package for federated "
#~ "learning. You can keep all these "
#~ "imports as they are even when we"
#~ " add the federated learning components "
#~ "at a later point."
#~ msgstr ""
#~ "Créons un nouveau fichier appelé "
#~ ":code:`cifar.py` avec tous les composants "
#~ "requis pour une formation traditionnelle "
#~ "(centralisée) sur le CIFAR-10. Tout "
#~ "d'abord, tous les paquets requis (tels"
#~ " que :code:`torch` et :code:`torchvision`) "
#~ "doivent être importés. Tu peux voir "
#~ "que nous n'importons aucun paquet pour"
#~ " l'apprentissage fédéré. Tu peux conserver"
#~ " toutes ces importations telles quelles "
#~ "même lorsque nous ajouterons les "
#~ "composants d'apprentissage fédéré à un "
#~ "moment ultérieur."

#~ msgid ""
#~ "As already mentioned we will use "
#~ "the CIFAR-10 dataset for this machine"
#~ " learning workload. The model architecture"
#~ " (a very simple Convolutional Neural "
#~ "Network) is defined in ``class Net()``."
#~ msgstr ""
#~ "Comme nous l'avons déjà mentionné, nous"
#~ " utiliserons l'ensemble de données CIFAR-10"
#~ " pour cette charge de travail "
#~ "d'apprentissage automatique. L'architecture du "
#~ "modèle (un réseau neuronal convolutif "
#~ "très simple) est définie dans "
#~ ":code:`class Net()`."

#~ msgid ""
#~ "The ``load_data()`` function loads the "
#~ "CIFAR-10 training and test sets. The "
#~ "``transform`` normalized the data after "
#~ "loading."
#~ msgstr ""
#~ "La fonction :code:`load_data()` charge les "
#~ "ensembles d'entraînement et de test "
#~ "CIFAR-10. La fonction :code:`transform` "
#~ "normalise les données après leur "
#~ "chargement."

#~ msgid ""
#~ "We now need to define the training"
#~ " (function ``train()``) which loops over"
#~ " the training set, measures the loss,"
#~ " backpropagates it, and then takes "
#~ "one optimizer step for each batch "
#~ "of training examples."
#~ msgstr ""
#~ "Nous devons maintenant définir la "
#~ "formation (fonction :code:`train()`) qui passe"
#~ " en boucle sur l'ensemble de la "
#~ "formation, mesure la perte, la "
#~ "rétropropage, puis effectue une étape "
#~ "d'optimisation pour chaque lot d'exemples "
#~ "de formation."

#~ msgid ""
#~ "The evaluation of the model is "
#~ "defined in the function ``test()``. The"
#~ " function loops over all test samples"
#~ " and measures the loss of the "
#~ "model based on the test dataset."
#~ msgstr ""
#~ "L'évaluation du modèle est définie dans"
#~ " la fonction :code:`test()`. La fonction"
#~ " boucle sur tous les échantillons de"
#~ " test et mesure la perte du "
#~ "modèle en fonction de l'ensemble des "
#~ "données de test."

#~ msgid ""
#~ "Having defined the data loading, model"
#~ " architecture, training, and evaluation we"
#~ " can put everything together and "
#~ "train our CNN on CIFAR-10."
#~ msgstr ""
#~ "Après avoir défini le chargement des "
#~ "données, l'architecture du modèle, la "
#~ "formation et l'évaluation, nous pouvons "
#~ "tout mettre ensemble et former notre "
#~ "CNN sur CIFAR-10."

#~ msgid ""
#~ "So far, this should all look "
#~ "fairly familiar if you've used PyTorch"
#~ " before. Let's take the next step "
#~ "and use what we've built to create"
#~ " a simple federated learning system "
#~ "consisting of one server and two "
#~ "clients."
#~ msgstr ""
#~ "Jusqu'à présent, tout cela devrait te"
#~ " sembler assez familier si tu as "
#~ "déjà utilisé PyTorch. Passons à l'étape"
#~ " suivante et utilisons ce que nous"
#~ " avons construit pour créer un simple"
#~ " système d'apprentissage fédéré composé "
#~ "d'un serveur et de deux clients."

#~ msgid ""
#~ "The simple machine learning project "
#~ "discussed in the previous section trains"
#~ " the model on a single dataset "
#~ "(CIFAR-10), we call this centralized "
#~ "learning. This concept of centralized "
#~ "learning, as shown in the previous "
#~ "section, is probably known to most "
#~ "of you, and many of you have "
#~ "used it previously. Normally, if you'd"
#~ " want to run machine learning "
#~ "workloads in a federated fashion, then"
#~ " you'd have to change most of "
#~ "your code and set everything up "
#~ "from scratch. This can be a "
#~ "considerable effort."
#~ msgstr ""
#~ "Le projet simple d'apprentissage automatique"
#~ " discuté dans la section précédente "
#~ "entraîne le modèle sur un seul "
#~ "ensemble de données (CIFAR-10), nous "
#~ "appelons cela l'apprentissage centralisé. Ce"
#~ " concept d'apprentissage centralisé, comme "
#~ "le montre la section précédente, est "
#~ "probablement connu de la plupart d'entre"
#~ " vous, et beaucoup d'entre vous l'ont"
#~ " déjà utilisé. Normalement, si tu "
#~ "veux exécuter des charges de travail "
#~ "d'apprentissage automatique de manière "
#~ "fédérée, tu dois alors changer la "
#~ "plupart de ton code et tout mettre"
#~ " en place à partir de zéro, ce"
#~ " qui peut représenter un effort "
#~ "considérable."

#~ msgid ""
#~ "However, with Flower you can evolve "
#~ "your pre-existing code into a "
#~ "federated learning setup without the "
#~ "need for a major rewrite."
#~ msgstr ""
#~ "Cependant, avec Flower, tu peux faire"
#~ " évoluer ton code préexistant vers "
#~ "une configuration d'apprentissage fédéré sans"
#~ " avoir besoin d'une réécriture majeure."

#~ msgid ""
#~ "The concept is easy to understand. "
#~ "We have to start a *server* and"
#~ " then use the code in ``cifar.py``"
#~ " for the *clients* that are connected"
#~ " to the *server*. The *server* sends"
#~ " model parameters to the clients. The"
#~ " *clients* run the training and "
#~ "update the parameters. The updated "
#~ "parameters are sent back to the "
#~ "*server* which averages all received "
#~ "parameter updates. This describes one "
#~ "round of the federated learning process"
#~ " and we repeat this for multiple "
#~ "rounds."
#~ msgstr ""
#~ "Le concept est facile à comprendre. "
#~ "Nous devons démarrer un *serveur* et "
#~ "utiliser le code dans :code:`cifar.py` "
#~ "pour les *clients* qui sont connectés"
#~ " au *serveur*. Le *serveur* envoie "
#~ "les paramètres du modèle aux clients."
#~ " Les *clients* exécutent la formation "
#~ "et mettent à jour les paramètres. "
#~ "Les paramètres mis à jour sont "
#~ "renvoyés au *serveur* qui fait la "
#~ "moyenne de toutes les mises à jour"
#~ " de paramètres reçues. Ceci décrit un"
#~ " tour du processus d'apprentissage fédéré"
#~ " et nous répétons cette opération "
#~ "pour plusieurs tours."

#~ msgid ""
#~ "Our example consists of one *server* "
#~ "and two *clients*. Let's set up "
#~ "``server.py`` first. The *server* needs "
#~ "to import the Flower package ``flwr``."
#~ " Next, we use the ``start_server`` "
#~ "function to start a server and "
#~ "tell it to perform three rounds of"
#~ " federated learning."
#~ msgstr ""
#~ "Notre exemple consiste en un *serveur*"
#~ " et deux *clients*. Commençons par "
#~ "configurer :code:`server.py`. Le *serveur* "
#~ "doit importer le paquet Flower "
#~ ":code:`flwr`. Ensuite, nous utilisons la "
#~ "fonction :code:`start_server` pour démarrer un"
#~ " serveur et lui demander d'effectuer "
#~ "trois cycles d'apprentissage fédéré."

#~ msgid "We can already start the *server*:"
#~ msgstr "Nous pouvons déjà démarrer le *serveur* :"

#~ msgid ""
#~ "Finally, we will define our *client* "
#~ "logic in ``client.py`` and build upon"
#~ " the previously defined centralized "
#~ "training in ``cifar.py``. Our *client* "
#~ "needs to import ``flwr``, but also "
#~ "``torch`` to update the parameters on"
#~ " our PyTorch model:"
#~ msgstr ""
#~ "Enfin, nous allons définir notre logique"
#~ " *client* dans :code:`client.py` et nous"
#~ " appuyer sur la formation centralisée "
#~ "définie précédemment dans :code:`cifar.py`. "
#~ "Notre *client* doit importer :code:`flwr`, "
#~ "mais aussi :code:`torch` pour mettre à"
#~ " jour les paramètres de notre modèle"
#~ " PyTorch :"

#~ msgid ""
#~ "Implementing a Flower *client* basically "
#~ "means implementing a subclass of either"
#~ " ``flwr.client.Client`` or ``flwr.client.NumPyClient``."
#~ " Our implementation will be based on"
#~ " ``flwr.client.NumPyClient`` and we'll call "
#~ "it ``CifarClient``. ``NumPyClient`` is "
#~ "slightly easier to implement than "
#~ "``Client`` if you use a framework "
#~ "with good NumPy interoperability (like "
#~ "PyTorch or TensorFlow/Keras) because it "
#~ "avoids some of the boilerplate that "
#~ "would otherwise be necessary. ``CifarClient``"
#~ " needs to implement four methods, two"
#~ " methods for getting/setting model "
#~ "parameters, one method for training the"
#~ " model, and one method for testing"
#~ " the model:"
#~ msgstr ""
#~ "Implementing a Flower *client* basically "
#~ "means implementing a subclass of either"
#~ " :code:`flwr.client.Client` or "
#~ ":code:`flwr.client.NumPyClient`. Our implementation "
#~ "will be based on "
#~ ":code:`flwr.client.NumPyClient` and we'll call "
#~ "it :code:`CifarClient`. :code:`NumPyClient` is "
#~ "slightly easier to implement than "
#~ ":code:`Client` if you use a framework"
#~ " with good NumPy interoperability (like "
#~ "PyTorch or TensorFlow/Keras) because it "
#~ "avoids some of the boilerplate that "
#~ "would otherwise be necessary. "
#~ ":code:`CifarClient` needs to implement four"
#~ " methods, two methods for getting/setting"
#~ " model parameters, one method for "
#~ "training the model, and one method "
#~ "for testing the model:"

#~ msgid "``set_parameters``"
#~ msgstr ":code:`set_parameters`"

#~ msgid ""
#~ "set the model parameters on the "
#~ "local model that are received from "
#~ "the server"
#~ msgstr "règle les paramètres du modèle local reçus du serveur"

#~ msgid ""
#~ "loop over the list of model "
#~ "parameters received as NumPy ``ndarray``'s "
#~ "(think list of neural network layers)"
#~ msgstr ""
#~ "boucle sur la liste des paramètres "
#~ "du modèle reçus sous forme de "
#~ "NumPy :code:`ndarray`'s (pensez à la "
#~ "liste des couches du réseau neuronal)"

#~ msgid "``get_parameters``"
#~ msgstr ":code:`get_parameters`"

#~ msgid ""
#~ "get the model parameters and return "
#~ "them as a list of NumPy "
#~ "``ndarray``'s (which is what "
#~ "``flwr.client.NumPyClient`` expects)"
#~ msgstr ""
#~ "récupère les paramètres du modèle et "
#~ "les renvoie sous forme de liste de"
#~ " :code:`ndarray` NumPy (ce qui correspond"
#~ " à ce que :code:`flwr.client.NumPyClient` "
#~ "attend)"

#~ msgid "``fit``"
#~ msgstr ""

#~ msgid ""
#~ "update the parameters of the local "
#~ "model with the parameters received from"
#~ " the server"
#~ msgstr ""
#~ "mettre à jour les paramètres du "
#~ "modèle local avec les paramètres reçus"
#~ " du serveur"

#~ msgid "train the model on the local training set"
#~ msgstr "entraîne le modèle sur l'ensemble d'apprentissage local"

#~ msgid "get the updated local model weights and return them to the server"
#~ msgstr "récupère les poids du modèle local mis à jour et les renvoie au serveur"

#~ msgid "evaluate the updated model on the local test set"
#~ msgstr "évaluer le modèle mis à jour sur l'ensemble de test local"

#~ msgid "return the local loss and accuracy to the server"
#~ msgstr "renvoie la perte locale et la précision au serveur"

#~ msgid ""
#~ "The two ``NumPyClient`` methods ``fit`` "
#~ "and ``evaluate`` make use of the "
#~ "functions ``train()`` and ``test()`` "
#~ "previously defined in ``cifar.py``. So "
#~ "what we really do here is we "
#~ "tell Flower through our ``NumPyClient`` "
#~ "subclass which of our already defined"
#~ " functions to call for training and"
#~ " evaluation. We included type annotations"
#~ " to give you a better understanding"
#~ " of the data types that get "
#~ "passed around."
#~ msgstr ""
#~ "Les deux méthodes :code:`NumPyClient` "
#~ ":code:`fit` et :code:`evaluate` utilisent les"
#~ " fonctions :code:`train()` et :code:`test()` "
#~ "définies précédemment dans :code:`cifar.py`. "
#~ "Ce que nous faisons vraiment ici, "
#~ "c'est que nous indiquons à Flower, "
#~ "par le biais de notre sous-classe"
#~ " :code:`NumPyClient`, laquelle de nos "
#~ "fonctions déjà définies doit être "
#~ "appelée pour l'entraînement et l'évaluation."
#~ " Nous avons inclus des annotations de"
#~ " type pour te donner une meilleure"
#~ " compréhension des types de données "
#~ "qui sont transmis."

#~ msgid ""
#~ "All that's left to do it to "
#~ "define a function that loads both "
#~ "model and data, creates a "
#~ "``CifarClient``, and starts this client. "
#~ "You load your data and model by"
#~ " using ``cifar.py``. Start ``CifarClient`` "
#~ "with the function ``fl.client.start_client()`` "
#~ "by pointing it at the same IP "
#~ "address we used in ``server.py``:"
#~ msgstr ""
#~ "Il ne reste plus qu'à définir une"
#~ " fonction qui charge le modèle et "
#~ "les données, crée un :code:`CifarClient` "
#~ "et démarre ce client. Tu charges "
#~ "tes données et ton modèle en "
#~ "utilisant :code:`cifar.py`. Démarre "
#~ ":code:`CifarClient` avec la fonction "
#~ ":code:`fl.client.start_client()` en la faisant "
#~ "pointer sur la même adresse IP que"
#~ " celle que nous avons utilisée dans"
#~ " :code:`server.py` :"

#~ msgid "And that's it. You can now open two additional terminal windows and run"
#~ msgstr ""
#~ "Tu peux maintenant ouvrir deux autres"
#~ " fenêtres de terminal et exécuter les"
#~ " commandes suivantes"

#~ msgid ""
#~ "in each window (make sure that the"
#~ " server is running before you do "
#~ "so) and see your (previously "
#~ "centralized) PyTorch project run federated "
#~ "learning across two clients. Congratulations!"
#~ msgstr ""
#~ "dans chaque fenêtre (assure-toi que "
#~ "le serveur fonctionne avant de le "
#~ "faire) et tu verras ton projet "
#~ "PyTorch (auparavant centralisé) exécuter "
#~ "l'apprentissage fédéré sur deux clients. "
#~ "Félicitations !"

#~ msgid ""
#~ "The full source code for this "
#~ "example: `PyTorch: From Centralized To "
#~ "Federated (Code) "
#~ "<https://github.com/adap/flower/blob/main/examples/pytorch-"
#~ "from-centralized-to-federated>`_. Our "
#~ "example is, of course, somewhat over-"
#~ "simplified because both clients load the"
#~ " exact same dataset, which isn't "
#~ "realistic. You're now prepared to "
#~ "explore this topic further. How about"
#~ " using different subsets of CIFAR-10 "
#~ "on each client? How about adding "
#~ "more clients?"
#~ msgstr ""
#~ "Le code source complet de cet "
#~ "exemple : `PyTorch : From Centralized"
#~ " To Federated (Code) "
#~ "<https://github.com/adap/flower/blob/main/examples/pytorch-"
#~ "from-centralized-to-federated>`_. Notre "
#~ "exemple est, bien sûr, un peu trop"
#~ " simplifié parce que les deux clients"
#~ " chargent exactement le même ensemble "
#~ "de données, ce qui n'est pas "
#~ "réaliste. Tu es maintenant prêt à "
#~ "explorer davantage ce sujet. Pourquoi ne"
#~ " pas utiliser différents sous-ensembles "
#~ "de CIFAR-10 sur chaque client ? "
#~ "Pourquoi ne pas ajouter d'autres clients"
#~ " ?"

#~ msgid ""
#~ "To help you start and manage all"
#~ " of the concurrently executing training "
#~ "runs, Flower offers one additional "
#~ "long-running server-side service called "
#~ "**SuperExec**. When you type ``flwr "
#~ "run`` to start a new training run,"
#~ " the ``flwr`` CLI bundles your local"
#~ " project (mainly your ``ServerApp`` and "
#~ "``ClientApp``) and sends it to the "
#~ "**SuperExec**. The **SuperExec** will then "
#~ "take care of starting and managing "
#~ "your ``ServerApp``, which in turn "
#~ "selects SuperNodes to execute your "
#~ "``ClientApp``."
#~ msgstr ""

#~ msgid ""
#~ "This architecture allows many users to"
#~ " (concurrently) run their projects on "
#~ "the same federation, simply by typing"
#~ " ``flwr run`` on their local "
#~ "developer machine."
#~ msgstr ""

#~ msgid "Flower Deployment Engine with SuperExec"
#~ msgstr ""

#~ msgid "The SuperExec service for managing concurrent training runs in Flower."
#~ msgstr ""

#~ msgid "FED Template"
#~ msgstr "Modèle FED"

#~ msgid "Table of Contents"
#~ msgstr "Table des matières"

#~ msgid "[Table of Contents](#table-of-contents)"
#~ msgstr "[Table des matières](#table-of-contents)"

#~ msgid "[Summary](#summary)"
#~ msgstr "[Résumé](#résumé)"

#~ msgid "[Motivation](#motivation)"
#~ msgstr "[Motivation](#motivation)"

#~ msgid "[Goals](#goals)"
#~ msgstr "[Buts](#buts)"

#~ msgid "[Non-Goals](#non-goals)"
#~ msgstr "[Non-objectifs](#non-objectifs)"

#~ msgid "[Proposal](#proposal)"
#~ msgstr "[Proposition](#proposition)"

#~ msgid "[Drawbacks](#drawbacks)"
#~ msgstr "[Inconvénients](#inconvénients)"

#~ msgid "[Alternatives Considered](#alternatives-considered)"
#~ msgstr "[Alternatives envisagées](#alternatives-considered)"

#~ msgid "[Appendix](#appendix)"
#~ msgstr "[Annexe](#appendix)"

#~ msgid "Summary"
#~ msgstr "Résumé"

#~ msgid "\\[TODO - sentence 1: summary of the problem\\]"
#~ msgstr "[TODO - phrase 1 : résumé du problème]"

#~ msgid "\\[TODO - sentence 2: summary of the solution\\]"
#~ msgstr "[TODO - phrase 2 : résumé de la solution]"

#~ msgid "Motivation"
#~ msgstr "Motivation"

#~ msgid "\\[TODO\\]"
#~ msgstr "[TODO]"

#~ msgid "Goals"
#~ msgstr "Objectifs"

#~ msgid "Non-Goals"
#~ msgstr "Non-objectifs"

#~ msgid "Proposal"
#~ msgstr "Proposition"

#~ msgid "Drawbacks"
#~ msgstr "Inconvénients"

#~ msgid "Alternatives Considered"
#~ msgstr "Alternatives envisagées"

#~ msgid "\\[Alternative 1\\]"
#~ msgstr "[Alternative 1]"

#~ msgid "\\[Alternative 2\\]"
#~ msgstr "[Alternative 2]"

#~ msgid "Flower Enhancement Doc"
#~ msgstr "Doc sur l'amélioration des fleurs"

#~ msgid "[Enhancement Doc Template](#enhancement-doc-template)"
#~ msgstr "[Modèle de document d'amélioration](#enhancement-doc-template)"

#~ msgid "[Metadata](#metadata)"
#~ msgstr "[Métadonnées](#métadonnées)"

#~ msgid "[Workflow](#workflow)"
#~ msgstr "[Workflow](#workflow)"

#~ msgid "[GitHub Issues](#github-issues)"
#~ msgstr "[GitHub Issues](#github-issues)"

#~ msgid "[Google Docs](#google-docs)"
#~ msgstr "[Google Docs](#google-docs)"

#~ msgid "A Flower Enhancement is a standardized development process to"
#~ msgstr ""
#~ "Une amélioration de la fleur est "
#~ "un processus de développement standardisé "
#~ "pour"

#~ msgid "provide a common structure for proposing larger changes"
#~ msgstr ""
#~ "fournir une structure commune pour "
#~ "proposer des changements plus importants"

#~ msgid "ensure that the motivation for a change is clear"
#~ msgstr "s'assurer que la motivation du changement est claire"

#~ msgid "persist project information in a version control system"
#~ msgstr ""
#~ "conserver les informations sur le projet"
#~ " dans un système de contrôle des "
#~ "versions"

#~ msgid "document the motivation for impactful user-facing changes"
#~ msgstr ""
#~ "documenter la motivation des changements "
#~ "qui ont un impact sur l'utilisateur"

#~ msgid "reserve GitHub issues for tracking work in flight"
#~ msgstr "réserve les problèmes GitHub pour le suivi du travail en vol"

#~ msgid ""
#~ "ensure community participants can successfully"
#~ " drive changes to completion across "
#~ "one or more releases while stakeholders"
#~ " are adequately represented throughout the"
#~ " process"
#~ msgstr ""
#~ "s'assurer que les participants de la "
#~ "communauté peuvent mener à bien les "
#~ "changements dans le cadre d'une ou "
#~ "plusieurs versions et que les parties"
#~ " prenantes sont représentées de manière "
#~ "adéquate tout au long du processus"

#~ msgid "Hence, an Enhancement Doc combines aspects of"
#~ msgstr "Par conséquent, un document d'amélioration combine des aspects de"

#~ msgid "a feature, and effort-tracking document"
#~ msgstr "une caractéristique, et un document de suivi des efforts"

#~ msgid "a product requirements document"
#~ msgstr "un document sur les exigences du produit"

#~ msgid "a design document"
#~ msgstr "un document de conception"

#~ msgid ""
#~ "into one file, which is created "
#~ "incrementally in collaboration with the "
#~ "community."
#~ msgstr ""
#~ "en un seul fichier, qui est créé"
#~ " progressivement en collaboration avec la"
#~ " communauté."

#~ msgid ""
#~ "For far-fetching changes or features "
#~ "proposed to Flower, an abstraction "
#~ "beyond a single GitHub issue or "
#~ "pull request is required to understand"
#~ " and communicate upcoming changes to "
#~ "the project."
#~ msgstr ""
#~ "Pour les changements lointains ou les"
#~ " fonctionnalités proposées à Flower, une"
#~ " abstraction au-delà d'une simple "
#~ "question GitHub ou d'une demande de "
#~ "tirage est nécessaire pour comprendre et"
#~ " communiquer les changements à venir "
#~ "dans le projet."

#~ msgid ""
#~ "The purpose of this process is to"
#~ " reduce the amount of \"tribal "
#~ "knowledge\" in our community. By moving"
#~ " decisions from Slack threads, video "
#~ "calls, and hallway conversations into a"
#~ " well-tracked artifact, this process "
#~ "aims to enhance communication and "
#~ "discoverability."
#~ msgstr ""
#~ "L'objectif de ce processus est de "
#~ "réduire la quantité de \"connaissances "
#~ "tribales\" dans notre communauté. En "
#~ "déplaçant les décisions des fils de "
#~ "discussion Slack, des appels vidéo et"
#~ " des conversations de couloir vers un"
#~ " artefact bien suivi, ce processus "
#~ "vise à améliorer la communication et "
#~ "la découvrabilité."

#~ msgid ""
#~ "Roughly any larger, user-facing "
#~ "enhancement should follow the Enhancement "
#~ "process. If an enhancement would be "
#~ "described in either written or verbal"
#~ " communication to anyone besides the "
#~ "author or developer, then consider "
#~ "creating an Enhancement Doc."
#~ msgstr ""
#~ "Si une amélioration doit être décrite"
#~ " par écrit ou verbalement à quelqu'un"
#~ " d'autre que l'auteur ou le "
#~ "développeur, il faut envisager de créer"
#~ " un document d'amélioration."

#~ msgid ""
#~ "Similarly, any technical effort (refactoring,"
#~ " major architectural change) that will "
#~ "impact a large section of the "
#~ "development community should also be "
#~ "communicated widely. The Enhancement process"
#~ " is suited for this even if it"
#~ " will have zero impact on the "
#~ "typical user or operator."
#~ msgstr ""
#~ "De même, tout effort technique "
#~ "(refactorisation, changement architectural majeur)"
#~ " qui aura un impact sur une "
#~ "grande partie de la communauté de "
#~ "développement doit également être communiqué"
#~ " à grande échelle. Le processus "
#~ "d'amélioration est adapté à cela, même"
#~ " s'il n'aura aucun impact sur "
#~ "l'utilisateur ou l'opérateur type."

#~ msgid ""
#~ "For small changes and additions, going"
#~ " through the Enhancement process would "
#~ "be time-consuming and unnecessary. This"
#~ " includes, for example, adding new "
#~ "Federated Learning algorithms, as these "
#~ "only add features without changing how"
#~ " Flower works or is used."
#~ msgstr ""
#~ "Pour les petits changements et ajouts,"
#~ " passer par le processus d'amélioration "
#~ "prendrait beaucoup de temps et serait"
#~ " inutile. Cela inclut, par exemple, "
#~ "l'ajout de nouveaux algorithmes "
#~ "d'apprentissage fédéré, car ceux-ci ne"
#~ " font qu'ajouter des fonctionnalités sans"
#~ " changer le fonctionnement ou l'utilisation"
#~ " de Flower."

#~ msgid ""
#~ "Enhancements are different from feature "
#~ "requests, as they are already providing"
#~ " a laid-out path for implementation"
#~ " and are championed by members of "
#~ "the community."
#~ msgstr ""
#~ "Les améliorations sont différentes des "
#~ "demandes de fonctionnalités, car elles "
#~ "fournissent déjà un chemin tracé pour"
#~ " la mise en œuvre et sont "
#~ "défendues par les membres de la "
#~ "communauté."

#~ msgid ""
#~ "An Enhancement is captured in a "
#~ "Markdown file that follows a defined "
#~ "template and a workflow to review "
#~ "and store enhancement docs for reference"
#~ " — the Enhancement Doc."
#~ msgstr ""
#~ "Une amélioration est capturée dans un"
#~ " fichier Markdown qui suit un modèle"
#~ " défini et un flux de travail "
#~ "pour examiner et stocker les documents"
#~ " d'amélioration pour référence - le "
#~ "Doc d'amélioration."

#~ msgid "Enhancement Doc Template"
#~ msgstr "Modèle de document d'amélioration"

#~ msgid ""
#~ "Each enhancement doc is provided as "
#~ "a Markdown file having the following "
#~ "structure"
#~ msgstr ""
#~ "Chaque document d'amélioration est fourni "
#~ "sous la forme d'un fichier Markdown "
#~ "ayant la structure suivante"

#~ msgid "Metadata (as [described below](#metadata) in form of a YAML preamble)"
#~ msgstr ""
#~ "Métadonnées (comme [décrit ci-"
#~ "dessous](#metadata) sous la forme d'un "
#~ "préambule YAML)"

#~ msgid "Title (same as in metadata)"
#~ msgstr "Titre (le même que dans les métadonnées)"

#~ msgid "Table of Contents (if needed)"
#~ msgstr "Table des matières (si nécessaire)"

#~ msgid "Notes/Constraints/Caveats (optional)"
#~ msgstr "Notes/Contraintes/Cavats (facultatif)"

#~ msgid "Design Details (optional)"
#~ msgstr "Détails de la conception (facultatif)"

#~ msgid "Graduation Criteria"
#~ msgstr "Critères d'obtention du diplôme"

#~ msgid "Upgrade/Downgrade Strategy (if applicable)"
#~ msgstr "Stratégie de mise à niveau/rétrogradation (le cas échéant)"

#~ msgid "As a reference, this document follows the above structure."
#~ msgstr "À titre de référence, ce document suit la structure ci-dessus."

#~ msgid ""
#~ "**fed-number** (Required) The `fed-"
#~ "number` of the last Flower Enhancement"
#~ " Doc + 1. With this number, it"
#~ " becomes easy to reference other "
#~ "proposals."
#~ msgstr ""
#~ "**numérofed** (Obligatoire) Le `numérofed` du"
#~ " dernier document d'amélioration de la "
#~ "fleur + 1. Avec ce numéro, il "
#~ "devient facile de faire référence à "
#~ "d'autres propositions."

#~ msgid "**title** (Required) The title of the proposal in plain language."
#~ msgstr "**titre** (obligatoire) Le titre de la proposition en langage clair."

#~ msgid ""
#~ "**status** (Required) The current status "
#~ "of the proposal. See [workflow](#workflow) "
#~ "for the possible states."
#~ msgstr ""
#~ "**status** (obligatoire) L'état actuel de "
#~ "la proposition. Voir [workflow](#workflow) "
#~ "pour les états possibles."

#~ msgid ""
#~ "**authors** (Required) A list of authors"
#~ " of the proposal. This is simply "
#~ "the GitHub ID."
#~ msgstr ""
#~ "**authors** (Obligatoire) Une liste des "
#~ "auteurs de la proposition, il s'agit "
#~ "simplement de l'identifiant GitHub."

#~ msgid ""
#~ "**creation-date** (Required) The date "
#~ "that the proposal was first submitted"
#~ " in a PR."
#~ msgstr ""
#~ "**creation-date** (Obligatoire) Date à "
#~ "laquelle la proposition a été soumise"
#~ " pour la première fois dans un "
#~ "RP."

#~ msgid ""
#~ "**last-updated** (Optional) The date "
#~ "that the proposal was last changed "
#~ "significantly."
#~ msgstr ""
#~ "**dernière mise à jour** (Facultatif) La"
#~ " date à laquelle la proposition a "
#~ "été modifiée de manière significative "
#~ "pour la dernière fois."

#~ msgid ""
#~ "**see-also** (Optional) A list of "
#~ "other proposals that are relevant to "
#~ "this one."
#~ msgstr ""
#~ "**see-also** (Facultatif) Une liste "
#~ "d'autres propositions qui sont pertinentes "
#~ "par rapport à celle-ci."

#~ msgid "**replaces** (Optional) A list of proposals that this one replaces."
#~ msgstr ""
#~ "**replaces** (Facultatif) Une liste de "
#~ "propositions que celle-ci remplace."

#~ msgid ""
#~ "**superseded-by** (Optional) A list of"
#~ " proposals that this one supersedes."
#~ msgstr ""
#~ "**superseded-by** (Facultatif) Une liste "
#~ "de propositions que celle-ci remplace."

#~ msgid "Workflow"
#~ msgstr "Flux de travail"

#~ msgid ""
#~ "The idea forming the enhancement should"
#~ " already have been discussed or "
#~ "pitched in the community. As such, "
#~ "it needs a champion, usually the "
#~ "author, who shepherds the enhancement. "
#~ "This person also has to find "
#~ "committers to Flower willing to review"
#~ " the proposal."
#~ msgstr ""
#~ "L'idée à l'origine de l'amélioration "
#~ "doit déjà avoir fait l'objet d'une "
#~ "discussion ou d'une présentation au sein"
#~ " de la communauté. À ce titre, "
#~ "elle a besoin d'un champion, "
#~ "généralement l'auteur, qui se charge de"
#~ " l'amélioration. Cette personne doit "
#~ "également trouver des committers to "
#~ "Flower prêts à examiner la proposition."

#~ msgid ""
#~ "New enhancements are checked in with "
#~ "a file name in the form of "
#~ "`NNNN-YYYYMMDD-enhancement-title.md`, with "
#~ "`NNNN` being the Flower Enhancement Doc"
#~ " number, to `enhancements`. All "
#~ "enhancements start in `provisional` state "
#~ "as part of a pull request. "
#~ "Discussions are done as part of "
#~ "the pull request review."
#~ msgstr ""
#~ "Les nouvelles améliorations sont enregistrées"
#~ " avec un nom de fichier de la"
#~ " forme `NNN-YYYMMDD-enhancement-title.md`,"
#~ " `NNNN` étant le numéro du document"
#~ " d'amélioration de la fleur, dans "
#~ "`enhancements`. Toutes les améliorations "
#~ "commencent à l'état `provisionnel` dans "
#~ "le cadre d'une demande d'extraction. Les"
#~ " discussions sont effectuées dans le "
#~ "cadre de l'examen de la demande "
#~ "d'extraction."

#~ msgid ""
#~ "Once an enhancement has been reviewed"
#~ " and approved, its status is changed"
#~ " to `implementable`. The actual "
#~ "implementation is then done in separate"
#~ " pull requests. These pull requests "
#~ "should mention the respective enhancement "
#~ "as part of their description. After "
#~ "the implementation is done, the proposal"
#~ " status is changed to `implemented`."
#~ msgstr ""
#~ "Une fois qu'une amélioration a été "
#~ "examinée et approuvée, son statut passe"
#~ " à `implémentable`. L'implémentation réelle "
#~ "est alors réalisée dans des demandes "
#~ "d'extension séparées. Ces demandes d'extension"
#~ " doivent mentionner l'amélioration concernée "
#~ "dans leur description. Une fois "
#~ "l'implémentation réalisée, le statut de "
#~ "la proposition passe à `implémented`."

#~ msgid ""
#~ "Under certain conditions, other states "
#~ "are possible. An Enhancement has the "
#~ "following states:"
#~ msgstr ""
#~ "Sous certaines conditions, d'autres états "
#~ "sont possibles. Une amélioration a les"
#~ " états suivants :"

#~ msgid ""
#~ "`provisional`: The enhancement has been "
#~ "proposed and is actively being defined."
#~ " This is the starting state while "
#~ "the proposal is being fleshed out "
#~ "and actively defined and discussed."
#~ msgstr ""
#~ "`provisoire` : L'amélioration a été "
#~ "proposée et est en cours de "
#~ "définition. C'est l'état de départ "
#~ "pendant que la proposition est étoffée"
#~ " et activement définie et discutée."

#~ msgid "`implementable`: The enhancement has been reviewed and approved."
#~ msgstr "`implementable` : L'amélioration a été examinée et approuvée."

#~ msgid ""
#~ "`implemented`: The enhancement has been "
#~ "implemented and is no longer actively"
#~ " changed."
#~ msgstr ""
#~ "`implemented` : L'amélioration a été "
#~ "mise en œuvre et n'est plus "
#~ "activement modifiée."

#~ msgid ""
#~ "`deferred`: The enhancement is proposed "
#~ "but not actively being worked on."
#~ msgstr ""
#~ "`deferred` : L'amélioration est proposée "
#~ "mais n'est pas activement travaillée."

#~ msgid ""
#~ "`rejected`: The authors and reviewers "
#~ "have decided that this enhancement is"
#~ " not moving forward."
#~ msgstr ""
#~ "`rejeté` : Les auteurs et les "
#~ "réviseurs ont décidé que cette "
#~ "amélioration n'allait pas de l'avant."

#~ msgid "`withdrawn`: The authors have withdrawn the enhancement."
#~ msgstr "`withdrawn` : Les auteurs ont retiré l'amélioration."

#~ msgid "`replaced`: The enhancement has been replaced by a new enhancement."
#~ msgstr ""
#~ "`replaced` : L'amélioration a été "
#~ "remplacée par une nouvelle amélioration."

#~ msgid ""
#~ "Adding an additional process to the "
#~ "ones already provided by GitHub (Issues"
#~ " and Pull Requests) adds more "
#~ "complexity and can be a barrier "
#~ "for potential first-time contributors."
#~ msgstr ""
#~ "L'ajout d'un processus supplémentaire à "
#~ "ceux déjà fournis par GitHub (Issues "
#~ "et Pull Requests) ajoute plus de "
#~ "complexité et peut constituer un "
#~ "obstacle pour les éventuels nouveaux "
#~ "contributeurs."

#~ msgid ""
#~ "Expanding the proposal template beyond "
#~ "the single-sentence description currently "
#~ "required in the features issue template"
#~ " may be a heavy burden for "
#~ "non-native English speakers."
#~ msgstr ""
#~ "Élargir le modèle de proposition au-"
#~ "delà de la description d'une seule "
#~ "phrase actuellement requise dans le "
#~ "modèle de questions sur les "
#~ "caractéristiques peut constituer une lourde"
#~ " charge pour les personnes dont "
#~ "l'anglais n'est pas la langue "
#~ "maternelle."

#~ msgid "GitHub Issues"
#~ msgstr "Questions sur GitHub"

#~ msgid ""
#~ "Using GitHub Issues for these kinds "
#~ "of enhancements is doable. One could "
#~ "use, for example, tags, to differentiate"
#~ " and filter them from other issues."
#~ " The main issue is in discussing "
#~ "and reviewing an enhancement: GitHub "
#~ "issues only have a single thread "
#~ "for comments. Enhancements usually have "
#~ "multiple threads of discussion at the"
#~ " same time for various parts of "
#~ "the doc. Managing these multiple "
#~ "discussions can be confusing when using"
#~ " GitHub Issues."
#~ msgstr ""
#~ "Il est possible d'utiliser GitHub Issues"
#~ " pour ce type d'améliorations. On "
#~ "pourrait utiliser, par exemple, des "
#~ "balises pour les différencier et les "
#~ "filtrer par rapport aux autres "
#~ "problèmes. Le principal problème concerne "
#~ "la discussion et la révision d'une "
#~ "amélioration : les GitHub Issues n'ont"
#~ " qu'un seul fil de discussion pour"
#~ " les commentaires. Les améliorations ont"
#~ " généralement plusieurs fils de discussion"
#~ " en même temps pour différentes "
#~ "parties de la documentation. La gestion"
#~ " de ces multiples discussions peut "
#~ "être déroutante lorsque l'on utilise "
#~ "GitHub Issues."

#~ msgid "Google Docs"
#~ msgstr "Google Docs"

#~ msgid ""
#~ "Google Docs allow for multiple threads"
#~ " of discussions. But as Google Docs"
#~ " are hosted outside the project, "
#~ "their discoverability by the community "
#~ "needs to be taken care of. A "
#~ "list of links to all proposals has"
#~ " to be managed and made available "
#~ "for the community. Compared to shipping"
#~ " proposals as part of Flower's "
#~ "repository, the potential for missing "
#~ "links is much higher."
#~ msgstr ""
#~ "Les Google Docs permettent de multiplier"
#~ " les fils de discussion. Mais comme"
#~ " les Google Docs sont hébergés en "
#~ "dehors du projet, il faut veiller "
#~ "à ce que la communauté puisse les"
#~ " découvrir. Une liste de liens vers"
#~ " toutes les propositions doit être "
#~ "gérée et mise à la disposition de"
#~ " la communauté. Par rapport à l'envoi"
#~ " de propositions dans le cadre du "
#~ "référentiel de Flower, le risque de "
#~ "liens manquants est beaucoup plus élevé."

#~ msgid "FED - Flower Enhancement Doc"
#~ msgstr "FED - Doc pour l'amélioration des fleurs"

#~ msgid ""
#~ "Along with model parameters, Flower can"
#~ " send configuration values to clients. "
#~ "Configuration values can be used for "
#~ "various purposes. They are, for example,"
#~ " a popular way to control client-"
#~ "side hyperparameters from the server."
#~ msgstr ""
#~ "En plus des paramètres du modèle, "
#~ "Flower peut envoyer des valeurs de "
#~ "configuration aux clients. Les valeurs "
#~ "de configuration peuvent être utilisées "
#~ "à diverses fins. Elles constituent, par"
#~ " exemple, un moyen populaire de "
#~ "contrôler les hyperparamètres côté client "
#~ "à partir du serveur."

#~ msgid ""
#~ "Configuration values are represented as "
#~ "a dictionary with ``str`` keys and "
#~ "values of type ``bool``, ``bytes``, "
#~ "``double`` (64-bit precision float), ``int``,"
#~ " or ``str`` (or equivalent types in"
#~ " different languages). Here is an "
#~ "example of a configuration dictionary in"
#~ " Python:"
#~ msgstr ""
#~ "Les valeurs de configuration sont "
#~ "représentées sous forme de dictionnaire "
#~ "avec des clés `str`` et des "
#~ "valeurs de type `bool`, `bytes`, "
#~ "`double` (float de précision 64 bits),"
#~ " `int`, ou `str` (ou des types "
#~ "équivalents dans d'autres langages). Voici "
#~ "un exemple de dictionnaire de "
#~ "configuration en Python :"

#~ msgid ""
#~ "One can, for example, convert a "
#~ "list of floating-point numbers to "
#~ "a JSON string, then send the JSON"
#~ " string using the configuration dictionary,"
#~ " and then convert the JSON string "
#~ "back to a list of floating-point"
#~ " numbers on the client."
#~ msgstr ""
#~ "On peut, par exemple, convertir une "
#~ "liste de nombres à virgule flottante "
#~ "en une chaîne JSON, puis envoyer "
#~ "la chaîne JSON à l'aide du "
#~ "dictionnaire de configuration, et enfin "
#~ "reconvertir la chaîne JSON en une "
#~ "liste de nombres à virgule flottante "
#~ "sur le client."

#~ msgid ""
#~ "The easiest way to send configuration"
#~ " values to clients is to use a"
#~ " built-in strategy like ``FedAvg``. "
#~ "Built-in strategies support so-called "
#~ "configuration functions. A configuration "
#~ "function is a function that the "
#~ "built-in strategy calls to get the"
#~ " configuration dictionary for the current"
#~ " round. It then forwards the "
#~ "configuration dictionary to all the "
#~ "clients selected during that round."
#~ msgstr ""
#~ "La façon la plus simple d'envoyer "
#~ "des valeurs de configuration aux clients"
#~ " est d'utiliser une stratégie intégrée "
#~ "comme :code:`FedAvg`. Les stratégies intégrées"
#~ " prennent en charge ce que l'on "
#~ "appelle les fonctions de configuration. "
#~ "Une fonction de configuration est une"
#~ " fonction que la stratégie intégrée "
#~ "appelle pour obtenir le dictionnaire de"
#~ " configuration pour le tour en cours."
#~ " Elle transmet ensuite le dictionnaire "
#~ "de configuration à tous les clients "
#~ "sélectionnés au cours de ce tour."

#~ msgid ""
#~ "To make the built-in strategies "
#~ "use this function, we can pass it"
#~ " to ``FedAvg`` during initialization using"
#~ " the parameter ``on_fit_config_fn``:"
#~ msgstr ""
#~ "Pour que les stratégies intégrées "
#~ "utilisent cette fonction, nous pouvons "
#~ "la passer à ``FedAvg`` lors de "
#~ "l'initialisation en utilisant le paramètre "
#~ ":code:`on_fit_config_fn` :"

#~ msgid ""
#~ "One the client side, we receive "
#~ "the configuration dictionary in ``fit``:"
#~ msgstr ""
#~ "Côté client, nous recevons le "
#~ "dictionnaire de configuration dans ``fit`` "
#~ ":"

#~ msgid ""
#~ "There is also an `on_evaluate_config_fn` "
#~ "to configure evaluation, which works the"
#~ " same way. They are separate "
#~ "functions because one might want to "
#~ "send different configuration values to "
#~ "`evaluate` (for example, to use a "
#~ "different batch size)."
#~ msgstr ""
#~ "Il existe également une fonction "
#~ "`on_evaluate_config_fn` pour configurer "
#~ "l'évaluation, qui fonctionne de la même"
#~ " manière. Ce sont des fonctions "
#~ "séparées car on peut vouloir envoyer "
#~ "différentes valeurs de configuration à "
#~ "`evaluate` (par exemple, pour utiliser "
#~ "une taille de lot différente)."

#~ msgid ""
#~ "The built-in strategies call this "
#~ "function every round (that is, every "
#~ "time `Strategy.configure_fit` or "
#~ "`Strategy.configure_evaluate` runs). Calling "
#~ "`on_evaluate_config_fn` every round allows us"
#~ " to vary/change the config dict over"
#~ " consecutive rounds. If we wanted to"
#~ " implement a hyperparameter schedule, for"
#~ " example, to increase the number of"
#~ " local epochs during later rounds, we"
#~ " could do the following:"
#~ msgstr ""
#~ "Les stratégies intégrées appellent cette "
#~ "fonction à chaque tour (c'est-à-dire à"
#~ " chaque fois que `Strategy.configure_fit` "
#~ "ou `Strategy.configure_evaluate` s'exécute). Appeler"
#~ " `on_evaluate_config_fn` à chaque tour nous"
#~ " permet de varier/changer le dict de"
#~ " config au cours de tours "
#~ "consécutifs. Si nous voulions mettre en"
#~ " place un calendrier d'hyperparamètres, par"
#~ " exemple, pour augmenter le nombre "
#~ "d'époques locales au cours des derniers"
#~ " tours, nous pourrions faire ce qui"
#~ " suit :"

#~ msgid "The ``FedAvg`` strategy will call this function *every round*."
#~ msgstr "La stratégie :code:`FedAvg` appellera cette fonction *à chaque tour*."

#~ msgid "Configuring individual clients"
#~ msgstr "Configuration des clients individuels"

#~ msgid ""
#~ "In some cases, it is necessary to"
#~ " send different configuration values to "
#~ "different clients."
#~ msgstr ""
#~ "Dans certains cas, il est nécessaire "
#~ "d'envoyer des valeurs de configuration "
#~ "différentes à des clients différents."

#~ msgid ""
#~ "This can be achieved by customizing "
#~ "an existing strategy or by "
#~ ":doc:`implementing a custom strategy from "
#~ "scratch <how-to-implement-strategies>`. "
#~ "Here's a nonsensical example that "
#~ "customizes ``FedAvg`` by adding a custom"
#~ " ``\"hello\": \"world\"`` configuration key/value"
#~ " pair to the config dict of a"
#~ " *single client* (only the first "
#~ "client in the list, the other "
#~ "clients in this round to not "
#~ "receive this \"special\" config value):"
#~ msgstr ""
#~ "Ceci peut être réalisé en personnalisant"
#~ " une stratégie existante ou en "
#~ "`mettant en œuvre une stratégie "
#~ "personnalisée à partir de zéro "
#~ "<https://flower.ai/docs/framework/how-to-implement-"
#~ "strategies.html>`_. Voici un exemple absurde"
#~ " qui personnalise :code:`FedAvg` en "
#~ "ajoutant une paire clé/valeur de "
#~ "configuration personnalisée ``\"hello\" : "
#~ "\"world\"`` au config dict d'un *seul"
#~ " client* (uniquement le premier client "
#~ "de la liste, les autres clients de"
#~ " cette série ne recevant pas cette"
#~ " valeur de configuration \"spéciale\") :"

#~ msgid ""
#~ "containing relevant information including: log"
#~ " message level (e.g. ``INFO``, ``DEBUG``),"
#~ " a timestamp, the line where the "
#~ "logging took place from, as well "
#~ "as the log message itself. In this"
#~ " way, the logger would typically "
#~ "display information on your terminal as"
#~ " follows:"
#~ msgstr ""

#~ msgid ""
#~ "By default, the Flower log is "
#~ "outputted to the terminal where you "
#~ "launch your Federated Learning workload "
#~ "from. This applies for both gRPC-"
#~ "based federation (i.e. when you do "
#~ "``fl.server.start_server``) and when using the"
#~ " ``VirtualClientEngine`` (i.e. when you do"
#~ " ``fl.simulation.start_simulation``). In some "
#~ "situations you might want to save "
#~ "this log to disk. You can do "
#~ "so by calling the "
#~ "`fl.common.logger.configure() "
#~ "<https://github.com/adap/flower/blob/main/src/py/flwr/common/logger.py>`_"
#~ " function. For example:"
#~ msgstr ""

#~ msgid ""
#~ "With the above, Flower will record "
#~ "the log you see on your terminal"
#~ " to ``log.txt``. This file will be"
#~ " created in the same directory as "
#~ "were you are running the code "
#~ "from. If we inspect we see the "
#~ "log above is also recorded but "
#~ "prefixing with ``identifier`` each line:"
#~ msgstr ""
#~ "Avec ce qui précède, Flower enregistrera"
#~ " le log que vous voyez sur "
#~ "votre terminal dans :code:`log.txt`. Ce "
#~ "fichier sera créé dans le répertoire "
#~ "depuis lequel le code est exécuté. "
#~ "Si nous inspectons nous voyons que "
#~ "le log ci-dessous est également "
#~ "enregistré mais préfixé avec "
#~ ":code:`identifier` sur chaque ligne :"

#~ msgid ""
#~ "The ``fl.common.logger.configure`` function, also"
#~ " allows specifying a host to which"
#~ " logs can be pushed (via ``POST``)"
#~ " through a native Python "
#~ "``logging.handler.HTTPHandler``. This is a "
#~ "particularly useful feature in ``gRPC``-based"
#~ " Federated Learning workloads where "
#~ "otherwise gathering logs from all "
#~ "entities (i.e. the server and the "
#~ "clients) might be cumbersome. Note that"
#~ " in Flower simulation, the server "
#~ "automatically displays all logs. You can"
#~ " still specify a ``HTTPHandler`` should "
#~ "you wish to backup or analyze the"
#~ " logs somewhere else."
#~ msgstr ""

#~ msgid "Monitor simulation"
#~ msgstr "Simulation de moniteur"

#~ msgid ""
#~ "Flower allows you to monitor system "
#~ "resources while running your simulation. "
#~ "Moreover, the Flower simulation engine "
#~ "is powerful and enables you to "
#~ "decide how to allocate resources per "
#~ "client manner and constrain the total"
#~ " usage. Insights from resource consumption"
#~ " can help you make smarter decisions"
#~ " and speed up the execution time."
#~ msgstr ""
#~ "Flower te permet de surveiller les "
#~ "ressources du système pendant l'exécution "
#~ "de ta simulation. De plus, le "
#~ "moteur de simulation de Flower est "
#~ "puissant et te permet de décider "
#~ "comment allouer les ressources par "
#~ "manière de client et de limiter "
#~ "l'utilisation totale. Les informations sur "
#~ "la consommation des ressources peuvent "
#~ "t'aider à prendre des décisions plus "
#~ "intelligentes et à accélérer le temps"
#~ " d'exécution."

#~ msgid ""
#~ "The specific instructions assume you are"
#~ " using macOS and have the `Homebrew"
#~ " <https://brew.sh/>`_ package manager installed."
#~ msgstr ""
#~ "Les instructions spécifiques supposent que "
#~ "tu utilises macOS et que le "
#~ "gestionnaire de paquets `Homebrew "
#~ "<https://brew.sh/>`_ est installé."

#~ msgid "Downloads"
#~ msgstr "Téléchargements"

#~ msgid ""
#~ "`Prometheus <https://prometheus.io/>`_ is used "
#~ "for data collection, while `Grafana "
#~ "<https://grafana.com/>`_ will enable you to"
#~ " visualize the collected data. They "
#~ "are both well integrated with `Ray "
#~ "<https://www.ray.io/>`_ which Flower uses "
#~ "under the hood."
#~ msgstr ""
#~ "`Prometheus <https://prometheus.io/>`_ est utilisé"
#~ " pour la collecte de données, tandis"
#~ " que `Grafana <https://grafana.com/>`_ te "
#~ "permettra de visualiser les données "
#~ "collectées. Ils sont tous deux bien "
#~ "intégrés à `Ray <https://www.ray.io/>`_ que"
#~ " Flower utilise sous le capot."

#~ msgid ""
#~ "Overwrite the configuration files (depending"
#~ " on your device, it might be "
#~ "installed on a different path)."
#~ msgstr ""
#~ "Écrase les fichiers de configuration "
#~ "(selon ton appareil, il se peut "
#~ "qu'il soit installé sur un chemin "
#~ "différent)."

#~ msgid "If you are on an M1 Mac, it should be:"
#~ msgstr "Si tu es sur un Mac M1, il devrait l'être :"

#~ msgid "On the previous generation Intel Mac devices, it should be:"
#~ msgstr ""
#~ "Sur les appareils Mac Intel de la"
#~ " génération précédente, ce devrait être "
#~ "le cas :"

#~ msgid ""
#~ "Open the respective configuration files "
#~ "and change them. Depending on your "
#~ "device, use one of the two "
#~ "following commands:"
#~ msgstr ""
#~ "Ouvre les fichiers de configuration "
#~ "respectifs et modifie-les. Selon ton "
#~ "appareil, utilise l'une des deux "
#~ "commandes suivantes :"

#~ msgid ""
#~ "and then delete all the text in"
#~ " the file and paste a new "
#~ "Prometheus config you see below. You "
#~ "may adjust the time intervals to "
#~ "your requirements:"
#~ msgstr ""
#~ "puis supprime tout le texte du "
#~ "fichier et colle une nouvelle "
#~ "configuration Prometheus que tu vois "
#~ "ci-dessous. Tu peux adapter les "
#~ "intervalles de temps à tes besoins "
#~ ":"

#~ msgid ""
#~ "Now after you have edited the "
#~ "Prometheus configuration, do the same "
#~ "with the Grafana configuration files. "
#~ "Open those using one of the "
#~ "following commands as before:"
#~ msgstr ""
#~ "Maintenant, après avoir édité la "
#~ "configuration de Prometheus, fais de "
#~ "même avec les fichiers de configuration"
#~ " de Grafana. Ouvre ces derniers à "
#~ "l'aide de l'une des commandes suivantes,"
#~ " comme précédemment :"

#~ msgid ""
#~ "Your terminal editor should open and "
#~ "allow you to apply the following "
#~ "configuration as before."
#~ msgstr ""
#~ "Ton éditeur de terminal devrait s'ouvrir"
#~ " et te permettre d'appliquer la "
#~ "configuration suivante comme précédemment."

#~ msgid ""
#~ "Congratulations, you just downloaded all "
#~ "the necessary software needed for "
#~ "metrics tracking. Now, let’s start it."
#~ msgstr ""
#~ "Félicitations, tu viens de télécharger "
#~ "tous les logiciels nécessaires au suivi"
#~ " des métriques, maintenant, démarrons-le."

#~ msgid "Tracking metrics"
#~ msgstr "Suivi des mesures"

#~ msgid ""
#~ "Before running your Flower simulation, "
#~ "you have to start the monitoring "
#~ "tools you have just installed and "
#~ "configured."
#~ msgstr ""
#~ "Avant de lancer ta simulation Flower,"
#~ " tu dois démarrer les outils de "
#~ "surveillance que tu viens d'installer et"
#~ " de configurer."

#~ msgid ""
#~ "Please include the following argument in"
#~ " your Python code when starting a "
#~ "simulation."
#~ msgstr ""
#~ "Tu dois inclure l'argument suivant dans"
#~ " ton code Python lorsque tu démarres"
#~ " une simulation."

#~ msgid "Now, you are ready to start your workload."
#~ msgstr "Maintenant, tu es prêt à commencer ta charge de travail."

#~ msgid ""
#~ "Shortly after the simulation starts, you"
#~ " should see the following logs in "
#~ "your terminal:"
#~ msgstr ""
#~ "Peu de temps après le début de "
#~ "la simulation, tu devrais voir les "
#~ "journaux suivants dans ton terminal :"

#~ msgid "You can look at everything at http://127.0.0.1:8265 ."
#~ msgstr "Tu peux tout regarder sur `<http://127.0.0.1:8265>`_ ."

#~ msgid ""
#~ "It's a Ray Dashboard. You can "
#~ "navigate to Metrics (on the left "
#~ "panel, the lowest option)."
#~ msgstr ""
#~ "Il s'agit d'un tableau de bord "
#~ "Ray. Tu peux naviguer vers Metrics "
#~ "(sur le panneau de gauche, l'option "
#~ "la plus basse)."

#~ msgid ""
#~ "Or alternatively, you can just see "
#~ "them in Grafana by clicking on the"
#~ " right-up corner, “View in Grafana”."
#~ " Please note that the Ray dashboard"
#~ " is only accessible during the "
#~ "simulation. After the simulation ends, "
#~ "you can only use Grafana to "
#~ "explore the metrics. You can start "
#~ "Grafana by going to "
#~ "``http://localhost:3000/``."
#~ msgstr ""
#~ "Ou alors, tu peux simplement les "
#~ "voir dans Grafana en cliquant sur "
#~ "le coin supérieur droit, \"View in "
#~ "Grafana\". Sache que le tableau de "
#~ "bord Ray n'est accessible que pendant"
#~ " la simulation. Une fois la "
#~ "simulation terminée, tu ne peux utiliser"
#~ " Grafana que pour explorer les "
#~ "métriques. Tu peux démarrer Grafana en"
#~ " te rendant sur `http://localhost:3000/``."

#~ msgid ""
#~ "After you finish the visualization, stop"
#~ " Prometheus and Grafana. This is "
#~ "important as they will otherwise block,"
#~ " for example port ``3000`` on your"
#~ " machine as long as they are "
#~ "running."
#~ msgstr ""
#~ "Après avoir terminé la visualisation, "
#~ "arrête Prometheus et Grafana. C'est "
#~ "important car sinon ils bloqueront, par"
#~ " exemple, le port :code:`3000` sur ta"
#~ " machine tant qu'ils seront en cours"
#~ " d'exécution."

#~ msgid "Resource allocation"
#~ msgstr "Allocation des ressources"

#~ msgid ""
#~ "You must understand how the Ray "
#~ "library works to efficiently allocate "
#~ "system resources to simulation clients "
#~ "on your own."
#~ msgstr ""
#~ "Tu dois comprendre le fonctionnement de"
#~ " la bibliothèque Ray pour allouer "
#~ "efficacement les ressources du système "
#~ "aux clients de simulation de ton "
#~ "côté."

#~ msgid ""
#~ "Initially, the simulation (which Ray "
#~ "handles under the hood) starts by "
#~ "default with all the available resources"
#~ " on the system, which it shares "
#~ "among the clients. It doesn't mean "
#~ "it divides it equally among all of"
#~ " them, nor that the model training"
#~ " happens at all of them "
#~ "simultaneously. You will learn more "
#~ "about that in the later part of"
#~ " this blog. You can check the "
#~ "system resources by running the "
#~ "following:"
#~ msgstr ""
#~ "Au départ, la simulation (que Ray "
#~ "gère sous le capot) démarre par "
#~ "défaut avec toutes les ressources "
#~ "disponibles sur le système, qu'elle "
#~ "partage entre les clients. Cela ne "
#~ "signifie pas qu'elle les divise de "
#~ "manière égale entre tous, ni que "
#~ "l'apprentissage du modèle se fait sur"
#~ " tous les clients simultanément. Tu "
#~ "en apprendras plus à ce sujet dans"
#~ " la suite de ce blog. Tu peux"
#~ " vérifier les ressources du système "
#~ "en exécutant ce qui suit :"

#~ msgid "In Google Colab, the result you see might be similar to this:"
#~ msgstr "Dans Google Colab, le résultat que tu obtiens peut ressembler à ceci :"

#~ msgid ""
#~ "However, you can overwrite the defaults."
#~ " When starting a simulation, do the"
#~ " following (you don't need to "
#~ "overwrite all of them):"
#~ msgstr ""
#~ "Cependant, tu peux écraser les valeurs"
#~ " par défaut. Lorsque tu démarres une"
#~ " simulation, fais ce qui suit (tu "
#~ "n'as pas besoin de les écraser "
#~ "toutes) :"

#~ msgid "Let’s also specify the resource for a single client."
#~ msgstr "Spécifions également la ressource pour un seul client."

#~ msgid ""
#~ "Now comes the crucial part. Ray "
#~ "will start a new client only when"
#~ " it has all the required resources"
#~ " (such that they run in parallel) "
#~ "when the resources allow."
#~ msgstr ""
#~ "Ray ne démarrera un nouveau client "
#~ "que lorsqu'il disposera de toutes les"
#~ " ressources nécessaires (de manière à "
#~ "ce qu'ils fonctionnent en parallèle) "
#~ "lorsque les ressources le permettront."

#~ msgid ""
#~ "In the example above, only one "
#~ "client will be run, so your "
#~ "clients won't run concurrently. Setting "
#~ "``client_num_gpus = 0.5`` would allow "
#~ "running two clients and therefore enable"
#~ " them to run concurrently. Be careful"
#~ " not to require more resources than"
#~ " available. If you specified "
#~ "``client_num_gpus = 2``, the simulation "
#~ "wouldn't start (even if you had 2"
#~ " GPUs but decided to set 1 in"
#~ " ``ray_init_args``)."
#~ msgstr ""
#~ "Dans l'exemple ci-dessus, un seul "
#~ "client sera exécuté, donc tes clients"
#~ " ne fonctionneront pas simultanément. En"
#~ " définissant :code:`client_num_gpus = 0.5`, "
#~ "tu pourras exécuter deux clients et "
#~ "donc les faire fonctionner simultanément. "
#~ "Fais attention à ne pas demander "
#~ "plus de ressources que celles "
#~ "disponibles. Si tu as spécifié "
#~ ":code:`client_num_gpus = 2`, la simulation "
#~ "ne démarrera pas (même si tu as"
#~ " 2 GPU mais que tu as décidé"
#~ " d'en définir 1 dans "
#~ ":code:`ray_init_args`)."

#~ msgid "Q: I don't see any metrics logged."
#~ msgstr "Q : Je ne vois aucune mesure enregistrée."

#~ msgid ""
#~ "A: The timeframe might not be "
#~ "properly set. The setting is in "
#~ "the top right corner (\"Last 30 "
#~ "minutes\" by default). Please change the"
#~ " timeframe to reflect the period when"
#~ " the simulation was running."
#~ msgstr ""
#~ "R : Il se peut que le délai"
#~ " ne soit pas correctement défini. Le"
#~ " paramètre se trouve dans le coin "
#~ "supérieur droit (\"Dernières 30 minutes\" "
#~ "par défaut). Modifie le délai pour "
#~ "qu'il corresponde à la période pendant"
#~ " laquelle la simulation s'est déroulée."

#~ msgid ""
#~ "Q: I see “Grafana server not "
#~ "detected. Please make sure the Grafana"
#~ " server is running and refresh this"
#~ " page” after going to the Metrics "
#~ "tab in Ray Dashboard."
#~ msgstr ""
#~ "Q : Je vois s'afficher \"Serveur "
#~ "Grafana non détecté. Vérifie que le "
#~ "serveur Grafana fonctionne et actualise "
#~ "cette page\" après avoir accédé à "
#~ "l'onglet Métriques dans Ray Dashboard."

#~ msgid ""
#~ "A: You probably don't have Grafana "
#~ "running. Please check the running "
#~ "services"
#~ msgstr ""
#~ "R : Grafana n'est probablement pas "
#~ "en cours d'exécution. Vérifie les "
#~ "services en cours d'exécution"

#~ msgid ""
#~ "Q: I see \"This site can't be "
#~ "reached\" when going to http://127.0.0.1:8265."
#~ msgstr ""
#~ "Q : Je vois \"This site can't "
#~ "be reached\" quand je vais sur "
#~ "`<http://127.0.0.1:8265>`_."

#~ msgid ""
#~ "A: Either the simulation has already "
#~ "finished, or you still need to "
#~ "start Prometheus."
#~ msgstr ""
#~ "R : Soit la simulation est déjà"
#~ " terminée, soit tu dois encore "
#~ "démarrer Prometheus."

#~ msgid "Resources"
#~ msgstr "Ressources"

#~ msgid ""
#~ "Ray Dashboard: https://docs.ray.io/en/latest/ray-"
#~ "observability/getting-started.html"
#~ msgstr ""
#~ "Tableau de bord Ray : "
#~ "`<https://docs.ray.io/en/latest/ray-core/ray-"
#~ "dashboard.html>`_"

#~ msgid "Ray Metrics: https://docs.ray.io/en/latest/cluster/metrics.html"
#~ msgstr ""
#~ "Ray Metrics : `<https://docs.ray.io/en/latest"
#~ "/ray-observability/ray-metrics.html>`_"

#~ msgid ""
#~ "The ``VirtualClientEngine`` schedules, launches "
#~ "and manages `virtual` clients. These "
#~ "clients are identical to `non-virtual`"
#~ " clients (i.e. the ones you launch"
#~ " via the command `flwr.client.start_client "
#~ "<ref-api-flwr.html#start-client>`_) in the"
#~ " sense that they can be configure "
#~ "by creating a class inheriting, for "
#~ "example, from `flwr.client.NumPyClient <ref-"
#~ "api-flwr.html#flwr.client.NumPyClient>`_ and therefore"
#~ " behave in an identical way. In "
#~ "addition to that, clients managed by "
#~ "the ``VirtualClientEngine`` are:"
#~ msgstr ""

#~ msgid ""
#~ "self-managed: this means that you "
#~ "as a user do not need to "
#~ "launch clients manually, instead this "
#~ "gets delegated to ``VirtualClientEngine``'s "
#~ "internals."
#~ msgstr ""

#~ msgid ""
#~ "The ``VirtualClientEngine`` implements `virtual` "
#~ "clients using `Ray <https://www.ray.io/>`_, an"
#~ " open-source framework for scalable "
#~ "Python workloads. In particular, Flower's "
#~ "``VirtualClientEngine`` makes use of `Actors"
#~ " <https://docs.ray.io/en/latest/ray-core/actors.html>`_ "
#~ "to spawn `virtual` clients and run "
#~ "their workload."
#~ msgstr ""

#~ msgid ""
#~ "By default the VCE has access to"
#~ " all system resources (i.e. all CPUs,"
#~ " all GPUs, etc) since that is "
#~ "also the default behavior when starting"
#~ " Ray. However, in some settings you"
#~ " might want to limit how many "
#~ "of your system resources are used "
#~ "for simulation. You can do this "
#~ "via the ``ray_init_args`` input argument "
#~ "to ``start_simulation`` which the VCE "
#~ "internally passes to Ray's ``ray.init`` "
#~ "command. For a complete list of "
#~ "settings you can configure check the "
#~ "`ray.init <https://docs.ray.io/en/latest/ray-"
#~ "core/api/doc/ray.init.html#ray-init>`_ documentation. "
#~ "Do not set ``ray_init_args`` if you "
#~ "want the VCE to use all your "
#~ "system's CPUs and GPUs."
#~ msgstr ""

#~ msgid ""
#~ "By default the ``VirtualClientEngine`` assigns"
#~ " a single CPU core (and nothing "
#~ "else) to each virtual client. This "
#~ "means that if your system has 10"
#~ " cores, that many virtual clients can"
#~ " be concurrently running."
#~ msgstr ""

#~ msgid "``num_cpus`` indicates the number of CPU cores a client would get."
#~ msgstr ""

#~ msgid ""
#~ "``num_gpus`` indicates the **ratio** of "
#~ "GPU memory a client gets assigned."
#~ msgstr ""

#~ msgid ""
#~ "While the ``client_resources`` can be "
#~ "used to control the degree of "
#~ "concurrency in your FL simulation, this"
#~ " does not stop you from running "
#~ "dozens, hundreds or even thousands of"
#~ " clients in the same round and "
#~ "having orders of magnitude more "
#~ "`dormant` (i.e. not participating in a"
#~ " round) clients. Let's say you want"
#~ " to have 100 clients per round "
#~ "but your system can only accommodate "
#~ "8 clients concurrently. The "
#~ "``VirtualClientEngine`` will schedule 100 jobs"
#~ " to run (each simulating a client "
#~ "sampled by the strategy) and then "
#~ "will execute them in a resource-"
#~ "aware manner in batches of 8."
#~ msgstr ""

#~ msgid ""
#~ "Flower's ``VirtualClientEngine`` allows you to"
#~ " run FL simulations across multiple "
#~ "compute nodes. Before starting your "
#~ "multi-node simulation ensure that you:"
#~ msgstr ""

#~ msgid ""
#~ "Pass ``ray_init_args={\"address\"=\"auto\"}`` to "
#~ "`start_simulation <ref-api-"
#~ "flwr.html#flwr.simulation.start_simulation>`_ so the "
#~ "``VirtualClientEngine`` attaches to a running"
#~ " Ray instance."
#~ msgstr ""

#~ msgid ""
#~ "Start Ray on you head node: on "
#~ "the terminal type ``ray start --head``."
#~ " This command will print a few "
#~ "lines, one of which indicates how "
#~ "to attach other nodes to the head"
#~ " node."
#~ msgstr ""

#~ msgid ""
#~ "Attach other nodes to the head "
#~ "node: copy the command shown after "
#~ "starting the head and execute it "
#~ "on terminal of a new node: for "
#~ "example ``ray start --address='192.168.1.132:6379'``"
#~ msgstr ""

#~ msgid ""
#~ "Once your simulation is finished, if "
#~ "you'd like to dismantle your cluster "
#~ "you simply need to run the command"
#~ " ``ray stop`` in each node's terminal"
#~ " (including the head node)."
#~ msgstr ""

#~ msgid ""
#~ "User ``ray status`` to check all "
#~ "nodes connected to your head node "
#~ "as well as the total resources "
#~ "available to the ``VirtualClientEngine``."
#~ msgstr ""

#~ msgid ""
#~ "When attaching a new node to the"
#~ " head, all its resources (i.e. all"
#~ " CPUs, all GPUs) will be visible "
#~ "by the head node. This means that"
#~ " the ``VirtualClientEngine`` can schedule "
#~ "as many `virtual` clients as that "
#~ "node can possible run. In some "
#~ "settings you might want to exclude "
#~ "certain resources from the simulation. "
#~ "You can do this by appending "
#~ "`--num-cpus=<NUM_CPUS_FROM_NODE>` and/or `--num-"
#~ "gpus=<NUM_GPUS_FROM_NODE>` in any ``ray "
#~ "start`` command (including when starting "
#~ "the head)"
#~ msgstr ""

#~ msgid ""
#~ "The VCE assigns a share of GPU "
#~ "memory to a client that specifies "
#~ "the key ``num_gpus`` in ``client_resources``."
#~ " This being said, Ray (used "
#~ "internally by the VCE) is by "
#~ "default:"
#~ msgstr ""

#~ msgid ""
#~ "not aware of the total VRAM "
#~ "available on the GPUs. This means "
#~ "that if you set ``num_gpus=0.5`` and "
#~ "you have two GPUs in your system"
#~ " with different (e.g. 32GB and 8GB)"
#~ " VRAM amounts, they both would run"
#~ " 2 clients concurrently."
#~ msgstr ""

#~ msgid ""
#~ "If you want to run several "
#~ "independent Flower simulations on the "
#~ "same machine you need to mask-out"
#~ " your GPUs with "
#~ "``CUDA_VISIBLE_DEVICES=\"<GPU_IDs>\"`` when launching "
#~ "your experiment."
#~ msgstr ""

#~ msgid ""
#~ "In addition, the GPU resource limits "
#~ "passed to ``client_resources`` are not "
#~ "`enforced` (i.e. they can be exceeded)"
#~ " which can result in the situation"
#~ " of client using more VRAM than "
#~ "the ratio specified when starting the"
#~ " simulation."
#~ msgstr ""

#~ msgid ""
#~ "This would need to be done in "
#~ "the main process (which is where "
#~ "the server would run) and in each"
#~ " Actor created by the VCE. By "
#~ "means of ``actor_kwargs`` we can pass"
#~ " the reserved key `\"on_actor_init_fn\"` in"
#~ " order to specify a function to "
#~ "be executed upon actor initialization. "
#~ "In this case, to enable GPU growth"
#~ " for TF workloads. It would look "
#~ "as follows:"
#~ msgstr ""

#~ msgid ""
#~ "For ensuring data instance-level privacy"
#~ " during local model training on the"
#~ " client side, consider leveraging privacy"
#~ " engines such as Opacus and "
#~ "TensorFlow Privacy. For examples of "
#~ "using Flower with these engines, please"
#~ " refer to the Flower examples "
#~ "directory (`Opacus "
#~ "<https://github.com/adap/flower/tree/main/examples/opacus>`_, "
#~ "`Tensorflow Privacy "
#~ "<https://github.com/adap/flower/tree/main/examples/dp-sgd-"
#~ "mnist>`_)."
#~ msgstr ""

#~ msgid ""
#~ "This creates a strategy with all "
#~ "parameters left at their default values"
#~ " and passes it to the "
#~ "``start_server`` function. It is usually "
#~ "recommended to adjust a few parameters"
#~ " during instantiation:"
#~ msgstr ""
#~ "Cela crée une stratégie dont tous "
#~ "les paramètres sont laissés à leur "
#~ "valeur par défaut et la transmet à"
#~ " la fonction :code:`start_server`. Il est"
#~ " généralement recommandé d'ajuster quelques "
#~ "paramètres lors de l'instanciation :"

#~ msgid "flwr is the Flower command line interface."
#~ msgstr ""

#~ msgid "Options"
#~ msgstr "Solution"

#~ msgid "Install completion for the current shell."
#~ msgstr ""

#~ msgid ""
#~ "Show completion for the current shell,"
#~ " to copy it or customize the "
#~ "installation."
#~ msgstr ""

#~ msgid "Build a Flower App into a Flower App Bundle (FAB)."
#~ msgstr ""

#~ msgid ""
#~ "You can run ``flwr build`` without "
#~ "any arguments to bundle the app "
#~ "located in the current directory. "
#~ "Alternatively, you can you can specify"
#~ " a path using the ``--app`` option"
#~ " to bundle an app located at "
#~ "the provided path. For example:"
#~ msgstr ""

#~ msgid "``flwr build --app ./apps/flower-hello-world``."
#~ msgstr ""

#~ msgid "Path of the Flower App to bundle into a FAB"
#~ msgstr ""

#~ msgid "Install a Flower App Bundle."
#~ msgstr "Installer Flower"

#~ msgid "It can be ran with a single FAB file argument:"
#~ msgstr ""

#~ msgid "``flwr install ./target_project.fab``"
#~ msgstr ""

#~ msgid "The target install directory can be specified with ``--flwr-dir``:"
#~ msgstr ""

#~ msgid "``flwr install ./target_project.fab --flwr-dir ./docs/flwr``"
#~ msgstr ""

#~ msgid ""
#~ "This will install ``target_project`` to "
#~ "``./docs/flwr/``. By default, ``flwr-dir`` "
#~ "is equal to:"
#~ msgstr ""

#~ msgid "``$FLWR_HOME/`` if ``$FLWR_HOME`` is defined"
#~ msgstr ""

#~ msgid "``$XDG_DATA_HOME/.flwr/`` if ``$XDG_DATA_HOME`` is defined"
#~ msgstr ""

#~ msgid "``$HOME/.flwr/`` in all other cases"
#~ msgstr ""

#~ msgid "The desired install path."
#~ msgstr ""

#~ msgid "Optional argument"
#~ msgstr "Améliorations facultatives"

#~ msgid "The source FAB file to install."
#~ msgstr ""

#~ msgid "Get logs from a Flower project run."
#~ msgstr ""

#~ msgid "Flag to stream or print logs from the Flower run"
#~ msgstr ""

#~ msgid "default"
#~ msgstr "Flux de travail"

#~ msgid "``True``"
#~ msgstr ""

#~ msgid "Required argument"
#~ msgstr "Amélioration de la documentation"

#~ msgid "The Flower run ID to query"
#~ msgstr "Rejoignez la communauté de Flower"

#~ msgid "Path of the Flower project to run"
#~ msgstr ""

#~ msgid "Name of the federation to run the app on"
#~ msgstr ""

#~ msgid "Create new Flower App."
#~ msgstr "Serveur de Flower"

#~ msgid "The ML framework to use"
#~ msgstr ""

#~ msgid "options"
#~ msgstr "Solution"

#~ msgid ""
#~ "PyTorch | TensorFlow | sklearn | "
#~ "HuggingFace | JAX | MLX | NumPy"
#~ " | FlowerTune | Flower Baseline"
#~ msgstr ""

#~ msgid "The Flower username of the author"
#~ msgstr ""

#~ msgid "The name of the Flower App"
#~ msgstr "Chargement des données"

#~ msgid "Run Flower App."
#~ msgstr "Serveur de Flower"

#~ msgid "Override configuration key-value pairs, should be of the format:"
#~ msgstr ""

#~ msgid ""
#~ "`--run-config 'key1=\"value1\" key2=\"value2\"' "
#~ "--run-config 'key3=\"value3\"'`"
#~ msgstr ""

#~ msgid ""
#~ "Note that `key1`, `key2`, and `key3` "
#~ "in this example need to exist "
#~ "inside the `pyproject.toml` in order to"
#~ " be properly overriden."
#~ msgstr ""

#~ msgid ""
#~ "Use `--stream` with `flwr run` to "
#~ "display logs; logs are not streamed "
#~ "by default."
#~ msgstr ""

#~ msgid "``False``"
#~ msgstr ":code:`évaluer`"

#~ msgid "Path of the Flower App to run."
#~ msgstr "Chargement des données"

#~ msgid "Name of the federation to run the app on."
#~ msgstr ""

#~ msgid ""
#~ "Note that since version ``1.11.0``, "
#~ "``flower-server-app`` no longer supports"
#~ " passing a reference to a `ServerApp`"
#~ " attribute. Instead, you need to pass"
#~ " the path to Flower app via the"
#~ " argument ``--app``. This is the path"
#~ " to a directory containing a "
#~ "`pyproject.toml`. You can create a valid"
#~ " Flower app by executing ``flwr new``"
#~ " and following the prompt."
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`Context <flwr.common.Context>`\\ \\(node\\_id\\,"
#~ " node\\_config\\, state\\, run\\_config\\)"
#~ msgstr ""

#~ msgid ""
#~ "Holds records added by the entity "
#~ "in a given run and that will "
#~ "stay local. This means that the "
#~ "data it holds will never leave the"
#~ " system it's running from. This can"
#~ " be used as an intermediate storage"
#~ " or scratchpad when executing mods. "
#~ "It can also be used as a "
#~ "memory to access at different points "
#~ "during the lifecycle of this entity "
#~ "(e.g. across multiple rounds)"
#~ msgstr ""

#~ msgid ""
#~ "A config (key/value mapping) held by "
#~ "the entity in a given run and "
#~ "that will stay local. It can be"
#~ " used at any point during the "
#~ "lifecycle of this entity (e.g. across"
#~ " multiple rounds)"
#~ msgstr ""

#~ msgid ""
#~ ":py:obj:`RUN_SUPEREXEC_ENTER "
#~ "<flwr.common.EventType.RUN_SUPEREXEC_ENTER>`\\"
#~ msgstr "serveur.stratégie.Stratégie"

#~ msgid ""
#~ ":py:obj:`RUN_SUPEREXEC_LEAVE "
#~ "<flwr.common.EventType.RUN_SUPEREXEC_LEAVE>`\\"
#~ msgstr "serveur.stratégie.Stratégie"

#~ msgid "Abstract base Driver class for the Driver API."
#~ msgstr ""

#~ msgid "Log error stating that module `ray` could not be imported."
#~ msgstr ""

#~ msgid ""
#~ "This tutorial will show you how to"
#~ " use Flower to build a federated "
#~ "version of an existing JAX workload. "
#~ "We are using JAX to train a "
#~ "linear regression model on a scikit-"
#~ "learn dataset. We will structure the "
#~ "example similar to our `PyTorch - "
#~ "From Centralized To Federated "
#~ "<https://github.com/adap/flower/blob/main/examples/pytorch-"
#~ "from-centralized-to-federated>`_ walkthrough. "
#~ "First, we build a centralized training"
#~ " approach based on the `Linear "
#~ "Regression with JAX "
#~ "<https://coax.readthedocs.io/en/latest/examples/linear_regression/jax.html>`_"
#~ " tutorial`. Then, we build upon the"
#~ " centralized training code to run the"
#~ " training in a federated fashion."
#~ msgstr ""
#~ "Ce tutoriel te montrera comment utiliser"
#~ " Flower pour construire une version "
#~ "fédérée d'une charge de travail JAX "
#~ "existante. Nous utilisons JAX pour "
#~ "entraîner un modèle de régression "
#~ "linéaire sur un ensemble de données "
#~ "scikit-learn. Nous structurerons l'exemple "
#~ "de la même manière que notre "
#~ "présentation `PyTorch - De la "
#~ "centralisation à la fédération "
#~ "<https://github.com/adap/flower/blob/main/examples/pytorch-"
#~ "from-centralized-to-federated>`_. Tout "
#~ "d'abord, nous construisons une approche "
#~ "d'entraînement centralisée basée sur le "
#~ "tutoriel `Régression linéaire avec JAX "
#~ "<https://coax.readthedocs.io/en/latest/examples/linear_regression/jax.html>`_."
#~ " Ensuite, nous nous appuyons sur le"
#~ " code d'entraînement centralisé pour "
#~ "exécuter l'entraînement de manière fédérée."

#~ msgid ""
#~ "Before we start building our JAX "
#~ "example, we need install the packages"
#~ " ``jax``, ``jaxlib``, ``scikit-learn``, and"
#~ " ``flwr``:"
#~ msgstr ""
#~ "Avant de commencer à construire notre"
#~ " exemple JAX, nous devons installer "
#~ "les paquets :code:`jax`, :code:`jaxlib`, :code"
#~ ":`scikit-learn`, et :code:`flwr` :"

#~ msgid "Linear Regression with JAX"
#~ msgstr "Régression linéaire avec JAX"

#~ msgid ""
#~ "We begin with a brief description "
#~ "of the centralized training code based"
#~ " on a ``Linear Regression`` model. If"
#~ " you want a more in-depth "
#~ "explanation of what's going on then "
#~ "have a look at the official `JAX"
#~ " documentation <https://jax.readthedocs.io/>`_."
#~ msgstr ""
#~ "Nous commençons par une brève "
#~ "description du code d'entraînement centralisé"
#~ " basé sur un modèle :code:`Régression "
#~ "linéaire`. Si tu veux une explication"
#~ " plus approfondie de ce qui se "
#~ "passe, jette un coup d'œil à la"
#~ " documentation officielle `JAX "
#~ "<https://jax.readthedocs.io/>`_."

#~ msgid ""
#~ "Let's create a new file called "
#~ "``jax_training.py`` with all the components"
#~ " required for a traditional (centralized)"
#~ " linear regression training. First, the "
#~ "JAX packages ``jax`` and ``jaxlib`` need"
#~ " to be imported. In addition, we "
#~ "need to import ``sklearn`` since we "
#~ "use ``make_regression`` for the dataset "
#~ "and ``train_test_split`` to split the "
#~ "dataset into a training and test "
#~ "set. You can see that we do "
#~ "not yet import the ``flwr`` package "
#~ "for federated learning. This will be "
#~ "done later."
#~ msgstr ""
#~ "Créons un nouveau fichier appelé "
#~ ":code:`jax_training.py` avec tous les "
#~ "composants nécessaires pour un apprentissage"
#~ " traditionnel (centralisé) de la régression"
#~ " linéaire. Tout d'abord, les paquets "
#~ "JAX :code:`jax` et :code:`jaxlib` doivent "
#~ "être importés. En outre, nous devons "
#~ "importer :code:`sklearn` puisque nous "
#~ "utilisons :code:`make_regression` pour le jeu"
#~ " de données et :code:`train_test_split` "
#~ "pour diviser le jeu de données en"
#~ " un jeu d'entraînement et un jeu "
#~ "de test. Tu peux voir que nous "
#~ "n'avons pas encore importé le paquet "
#~ ":code:`flwr` pour l'apprentissage fédéré, ce"
#~ " qui sera fait plus tard."

#~ msgid ""
#~ "The ``load_data()`` function loads the "
#~ "mentioned training and test sets."
#~ msgstr ""
#~ "La fonction :code:`load_data()` charge les "
#~ "ensembles d'entraînement et de test "
#~ "mentionnés."

#~ msgid ""
#~ "The model architecture (a very simple"
#~ " ``Linear Regression`` model) is defined"
#~ " in ``load_model()``."
#~ msgstr ""
#~ "L'architecture du modèle (un modèle "
#~ ":code:`Régression linéaire` très simple) est"
#~ " définie dans :code:`load_model()`."

#~ msgid ""
#~ "We now need to define the training"
#~ " (function ``train()``), which loops over"
#~ " the training set and measures the"
#~ " loss (function ``loss_fn()``) for each "
#~ "batch of training examples. The loss "
#~ "function is separate since JAX takes "
#~ "derivatives with a ``grad()`` function "
#~ "(defined in the ``main()`` function and"
#~ " called in ``train()``)."
#~ msgstr ""
#~ "Nous devons maintenant définir l'entraînement"
#~ " (fonction :code:`train()`), qui boucle sur"
#~ " l'ensemble d'entraînement et mesure la "
#~ "perte (fonction :code:`loss_fn()`) pour chaque"
#~ " lot d'exemples d'entraînement. La fonction"
#~ " de perte est séparée puisque JAX "
#~ "prend des dérivés avec une fonction "
#~ ":code:`grad()` (définie dans la fonction "
#~ ":code:`main()` et appelée dans "
#~ ":code:`train()`)."

#~ msgid ""
#~ "The evaluation of the model is "
#~ "defined in the function ``evaluation()``. "
#~ "The function takes all test examples "
#~ "and measures the loss of the "
#~ "linear regression model."
#~ msgstr ""
#~ "L'évaluation du modèle est définie dans"
#~ " la fonction :code:`evaluation()`. La "
#~ "fonction prend tous les exemples de "
#~ "test et mesure la perte du modèle"
#~ " de régression linéaire."

#~ msgid ""
#~ "Having defined the data loading, model"
#~ " architecture, training, and evaluation we"
#~ " can put everything together and "
#~ "train our model using JAX. As "
#~ "already mentioned, the ``jax.grad()`` function"
#~ " is defined in ``main()`` and passed"
#~ " to ``train()``."
#~ msgstr ""
#~ "Après avoir défini le chargement des "
#~ "données, l'architecture du modèle, "
#~ "l'entraînement et l'évaluation, nous pouvons"
#~ " tout assembler et entraîner notre "
#~ "modèle à l'aide de JAX. Comme nous"
#~ " l'avons déjà mentionné, la fonction "
#~ ":code:`jax.grad()` est définie dans "
#~ ":code:`main()` et transmise à :code:`train()`."

#~ msgid "You can now run your (centralized) JAX linear regression workload:"
#~ msgstr ""
#~ "Tu peux maintenant exécuter ta charge"
#~ " de travail (centralisée) de régression "
#~ "linéaire JAX :"

#~ msgid ""
#~ "So far this should all look fairly"
#~ " familiar if you've used JAX before."
#~ " Let's take the next step and "
#~ "use what we've built to create a"
#~ " simple federated learning system "
#~ "consisting of one server and two "
#~ "clients."
#~ msgstr ""
#~ "Jusqu'à présent, tout cela devrait te"
#~ " sembler assez familier si tu as "
#~ "déjà utilisé JAX. Passons à l'étape "
#~ "suivante et utilisons ce que nous "
#~ "avons construit pour créer un simple "
#~ "système d'apprentissage fédéré composé d'un"
#~ " serveur et de deux clients."

#~ msgid "JAX meets Flower"
#~ msgstr "JAX rencontre Flower"

#~ msgid ""
#~ "The concept of federating an existing"
#~ " workload is always the same and "
#~ "easy to understand. We have to "
#~ "start a *server* and then use the"
#~ " code in ``jax_training.py`` for the "
#~ "*clients* that are connected to the "
#~ "*server*. The *server* sends model "
#~ "parameters to the clients. The *clients*"
#~ " run the training and update the "
#~ "parameters. The updated parameters are "
#~ "sent back to the *server*, which "
#~ "averages all received parameter updates. "
#~ "This describes one round of the "
#~ "federated learning process, and we "
#~ "repeat this for multiple rounds."
#~ msgstr ""
#~ "Le concept de fédération d'une charge"
#~ " de travail existante est toujours le"
#~ " même et facile à comprendre. Nous"
#~ " devons démarrer un *serveur*, puis "
#~ "utiliser le code dans :code:`jax_training.py`"
#~ " pour les *clients* qui sont "
#~ "connectés au *serveur*.Le *serveur* envoie "
#~ "les paramètres du modèle aux clients.Les"
#~ " *clients* exécutent la formation et "
#~ "mettent à jour les paramètres.Les "
#~ "paramètres mis à jour sont renvoyés "
#~ "au *serveur*, qui fait la moyenne "
#~ "de toutes les mises à jour de "
#~ "paramètres reçues.Ceci décrit un tour du"
#~ " processus d'apprentissage fédéré, et nous"
#~ " répétons cette opération pour plusieurs"
#~ " tours."

#~ msgid ""
#~ "Finally, we will define our *client* "
#~ "logic in ``client.py`` and build upon"
#~ " the previously defined JAX training "
#~ "in ``jax_training.py``. Our *client* needs "
#~ "to import ``flwr``, but also ``jax`` "
#~ "and ``jaxlib`` to update the parameters"
#~ " on our JAX model:"
#~ msgstr ""
#~ "Enfin, nous allons définir la logique"
#~ " de notre *client* dans :code:`client.py`"
#~ " et nous appuyer sur la formation "
#~ "JAX définie précédemment dans "
#~ ":code:`jax_training.py`. Notre *client* doit "
#~ "importer :code:`flwr`, mais aussi :code:`jax`"
#~ " et :code:`jaxlib` pour mettre à jour"
#~ " les paramètres de notre modèle JAX"
#~ " :"

#~ msgid ""
#~ "Implementing a Flower *client* basically "
#~ "means implementing a subclass of either"
#~ " ``flwr.client.Client`` or ``flwr.client.NumPyClient``."
#~ " Our implementation will be based on"
#~ " ``flwr.client.NumPyClient`` and we'll call "
#~ "it ``FlowerClient``. ``NumPyClient`` is "
#~ "slightly easier to implement than "
#~ "``Client`` if you use a framework "
#~ "with good NumPy interoperability (like "
#~ "JAX) because it avoids some of the"
#~ " boilerplate that would otherwise be "
#~ "necessary. ``FlowerClient`` needs to implement"
#~ " four methods, two methods for "
#~ "getting/setting model parameters, one method"
#~ " for training the model, and one "
#~ "method for testing the model:"
#~ msgstr ""
#~ "L'implémentation d'un *client* Flower signifie"
#~ " essentiellement l'implémentation d'une sous-"
#~ "classe de :code:`flwr.client.Client` ou "
#~ ":code:`flwr.client.NumPyClient`. Notre implémentation "
#~ "sera basée sur :code:`flwr.client.NumPyClient` "
#~ "et nous l'appellerons :code:`FlowerClient`. "
#~ ":code:`NumPyClient` est légèrement plus facile"
#~ " à implémenter que :code:`Client` si "
#~ "vous utilisez un framework avec une "
#~ "bonne interopérabilité NumPy (comme JAX) "
#~ "parce qu'il évite une partie du "
#~ "boilerplate qui serait autrement nécessaire."
#~ " :code:`FlowerClient` doit implémenter quatre "
#~ "méthodes, deux méthodes pour obtenir/régler"
#~ " les paramètres du modèle, une "
#~ "méthode pour former le modèle, et "
#~ "une méthode pour tester le modèle "
#~ ":"

#~ msgid "``set_parameters (optional)``"
#~ msgstr ":code:`set_parameters (optional)`"

#~ msgid "transform parameters to NumPy ``ndarray``'s"
#~ msgstr "transforme les paramètres en NumPy :code:`ndarray`'s"

#~ msgid "get the updated local model parameters and return them to the server"
#~ msgstr ""
#~ "récupère les paramètres du modèle local"
#~ " mis à jour et les renvoie au"
#~ " serveur"

#~ msgid "return the local loss to the server"
#~ msgstr "renvoie la perte locale au serveur"

#~ msgid ""
#~ "The challenging part is to transform "
#~ "the JAX model parameters from "
#~ "``DeviceArray`` to ``NumPy ndarray`` to "
#~ "make them compatible with `NumPyClient`."
#~ msgstr ""
#~ "La partie la plus difficile consiste "
#~ "à transformer les paramètres du modèle"
#~ " JAX de :code:`DeviceArray` en :code:`NumPy"
#~ " ndarray` pour les rendre compatibles "
#~ "avec `NumPyClient`."

#~ msgid ""
#~ "The two ``NumPyClient`` methods ``fit`` "
#~ "and ``evaluate`` make use of the "
#~ "functions ``train()`` and ``evaluate()`` "
#~ "previously defined in ``jax_training.py``. So"
#~ " what we really do here is we"
#~ " tell Flower through our ``NumPyClient``"
#~ " subclass which of our already "
#~ "defined functions to call for training"
#~ " and evaluation. We included type "
#~ "annotations to give you a better "
#~ "understanding of the data types that "
#~ "get passed around."
#~ msgstr ""
#~ "Les deux méthodes :code:`NumPyClient` "
#~ ":code:`fit` et :code:`evaluate` utilisent les"
#~ " fonctions :code:`train()` et :code:`evaluate()`"
#~ " définies précédemment dans "
#~ ":code:`jax_training.py`. Ce que nous faisons"
#~ " vraiment ici, c'est que nous "
#~ "indiquons à Flower, par le biais "
#~ "de notre sous-classe :code:`NumPyClient`, "
#~ "laquelle de nos fonctions déjà définies"
#~ " doit être appelée pour l'entraînement "
#~ "et l'évaluation. Nous avons inclus des"
#~ " annotations de type pour te donner"
#~ " une meilleure compréhension des types "
#~ "de données qui sont transmis."

#~ msgid "Having defined the federation process, we can run it."
#~ msgstr "Après avoir défini le processus de fédération, nous pouvons l'exécuter."

#~ msgid ""
#~ "in each window (make sure that the"
#~ " server is still running before you"
#~ " do so) and see your JAX "
#~ "project run federated learning across "
#~ "two clients. Congratulations!"
#~ msgstr ""
#~ "dans chaque fenêtre (assure-toi que "
#~ "le serveur est toujours en cours "
#~ "d'exécution avant de le faire) et "
#~ "tu verras que ton projet JAX "
#~ "exécute l'apprentissage fédéré sur deux "
#~ "clients. Félicitations !"

#~ msgid ""
#~ "The source code of this example "
#~ "was improved over time and can be"
#~ " found here: `Quickstart JAX "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "jax>`_. Our example is somewhat over-"
#~ "simplified because both clients load the"
#~ " same dataset."
#~ msgstr ""
#~ "Le code source de cet exemple a"
#~ " été amélioré au fil du temps "
#~ "et peut être trouvé ici : "
#~ "`Quickstart JAX "
#~ "<https://github.com/adap/flower/blob/main/examples/quickstart-"
#~ "jax>`_. Notre exemple est quelque peu"
#~ " simplifié à l'extrême car les deux"
#~ " clients chargent le même jeu de "
#~ "données."

#~ msgid ""
#~ "You're now prepared to explore this "
#~ "topic further. How about using a "
#~ "more sophisticated model or using a "
#~ "different dataset? How about adding more"
#~ " clients?"
#~ msgstr ""
#~ "Tu es maintenant prêt à approfondir "
#~ "ce sujet. Pourquoi ne pas utiliser "
#~ "un modèle plus sophistiqué ou un "
#~ "ensemble de données différent ? Pourquoi"
#~ " ne pas ajouter d'autres clients ?"

#~ msgid ""
#~ "In this tutorial, we will learn "
#~ "how to train a ``Logistic Regression``"
#~ " model on MNIST using Flower and "
#~ "scikit-learn."
#~ msgstr ""
#~ "Dans ce tutoriel, nous allons apprendre"
#~ " à former un :code:`modèle de "
#~ "régression logistique` sur MNIST en "
#~ "utilisant Flower et scikit-learn."

#~ msgid ""
#~ "Our example consists of one *server* "
#~ "and two *clients* all having the "
#~ "same model."
#~ msgstr ""
#~ "Notre exemple consiste en un *serveur*"
#~ " et deux *clients* ayant tous le "
#~ "même modèle."

#~ msgid ""
#~ "*Clients* are responsible for generating "
#~ "individual model parameter updates for "
#~ "the model based on their local "
#~ "datasets. These updates are then sent"
#~ " to the *server* which will aggregate"
#~ " them to produce an updated global"
#~ " model. Finally, the *server* sends "
#~ "this improved version of the model "
#~ "back to each *client*. A complete "
#~ "cycle of parameters updates is called"
#~ " a *round*."
#~ msgstr ""
#~ "*Les clients* sont chargés de générer"
#~ " des mises à jour individuelles des"
#~ " paramètres du modèle en fonction de"
#~ " leurs ensembles de données locales. "
#~ "Ces mises à jour sont ensuite "
#~ "envoyées au *serveur* qui les agrège "
#~ "pour produire un modèle global mis "
#~ "à jour. Enfin, le *serveur* renvoie "
#~ "cette version améliorée du modèle à "
#~ "chaque *client*. Un cycle complet de "
#~ "mises à jour des paramètres s'appelle"
#~ " un *round*."

#~ msgid ""
#~ "Now that we have a rough idea "
#~ "of what is going on, let's get "
#~ "started. We first need to install "
#~ "Flower. You can do this by "
#~ "running:"
#~ msgstr ""
#~ "Maintenant que nous avons une idée "
#~ "approximative de ce qui se passe, "
#~ "commençons. Nous devons d'abord installer "
#~ "Flower. Tu peux le faire en "
#~ "lançant :"

#~ msgid "Since we want to use scikit-learn, let's go ahead and install it:"
#~ msgstr "Puisque nous voulons utiliser scikt-learn, allons-y et installons-le :"

#~ msgid "Or simply install all dependencies using Poetry:"
#~ msgstr "Ou installe simplement toutes les dépendances à l'aide de Poetry :"

#~ msgid ""
#~ "Now that we have all our "
#~ "dependencies installed, let's run a "
#~ "simple distributed training with two "
#~ "clients and one server. However, before"
#~ " setting up the client and server,"
#~ " we will define all functionalities "
#~ "that we need for our federated "
#~ "learning setup within ``utils.py``. The "
#~ "``utils.py`` contains different functions "
#~ "defining all the machine learning "
#~ "basics:"
#~ msgstr ""
#~ "Maintenant que toutes nos dépendances "
#~ "sont installées, exécutons une formation "
#~ "distribuée simple avec deux clients et"
#~ " un serveur. Cependant, avant de "
#~ "configurer le client et le serveur, "
#~ "nous allons définir toutes les "
#~ "fonctionnalités dont nous avons besoin "
#~ "pour notre configuration d'apprentissage "
#~ "fédéré dans :code:`utils.py`. Le "
#~ ":code:`utils.py` contient différentes fonctions "
#~ "définissant toutes les bases de "
#~ "l'apprentissage automatique :"

#~ msgid "``get_model_parameters()``"
#~ msgstr ":code:`get_model_parameters()`"

#~ msgid "Returns the parameters of a ``sklearn`` LogisticRegression model"
#~ msgstr ""
#~ "Renvoie les paramètres d'un modèle de"
#~ " régression logistique :code:`sklearn`"

#~ msgid "``set_model_params()``"
#~ msgstr ":code:`set_model_params()`"

#~ msgid "Sets the parameters of a ``sklearn`` LogisticRegression model"
#~ msgstr ""
#~ "Définit les paramètres d'un modèle de"
#~ " régression logistique :code:`sklean`"

#~ msgid "``set_initial_params()``"
#~ msgstr ":code:`set_initial_params()`"

#~ msgid "Initializes the model parameters that the Flower server will ask for"
#~ msgstr "Initialise les paramètres du modèle que le serveur de Flower demandera"

#~ msgid ""
#~ "Please check out ``utils.py`` `here "
#~ "<https://github.com/adap/flower/blob/main/examples/sklearn-"
#~ "logreg-mnist/utils.py>`_ for more details. "
#~ "The pre-defined functions are used "
#~ "in the ``client.py`` and imported. The"
#~ " ``client.py`` also requires to import "
#~ "several packages such as Flower and "
#~ "scikit-learn:"
#~ msgstr ""
#~ "Tu peux consulter :code:`utils.py` `ici "
#~ "<https://github.com/adap/flower/blob/main/examples/sklearn-"
#~ "logreg-mnist/utils.py>`_ pour plus de "
#~ "détails. Les fonctions prédéfinies sont "
#~ "utilisées dans :code:`client.py` et importées."
#~ " :code:`client.py` nécessite également d'importer"
#~ " plusieurs paquets tels que Flower et"
#~ " scikit-learn :"

#~ msgid ""
#~ "Prior to local training, we need "
#~ "to load the MNIST dataset, a "
#~ "popular image classification dataset of "
#~ "handwritten digits for machine learning, "
#~ "and partition the dataset for FL. "
#~ "This can be conveniently achieved using"
#~ " `Flower Datasets <https://flower.ai/docs/datasets>`_."
#~ " The ``FederatedDataset.load_partition()`` method "
#~ "loads the partitioned training set for"
#~ " each partition ID defined in the "
#~ "``--partition-id`` argument."
#~ msgstr ""

#~ msgid ""
#~ "Next, the logistic regression model is"
#~ " defined and initialized with "
#~ "``utils.set_initial_params()``."
#~ msgstr ""
#~ "Ensuite, le modèle de régression "
#~ "logistique est défini et initialisé avec"
#~ " :code:`utils.set_initial_params()`."

#~ msgid ""
#~ "The Flower server interacts with clients"
#~ " through an interface called ``Client``."
#~ " When the server selects a particular"
#~ " client for training, it sends "
#~ "training instructions over the network. "
#~ "The client receives those instructions "
#~ "and calls one of the ``Client`` "
#~ "methods to run your code (i.e., to"
#~ " fit the logistic regression we "
#~ "defined earlier)."
#~ msgstr ""
#~ "Le serveur Flower interagit avec les "
#~ "clients par le biais d'une interface "
#~ "appelée :code:`Client`. Lorsque le serveur "
#~ "sélectionne un client particulier pour "
#~ "la formation, il envoie des instructions"
#~ " de formation sur le réseau. Le "
#~ "client reçoit ces instructions et "
#~ "appelle l'une des méthodes :code:`Client` "
#~ "pour exécuter ton code (c'est-à-dire "
#~ "pour ajuster la régression logistique "
#~ "que nous avons définie plus tôt)."

#~ msgid ""
#~ "Flower provides a convenience class "
#~ "called ``NumPyClient`` which makes it "
#~ "easier to implement the ``Client`` "
#~ "interface when your workload uses "
#~ "scikit-learn. Implementing ``NumPyClient`` "
#~ "usually means defining the following "
#~ "methods (``set_parameters`` is optional "
#~ "though):"
#~ msgstr ""
#~ "Flower fournit une classe de commodité"
#~ " appelée :code:`NumPyClient` qui facilite "
#~ "la mise en œuvre de l'interface "
#~ ":code:`Client` lorsque ta charge de "
#~ "travail utilise scikit-learn. Mettre en"
#~ " œuvre :code:`NumPyClient` signifie généralement"
#~ " définir les méthodes suivantes "
#~ "(:code:`set_parameters` est cependant facultatif)"
#~ " :"

#~ msgid "return the model weight as a list of NumPy ndarrays"
#~ msgstr "renvoie le poids du modèle sous la forme d'une liste de ndarrays NumPy"

#~ msgid "``set_parameters`` (optional)"
#~ msgstr ":code:`set_parameters` (optionnel)"

#~ msgid ""
#~ "update the local model weights with "
#~ "the parameters received from the server"
#~ msgstr ""
#~ "mettre à jour les poids du modèle"
#~ " local avec les paramètres reçus du"
#~ " serveur"

#~ msgid "is directly imported with ``utils.set_model_params()``"
#~ msgstr "est directement importé avec :code:`utils.set_model_params()`"

#~ msgid "set the local model weights"
#~ msgstr "fixe les poids du modèle local"

#~ msgid "train the local model"
#~ msgstr "entraîne le modèle local"

#~ msgid "return the updated local model weights"
#~ msgstr "recevoir les poids du modèle local mis à jour"

#~ msgid "test the local model"
#~ msgstr "teste le modèle local"

#~ msgid "The methods can be implemented in the following way:"
#~ msgstr "Les méthodes peuvent être mises en œuvre de la manière suivante :"

#~ msgid ""
#~ "We can now create an instance of"
#~ " our class ``MnistClient`` and add "
#~ "one line to actually run this "
#~ "client:"
#~ msgstr ""
#~ "Nous pouvons maintenant créer une "
#~ "instance de notre classe :code:`MnistClient`"
#~ " et ajouter une ligne pour exécuter"
#~ " ce client :"

#~ msgid ""
#~ "That's it for the client. We only"
#~ " have to implement ``Client`` or "
#~ "``NumPyClient`` and call "
#~ "``fl.client.start_client()``. If you implement "
#~ "a client of type ``NumPyClient`` you'll"
#~ " need to first call its "
#~ "``to_client()`` method. The string "
#~ "``\"0.0.0.0:8080\"`` tells the client which"
#~ " server to connect to. In our "
#~ "case we can run the server and "
#~ "the client on the same machine, "
#~ "therefore we use ``\"0.0.0.0:8080\"``. If "
#~ "we run a truly federated workload "
#~ "with the server and clients running "
#~ "on different machines, all that needs"
#~ " to change is the ``server_address`` "
#~ "we pass to the client."
#~ msgstr ""
#~ "C'est tout pour le client. Il nous"
#~ " suffit d'implémenter :code:`Client` ou "
#~ ":code:`NumPyClient` et d'appeler "
#~ ":code:`fl.client.start_client()`. La chaîne "
#~ ":code:`\"0.0.0:8080\"` indique au client à "
#~ "quel serveur se connecter. Dans notre"
#~ " cas, nous pouvons exécuter le "
#~ "serveur et le client sur la même"
#~ " machine, c'est pourquoi nous utilisons "
#~ ":code:`\"0.0.0:8080\"`. Si nous exécutons une"
#~ " charge de travail véritablement fédérée"
#~ " avec le serveur et les clients "
#~ "s'exécutant sur des machines différentes, "
#~ "tout ce qui doit changer est "
#~ ":code:`server_address` que nous transmettons "
#~ "au client."

#~ msgid ""
#~ "The following Flower server is a "
#~ "little bit more advanced and returns "
#~ "an evaluation function for the "
#~ "server-side evaluation. First, we import"
#~ " again all required libraries such as"
#~ " Flower and scikit-learn."
#~ msgstr ""
#~ "Le serveur Flower suivant est un "
#~ "peu plus avancé et renvoie une "
#~ "fonction d'évaluation pour l'évaluation côté"
#~ " serveur. Tout d'abord, nous importons "
#~ "à nouveau toutes les bibliothèques "
#~ "requises telles que Flower et scikit-"
#~ "learn."

#~ msgid "``server.py``, import Flower and start the server:"
#~ msgstr ":code:`server.py`, importe Flower et démarre le serveur :"

#~ msgid ""
#~ "The number of federated learning rounds"
#~ " is set in ``fit_round()`` and the"
#~ " evaluation is defined in "
#~ "``get_evaluate_fn()``. The evaluation function "
#~ "is called after each federated learning"
#~ " round and gives you information "
#~ "about loss and accuracy. Note that "
#~ "we also make use of Flower "
#~ "Datasets here to load the test "
#~ "split of the MNIST dataset for "
#~ "server-side evaluation."
#~ msgstr ""
#~ "Le nombre de tours d'apprentissage "
#~ "fédéré est défini dans :code:`fit_round()` "
#~ "et l'évaluation est définie dans "
#~ ":code:`get_evaluate_fn()`. La fonction d'évaluation"
#~ " est appelée après chaque tour "
#~ "d'apprentissage fédéré et te donne des"
#~ " informations sur la perte et la "
#~ "précision."

#~ msgid ""
#~ "The ``main`` contains the server-side"
#~ " parameter initialization "
#~ "``utils.set_initial_params()`` as well as the"
#~ " aggregation strategy ``fl.server.strategy:FedAvg()``."
#~ " The strategy is the default one, "
#~ "federated averaging (or FedAvg), with "
#~ "two clients and evaluation after each"
#~ " federated learning round. The server "
#~ "can be started with the command "
#~ "``fl.server.start_server(server_address=\"0.0.0.0:8080\", "
#~ "strategy=strategy, "
#~ "config=fl.server.ServerConfig(num_rounds=3))``."
#~ msgstr ""
#~ "Le :code:`main` contient l'initialisation des"
#~ " paramètres côté serveur "
#~ ":code:`utils.set_initial_params()` ainsi que la "
#~ "stratégie d'agrégation "
#~ ":code:`fl.server.strategy:FedAvg()`. La stratégie "
#~ "est celle par défaut, la moyenne "
#~ "fédérée (ou FedAvg), avec deux clients"
#~ " et une évaluation après chaque tour"
#~ " d'apprentissage fédéré. Le serveur peut"
#~ " être démarré avec la commande "
#~ ":code:`fl.server.start_server(server_address=\"0.0.0.0:8080\", "
#~ "strategy=strategy, "
#~ "config=fl.server.ServerConfig(num_rounds=3))`."

#~ msgid ""
#~ "With both client and server ready, "
#~ "we can now run everything and see"
#~ " federated learning in action. Federated"
#~ " learning systems usually have a "
#~ "server and multiple clients. We, "
#~ "therefore, have to start the server "
#~ "first:"
#~ msgstr ""
#~ "Le client et le serveur étant "
#~ "prêts, nous pouvons maintenant tout "
#~ "lancer et voir l'apprentissage fédéré en"
#~ " action. Les systèmes d'apprentissage "
#~ "fédéré ont généralement un serveur et"
#~ " plusieurs clients. Nous devons donc "
#~ "commencer par lancer le serveur :"

#~ msgid ""
#~ "Once the server is running we can"
#~ " start the clients in different "
#~ "terminals. Open a new terminal and "
#~ "start the first client:"
#~ msgstr ""
#~ "Une fois que le serveur fonctionne, "
#~ "nous pouvons démarrer les clients dans"
#~ " différents terminaux. Ouvre un nouveau "
#~ "terminal et démarre le premier client"
#~ " :"

#~ msgid "Open another terminal and start the second client:"
#~ msgstr "Ouvre un autre terminal et démarre le deuxième client :"

#~ msgid ""
#~ "Each client will have its own "
#~ "dataset. You should now see how "
#~ "the training does in the very "
#~ "first terminal (the one that started "
#~ "the server):"
#~ msgstr ""
#~ "Chaque client aura son propre ensemble"
#~ " de données. Tu devrais maintenant "
#~ "voir comment la formation se déroule "
#~ "dans le tout premier terminal (celui "
#~ "qui a démarré le serveur) :"

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated learning "
#~ "system. The full `source code "
#~ "<https://github.com/adap/flower/tree/main/examples/sklearn-"
#~ "logreg-mnist>`_ for this example can "
#~ "be found in ``examples/sklearn-logreg-"
#~ "mnist``."
#~ msgstr ""
#~ "Félicitations ! Tu as réussi à "
#~ "construire et à faire fonctionner ton"
#~ " premier système d'apprentissage fédéré. Le"
#~ " code source complet "
#~ "<https://github.com/adap/flower/tree/main/examples/sklearn-"
#~ "logreg-mnist>`_ de cet exemple se "
#~ "trouve dans :code:`examples/sklearn-logreg-"
#~ "mnist`."

#~ msgid "Federated XGBoost"
#~ msgstr "Formation fédérée"

#~ msgid ""
#~ "Indeed, as the demand for data "
#~ "privacy and decentralized learning grows, "
#~ "there's an increasing requirement to "
#~ "implement federated XGBoost systems for "
#~ "specialised applications, like survival "
#~ "analysis and financial fraud detection."
#~ msgstr ""

#~ msgid ""
#~ "Federated learning ensures that raw data"
#~ " remains on the local device, making"
#~ " it an attractive approach for "
#~ "sensitive domains where data security "
#~ "and privacy are paramount. Given the "
#~ "robustness and efficiency of XGBoost, "
#~ "combining it with federated learning "
#~ "offers a promising solution for these"
#~ " specific challenges."
#~ msgstr ""

#~ msgid ""
#~ "In this tutorial we will learn how"
#~ " to train a federated XGBoost model"
#~ " on HIGGS dataset using Flower and"
#~ " ``xgboost`` package. We use a simple"
#~ " example (`full code xgboost-quickstart "
#~ "<https://github.com/adap/flower/tree/main/examples/xgboost-"
#~ "quickstart>`_) with two *clients* and "
#~ "one *server* to demonstrate how "
#~ "federated XGBoost works, and then we "
#~ "dive into a more complex example "
#~ "(`full code xgboost-comprehensive "
#~ "<https://github.com/adap/flower/tree/main/examples/xgboost-"
#~ "comprehensive>`_) to run various experiments."
#~ msgstr ""

#~ msgid ""
#~ "First of all, it is recommended to"
#~ " create a virtual environment and run"
#~ " everything within a :doc:`virtualenv "
#~ "<contributor-how-to-set-up-a-virtual-env>`."
#~ msgstr ""
#~ "Tout d'abord, il est recommandé de "
#~ "créer un environnement virtuel et de "
#~ "tout exécuter au sein d'un `virtualenv"
#~ " <https://flower.ai/docs/recommended-env-setup.html>`_."

#~ msgid ""
#~ "*Clients* are responsible for generating "
#~ "individual weight-updates for the model"
#~ " based on their local datasets. Now"
#~ " that we have all our dependencies"
#~ " installed, let's run a simple "
#~ "distributed training with two clients "
#~ "and one server."
#~ msgstr ""

#~ msgid ""
#~ "In a file called ``client.py``, import"
#~ " xgboost, Flower, Flower Datasets and "
#~ "other related functions:"
#~ msgstr ""
#~ "Dans un fichier appelé :code:`client.py`, "
#~ "importe Flower et les paquets liés "
#~ "à PyTorch :"

#~ msgid "Dataset partition and hyper-parameter selection"
#~ msgstr ""

#~ msgid ""
#~ "Prior to local training, we require "
#~ "loading the HIGGS dataset from Flower"
#~ " Datasets and conduct data partitioning "
#~ "for FL:"
#~ msgstr ""

#~ msgid ""
#~ "In this example, we split the "
#~ "dataset into 30 partitions with uniform"
#~ " distribution (``IidPartitioner(num_partitions=30)``). "
#~ "Then, we load the partition for "
#~ "the given client based on "
#~ "``partition_id``:"
#~ msgstr ""

#~ msgid ""
#~ "After that, we do train/test splitting"
#~ " on the given partition (client's "
#~ "local data), and transform data format"
#~ " for ``xgboost`` package."
#~ msgstr ""

#~ msgid "Finally, we define the hyper-parameters used for XGBoost training."
#~ msgstr ""

#~ msgid ""
#~ "The ``num_local_round`` represents the number"
#~ " of iterations for local tree boost."
#~ " We use CPU for the training in"
#~ " default. One can shift it to "
#~ "GPU by setting ``tree_method`` to "
#~ "``gpu_hist``. We use AUC as evaluation"
#~ " metric."
#~ msgstr ""

#~ msgid "Flower client definition for XGBoost"
#~ msgstr ""

#~ msgid ""
#~ "After loading the dataset we define "
#~ "the Flower client. We follow the "
#~ "general rule to define ``XgbClient`` "
#~ "class inherited from ``fl.client.Client``."
#~ msgstr ""

#~ msgid ""
#~ "All required parameters defined above "
#~ "are passed to ``XgbClient``'s constructor."
#~ msgstr ""

#~ msgid ""
#~ "Then, we override ``get_parameters``, ``fit``"
#~ " and ``evaluate`` methods insides "
#~ "``XgbClient`` class as follows."
#~ msgstr ""

#~ msgid ""
#~ "Unlike neural network training, XGBoost "
#~ "trees are not started from a "
#~ "specified random weights. In this case,"
#~ " we do not use ``get_parameters`` and"
#~ " ``set_parameters`` to initialise model "
#~ "parameters for XGBoost. As a result, "
#~ "let's return an empty tensor in "
#~ "``get_parameters`` when it is called by"
#~ " the server at the first round."
#~ msgstr ""

#~ msgid ""
#~ "In ``fit``, at the first round, we"
#~ " call ``xgb.train()`` to build up the"
#~ " first set of trees. From the "
#~ "second round, we load the global "
#~ "model sent from server to new "
#~ "build Booster object, and then update"
#~ " model weights on local training data"
#~ " with function ``local_boost`` as follows:"
#~ msgstr ""

#~ msgid ""
#~ "Now, we can create an instance of"
#~ " our class ``XgbClient`` and add one"
#~ " line to actually run this client:"
#~ msgstr ""
#~ "Nous pouvons maintenant créer une "
#~ "instance de notre classe :code:`MnistClient`"
#~ " et ajouter une ligne pour exécuter"
#~ " ce client :"

#~ msgid ""
#~ "That's it for the client. We only"
#~ " have to implement ``Client`` and "
#~ "call ``fl.client.start_client()``. The string "
#~ "``\"[::]:8080\"`` tells the client which "
#~ "server to connect to. In our case"
#~ " we can run the server and the"
#~ " client on the same machine, "
#~ "therefore we use ``\"[::]:8080\"``. If "
#~ "we run a truly federated workload "
#~ "with the server and clients running "
#~ "on different machines, all that needs"
#~ " to change is the ``server_address`` "
#~ "we point the client at."
#~ msgstr ""
#~ "C'est tout pour le client. Il nous"
#~ " suffit d'implémenter :code:`Client` ou "
#~ ":code:`NumPyClient` et d'appeler "
#~ ":code:`fl.client.start_client()`. La chaîne "
#~ ":code:`\"[: :]:8080\"` indique au client "
#~ "à quel serveur se connecter. Dans "
#~ "notre cas, nous pouvons exécuter le "
#~ "serveur et le client sur la même"
#~ " machine, c'est pourquoi nous utilisons "
#~ ":code:`\"[: :]:8080\"`. Si nous exécutons "
#~ "une charge de travail véritablement "
#~ "fédérée avec le serveur et les "
#~ "clients fonctionnant sur des machines "
#~ "différentes, tout ce qui doit changer"
#~ " est l'adresse :code:`server_address` vers "
#~ "laquelle nous dirigeons le client."

#~ msgid ""
#~ "In a file named ``server.py``, import"
#~ " Flower and FedXgbBagging from "
#~ "``flwr.server.strategy``."
#~ msgstr ""
#~ "Dans un fichier appelé :code:`client.py`, "
#~ "importe Flower et les paquets liés "
#~ "au MXNet :"

#~ msgid "We first define a strategy for XGBoost bagging aggregation."
#~ msgstr ""

#~ msgid ""
#~ "We use two clients for this "
#~ "example. An ``evaluate_metrics_aggregation`` "
#~ "function is defined to collect and "
#~ "wighted average the AUC values from "
#~ "clients. The ``config_func`` function is "
#~ "to return the current FL round "
#~ "number to client's ``fit()`` and "
#~ "``evaluate()`` methods."
#~ msgstr ""

#~ msgid "Then, we start the server:"
#~ msgstr "Démarrer le serveur"

#~ msgid "Tree-based bagging aggregation"
#~ msgstr ""

#~ msgid ""
#~ "After traversal of all clients' models,"
#~ " a new global model is generated, "
#~ "followed by the serialisation, and "
#~ "sending back to each client."
#~ msgstr ""

#~ msgid ""
#~ "Congratulations! You've successfully built and"
#~ " run your first federated XGBoost "
#~ "system. The AUC values can be "
#~ "checked in ``metrics_distributed``. One can"
#~ " see that the average AUC increases"
#~ " over FL rounds."
#~ msgstr ""

#~ msgid ""
#~ "Now that you have known how "
#~ "federated XGBoost work with Flower, it's"
#~ " time to run some more comprehensive"
#~ " experiments by customising the "
#~ "experimental settings. In the xgboost-"
#~ "comprehensive example (`full code "
#~ "<https://github.com/adap/flower/tree/main/examples/xgboost-"
#~ "comprehensive>`_), we provide more options "
#~ "to define various experimental setups, "
#~ "including aggregation strategies, data "
#~ "partitioning and centralised/distributed evaluation."
#~ " We also support :doc:`Flower simulation"
#~ " <how-to-run-simulations>` making it"
#~ " easy to simulate large client "
#~ "cohorts in a resource-aware manner. "
#~ "Let's take a look!"
#~ msgstr ""

#~ msgid ""
#~ "To do this, we first customise a"
#~ " ``ClientManager`` in ``server_utils.py``:"
#~ msgstr ""

#~ msgid ""
#~ "The customised ``ClientManager`` samples all"
#~ " available clients in each FL round"
#~ " based on the order of connection "
#~ "to the server. Then, we define a"
#~ " new strategy ``FedXgbCyclic`` in "
#~ "``flwr.server.strategy.fedxgb_cyclic.py``, in order "
#~ "to sequentially select only one client"
#~ " in given round and pass the "
#~ "received model to next client."
#~ msgstr ""

#~ msgid "Customised data partitioning"
#~ msgstr ""

#~ msgid ""
#~ "In ``dataset.py``, we have a function"
#~ " ``instantiate_partitioner`` to instantiate the"
#~ " data partitioner based on the given"
#~ " ``num_partitions`` and ``partitioner_type``. "
#~ "Currently, we provide four supported "
#~ "partitioner type to simulate the "
#~ "uniformity/non-uniformity in data quantity "
#~ "(uniform, linear, square, exponential)."
#~ msgstr ""

#~ msgid ""
#~ "To facilitate centralised evaluation, we "
#~ "define a function in ``server_utils.py``:"
#~ msgstr ""

#~ msgid ""
#~ "This function returns a evaluation "
#~ "function which instantiates a ``Booster`` "
#~ "object and loads the global model "
#~ "weights to it. The evaluation is "
#~ "conducted by calling ``eval_set()`` method,"
#~ " and the tested AUC value is "
#~ "reported."
#~ msgstr ""

#~ msgid ""
#~ "As for distributed evaluation on the "
#~ "clients, it's same as the quick-"
#~ "start example by overriding the "
#~ "``evaluate()`` method insides the "
#~ "``XgbClient`` class in ``client_utils.py``."
#~ msgstr ""

#~ msgid ""
#~ "We also provide an example code "
#~ "(``sim.py``) to use the simulation "
#~ "capabilities of Flower to simulate "
#~ "federated XGBoost training on either a"
#~ " single machine or a cluster of "
#~ "machines."
#~ msgstr ""

#~ msgid ""
#~ "After importing all required packages, "
#~ "we define a ``main()`` function to "
#~ "perform the simulation process:"
#~ msgstr ""

#~ msgid ""
#~ "We first load the dataset and "
#~ "perform data partitioning, and the "
#~ "pre-processed data is stored in a "
#~ "``list``. After the simulation begins, "
#~ "the clients won't need to pre-"
#~ "process their partitions again."
#~ msgstr ""

#~ msgid "Then, we define the strategies and other hyper-parameters:"
#~ msgstr ""

#~ msgid ""
#~ "After that, we start the simulation "
#~ "by calling ``fl.simulation.start_simulation``:"
#~ msgstr ""

#~ msgid ""
#~ "One of key parameters for "
#~ "``start_simulation`` is ``client_fn`` which "
#~ "returns a function to construct a "
#~ "client. We define it as follows:"
#~ msgstr ""

#~ msgid "Arguments parser"
#~ msgstr ""

#~ msgid ""
#~ "In ``utils.py``, we define the arguments"
#~ " parsers for clients, server and "
#~ "simulation, allowing users to specify "
#~ "different experimental settings. Let's first"
#~ " see the sever side:"
#~ msgstr ""

#~ msgid ""
#~ "This allows user to specify training "
#~ "strategies / the number of total "
#~ "clients / FL rounds / participating "
#~ "clients / clients for evaluation, and"
#~ " evaluation fashion. Note that with "
#~ "``--centralised-eval``, the sever will do"
#~ " centralised evaluation and all "
#~ "functionalities for client evaluation will "
#~ "be disabled."
#~ msgstr ""

#~ msgid "Then, the argument parser on client side:"
#~ msgstr ""

#~ msgid ""
#~ "This defines various options for client"
#~ " data partitioning. Besides, clients also"
#~ " have an option to conduct evaluation"
#~ " on centralised test set by setting"
#~ " ``--centralised-eval``, as well as "
#~ "an option to perform scaled learning "
#~ "rate based on the number of "
#~ "clients by setting ``--scaled-lr``."
#~ msgstr ""

#~ msgid "We also have an argument parser for simulation:"
#~ msgstr ""

#~ msgid "This integrates all arguments for both client and server sides."
#~ msgstr ""

#~ msgid ""
#~ "To run a centralised evaluated "
#~ "experiment with bagging strategy on 5"
#~ " clients with exponential distribution for"
#~ " 50 rounds, we first start the "
#~ "server as below:"
#~ msgstr ""

#~ msgid "Then, on each client terminal, we start the clients:"
#~ msgstr "Ouvre un autre terminal et démarre le deuxième client :"

#~ msgid "To run the same experiment with Flower simulation:"
#~ msgstr ""

#~ msgid "|ac0a9766e26044d6aea222a829859b20|"
#~ msgstr ""

#~ msgid "|36cd6e248b1443ce8a82b5a025bba368|"
#~ msgstr ""

#~ msgid "|bf4fb057f4774df39e1dcb5c71fd804a|"
#~ msgstr ""

#~ msgid "|71bb9f3c74c04f959b9bc1f02b736c95|"
#~ msgstr ""

#~ msgid "|7605632e1b0f49599ffacf841491fcfb|"
#~ msgstr ""

#~ msgid "|91b1b5a7d3484eb7a2350c1923f18307|"
#~ msgstr ""

#~ msgid "|5405ed430e4746e28b083b146fb71731|"
#~ msgstr ""

#~ msgid "|a389e87dab394eb48a8949aa2397687b|"
#~ msgstr ""

#~ msgid "|89c412136a5146ec8dc32c0973729f12|"
#~ msgstr ""

#~ msgid "|9503d3dc3a144e8aa295f8800cd8a766|"
#~ msgstr ""

#~ msgid "|aadb59e29b9e445d8e239d9a8a7045cb|"
#~ msgstr ""

#~ msgid "|a7579ad7734347508e959d9e14f2f53d|"
#~ msgstr ""

#~ msgid "|73d15dd1d4fc41678b2d54815503fbe8|"
#~ msgstr ""

#~ msgid "|55472eef61274ba1b739408607e109df|"
#~ msgstr ""

#~ msgid ""
#~ "Run ``python3 src/py/flwr_tool/update_changelog.py "
#~ "<YOUR_GH_TOKEN>`` in order to add every"
#~ " new change to the changelog (feel"
#~ " free to make manual changes to "
#~ "the changelog afterwards until it looks"
#~ " good)."
#~ msgstr ""

#~ msgid ""
#~ "When operating in a production "
#~ "environment, it is strongly recommended "
#~ "to enable Transport Layer Security (TLS)"
#~ " for each Flower Component to ensure"
#~ " secure communication."
#~ msgstr ""

#~ msgid ""
#~ "To enable TLS, you will need a "
#~ "PEM-encoded root certificate, a PEM-"
#~ "encoded private key and a PEM-"
#~ "encoded certificate chain."
#~ msgstr ""

#~ msgid ""
#~ "Assuming all files we need are in"
#~ " the local ``certificates`` directory, we"
#~ " can use the flag ``--volume`` to "
#~ "mount the local directory into the "
#~ "``/app/certificates/`` directory of the "
#~ "container:"
#~ msgstr ""

#~ msgid ""
#~ "``--volume ./certificates/:/app/certificates/:ro``: Mount"
#~ " the ``certificates`` directory in"
#~ msgstr ""

#~ msgid ""
#~ "the current working directory of the "
#~ "host machine as a read-only volume"
#~ " at the"
#~ msgstr ""

#~ msgid "``/app/certificates`` directory inside the container."
#~ msgstr ""

#~ msgid ""
#~ "Assuming that the ``ca.crt`` certificate "
#~ "already exists locally, we can use "
#~ "the flag ``--volume`` to mount the "
#~ "local certificate into the container's "
#~ "``/app/`` directory."
#~ msgstr ""

#~ msgid ""
#~ "``--volume ./ca.crt:/app/ca.crt/:ro``: Mount the "
#~ "``ca.crt`` file from the"
#~ msgstr ""

#~ msgid ""
#~ "current working directory of the host"
#~ " machine as a read-only volume "
#~ "at the ``/app/ca.crt``"
#~ msgstr ""

#~ msgid "SuperExec"
#~ msgstr ""

#~ msgid ""
#~ "Assuming all files we need are in"
#~ " the local ``certificates`` directory where"
#~ " the SuperExec will be executed from,"
#~ " we can use the flag ``--volume`` "
#~ "to mount the local directory into "
#~ "the ``/app/certificates/`` directory of the"
#~ " container:"
#~ msgstr ""

#~ msgid ""
#~ ":substitution-code:`flwr/superexec:|stable_flwr_version|`: "
#~ "The name of the image to be "
#~ "run and the specific"
#~ msgstr ""

#~ msgid "SuperExec."
#~ msgstr ""

#~ msgid ""
#~ "``--ssl-certfile certificates/server.pem``: Specify"
#~ " the location of the SuperExec's"
#~ msgstr ""

#~ msgid ""
#~ "The ``certificates/server.pem`` file is used"
#~ " to identify the SuperExec and to "
#~ "encrypt the"
#~ msgstr ""

#~ msgid ""
#~ "``--ssl-keyfile certificates/server.key``: Specify"
#~ " the location of the SuperExec's"
#~ msgstr ""

#~ msgid ""
#~ "``--executor-config root-"
#~ "certificates=\\\"certificates/superlink_ca.crt\\\"``: Specify"
#~ " the"
#~ msgstr ""

#~ msgid ""
#~ "location of the CA certificate file "
#~ "inside the container that the SuperExec"
#~ " executor"
#~ msgstr ""

#~ msgid "should use to verify the SuperLink's identity."
#~ msgstr ""

#~ msgid ""
#~ "In this mode, the ClientApp is "
#~ "executed as a subprocess within the "
#~ "SuperNode Docker container, rather than "
#~ "running in a separate container. This"
#~ " approach reduces the number of "
#~ "running containers, which can be "
#~ "beneficial for environments with limited "
#~ "resources. However, it also means that"
#~ " the ClientApp is no longer isolated"
#~ " from the SuperNode, which may "
#~ "introduce additional security concerns."
#~ msgstr ""

#~ msgid ""
#~ "Before running the ClientApp as a "
#~ "subprocess, ensure that the FAB "
#~ "dependencies have been installed in the"
#~ " SuperNode images. This can be done"
#~ " by extending the SuperNode image:"
#~ msgstr ""

#~ msgid "Dockerfile.supernode"
#~ msgstr "Serveur de Flower"

#~ msgid ""
#~ "Next, build the SuperNode Docker image"
#~ " by running the following command in"
#~ " the directory where Dockerfile is "
#~ "located:"
#~ msgstr ""

#~ msgid "Run the ClientApp as a Subprocess"
#~ msgstr ""

#~ msgid ""
#~ "Start the SuperNode with the flag "
#~ "``--isolation subprocess``, which tells the"
#~ " SuperNode to execute the ClientApp "
#~ "as a subprocess:"
#~ msgstr ""

#~ msgid "Run the example and follow the logs of the ServerApp:"
#~ msgstr ""

#~ msgid ""
#~ "That is all it takes! You can "
#~ "monitor the progress of the run "
#~ "through the logs of the SuperExec."
#~ msgstr ""

#~ msgid ""
#~ "You will learn how to run the "
#~ "Flower client and server components on"
#~ " two separate machines, with Flower "
#~ "configured to use TLS encryption and "
#~ "persist SuperLink state across restarts. "
#~ "A server consists of a SuperLink "
#~ "and ``SuperExec``. For more details "
#~ "about the Flower architecture, refer to"
#~ " the :doc:`../explanation-flower-architecture`"
#~ " explainer page."
#~ msgstr ""

#~ msgid ""
#~ "First, set the environment variables "
#~ "``SUPERLINK_IP`` and ``SUPEREXEC_IP`` with the"
#~ " IP address from the remote machine."
#~ " For example, if the IP is "
#~ "``192.168.2.33``, execute:"
#~ msgstr ""

#~ msgid ""
#~ "Log into the remote machine using "
#~ "``ssh`` and run the following command"
#~ " to start the SuperLink and SuperExec"
#~ " services:"
#~ msgstr ""

#~ msgid ""
#~ "Specify the remote SuperExec IP "
#~ "addresses and the path to the root"
#~ " certificate in the ``[tool.flwr.federations"
#~ ".remote-superexec]`` table in the "
#~ "``pyproject.toml`` file. Here, we have "
#~ "named our remote federation ``remote-"
#~ "superexec``:"
#~ msgstr ""

#~ msgid "Run the project and follow the ServerApp logs:"
#~ msgstr ""

#~ msgid ""
#~ "``-p 9091:9091 -p 9092:9092``: Map port"
#~ " ``9091`` and ``9092`` of the "
#~ "container to the same port of"
#~ msgstr ""

#~ msgid "the host machine, allowing other services to access the Driver API on"
#~ msgstr ""

#~ msgid ""
#~ "``http://localhost:9091`` and the Fleet API"
#~ " on ``http://localhost:9092``."
#~ msgstr ""

#~ msgid ""
#~ "``flwr/supernode:|stable_flwr_version|``: This is "
#~ "the name of the image to be "
#~ "run and the specific tag"
#~ msgstr ""

#~ msgid ""
#~ "``--supernode-address 0.0.0.0:9094``: Set the"
#~ " address and port number that the "
#~ "SuperNode"
#~ msgstr ""

#~ msgid "is listening on."
#~ msgstr ""

#~ msgid "Step 4: Start the ClientApp"
#~ msgstr ""

#~ msgid ""
#~ "The ClientApp Docker image comes with"
#~ " a pre-installed version of Flower"
#~ " and serves as a base for "
#~ "building your own ClientApp image. In"
#~ " order to install the FAB "
#~ "dependencies, you will need to create"
#~ " a Dockerfile that extends the "
#~ "ClientApp image and installs the "
#~ "required dependencies."
#~ msgstr ""

#~ msgid ""
#~ "Create a ClientApp Dockerfile called "
#~ "``Dockerfile.clientapp`` and paste the "
#~ "following code into it:"
#~ msgstr ""

#~ msgid "Dockerfile.clientapp"
#~ msgstr "Flower ClientApp."

#~ msgid ""
#~ "to be built from is the "
#~ "``flwr/clientapp image``, version :substitution-"
#~ "code:`|stable_flwr_version|`."
#~ msgstr ""

#~ msgid ""
#~ "``--supernode supernode-1:9094``: Connect to "
#~ "the SuperNode's Fleet API at the "
#~ "address"
#~ msgstr ""

#~ msgid "``supernode-1:9094``."
#~ msgstr ""

#~ msgid ""
#~ "The procedure for building and running"
#~ " a SuperExec image is almost "
#~ "identical to the ClientApp image."
#~ msgstr ""

#~ msgid ""
#~ "Similar to the ClientApp image, you "
#~ "will need to create a Dockerfile "
#~ "that extends the SuperExec image and "
#~ "installs the required FAB dependencies."
#~ msgstr ""

#~ msgid ""
#~ "Create a SuperExec Dockerfile called "
#~ "``Dockerfile.superexec`` and paste the "
#~ "following code in:"
#~ msgstr ""

#~ msgid "Dockerfile.superexec"
#~ msgstr ""

#~ msgid ""
#~ ":substitution-code:`FROM "
#~ "flwr/superexec:|stable_flwr_version|`: This line "
#~ "specifies that the Docker image"
#~ msgstr ""

#~ msgid ""
#~ "to be built from is the "
#~ "``flwr/superexec image``, version :substitution-"
#~ "code:`|stable_flwr_version|`."
#~ msgstr ""

#~ msgid ""
#~ "``ENTRYPOINT [\"flower-superexec\"``: Set the"
#~ " command ``flower-superexec`` to be"
#~ msgstr ""

#~ msgid "``\"--executor\", \"flwr.superexec.deployment:executor\"]`` Use the"
#~ msgstr ""

#~ msgid "``flwr.superexec.deployment:executor`` executor to run the ServerApps."
#~ msgstr ""

#~ msgid ""
#~ "Afterward, in the directory that holds"
#~ " the Dockerfile, execute this Docker "
#~ "command to build the SuperExec image:"
#~ msgstr ""

#~ msgid ""
#~ "``-p 9093:9093``: Map port ``9093`` of"
#~ " the container to the same port "
#~ "of"
#~ msgstr ""

#~ msgid ""
#~ "the host machine, allowing you to "
#~ "access the SuperExec API on "
#~ "``http://localhost:9093``."
#~ msgstr ""

#~ msgid "``--name superexec``: Assign the name ``superexec`` to the container."
#~ msgstr ""

#~ msgid ""
#~ "``flwr_superexec:0.0.1``: This is the name "
#~ "of the image to be run and "
#~ "the specific tag"
#~ msgstr ""

#~ msgid ""
#~ "``--executor-config superlink=\\\"superlink:9091\\\"``:"
#~ " Configure the SuperExec executor to"
#~ msgstr ""

#~ msgid "connect to the SuperLink running on port ``9091``."
#~ msgstr ""

#~ msgid "Stop the current ClientApp containers:"
#~ msgstr ""

#~ msgid "Launch two new ClientApp containers based on the newly built image:"
#~ msgstr ""

#~ msgid ""
#~ "Setting the ``PROJECT_DIR`` helps Docker "
#~ "Compose locate the ``pyproject.toml`` file,"
#~ " allowing it to install dependencies "
#~ "in the SuperExec and SuperNode images"
#~ " correctly."
#~ msgstr ""

#~ msgid ""
#~ "To ensure the ``flwr`` CLI connects "
#~ "to the SuperExec, you need to "
#~ "specify the SuperExec addresses in the"
#~ " ``pyproject.toml`` file."
#~ msgstr ""

#~ msgid ""
#~ "Run the quickstart example, monitor the"
#~ " ServerApp logs and wait for the "
#~ "summary to appear:"
#~ msgstr ""

#~ msgid "In the SuperExec logs, you should find the ``Get weights`` line:"
#~ msgstr ""

#~ msgid "Step 7: Add another SuperNode"
#~ msgstr ""

#~ msgid ""
#~ "You can add more SuperNodes and "
#~ "ClientApps by duplicating their definitions"
#~ " in the ``compose.yml`` file."
#~ msgstr ""

#~ msgid ""
#~ "Just give each new SuperNode and "
#~ "ClientApp service a unique service name"
#~ " like ``supernode-3``, ``clientapp-3``, etc."
#~ msgstr ""

#~ msgid "In ``compose.yml``, add the following:"
#~ msgstr ""

#~ msgid ""
#~ "If you also want to enable TLS "
#~ "for the new SuperNodes, duplicate the"
#~ " SuperNode definition for each new "
#~ "SuperNode service in the ``with-"
#~ "tls.yml`` file."
#~ msgstr ""

#~ msgid ""
#~ "Make sure that the names of the"
#~ " services match with the one in "
#~ "the ``compose.yml`` file."
#~ msgstr ""

#~ msgid "In ``with-tls.yml``, add the following:"
#~ msgstr ""

#~ msgid "Comment out the lines 2-4 and uncomment the lines 5-9:"
#~ msgstr ""

#~ msgid ""
#~ "This guide is for users who have"
#~ " already worked with Flower 0.x and"
#~ " want to upgrade to Flower 1.0. "
#~ "Newer versions of Flower (1.12+) are "
#~ "based on a new architecture (previously"
#~ " called Flower Next) and not covered"
#~ " in this guide. After upgrading "
#~ "Flower 0.x projects to Flower 1.0, "
#~ "please refer to :doc:`Upgrade to Flower"
#~ " Next <how-to-upgrade-to-flower-"
#~ "next>` to make your project compatible"
#~ " with the lastest version of Flower."
#~ msgstr ""

#~ msgid "Upgrade to Flower Next"
#~ msgstr "Passe à Flower 1.0"

#~ msgid ""
#~ "Welcome to the migration guide for "
#~ "updating Flower to Flower Next! Whether"
#~ " you're a seasoned user or just "
#~ "getting started, this guide will help"
#~ " you smoothly transition your existing "
#~ "setup to take advantage of the "
#~ "latest features and improvements in "
#~ "Flower Next, starting from version 1.8."
#~ msgstr ""

#~ msgid ""
#~ "This guide shows how to reuse "
#~ "pre-``1.8`` Flower code with minimum "
#~ "code changes by using the *compatibility"
#~ " layer* in Flower Next. In another"
#~ " guide, we will show how to run"
#~ " Flower Next end-to-end with "
#~ "pure Flower Next APIs."
#~ msgstr ""

#~ msgid "or if you need Flower Next with simulation:"
#~ msgstr ""

#~ msgid "Using Poetry"
#~ msgstr "Utiliser la poésie (recommandé)"

#~ msgid ""
#~ "Update the ``flwr`` dependency in "
#~ "``pyproject.toml`` and then reinstall (don't"
#~ " forget to delete ``poetry.lock`` via "
#~ "``rm poetry.lock`` before running ``poetry "
#~ "install``)."
#~ msgstr ""
#~ "Poetry : mettez à jour la "
#~ "dépendance ``flwr`` dans ``pyproject.toml`` "
#~ "puis réinstallez (n'oubliez pas de "
#~ "supprimer ``poetry.lock`` via ``rm "
#~ "poetry.lock`` avant d'exécuter ``poetry "
#~ "install``)."

#~ msgid ""
#~ "Ensure you set the following version "
#~ "constraint in your ``pyproject.toml``:"
#~ msgstr "Augmente la version mineure de ``pyproject.toml`` d'une unité."

#~ msgid ""
#~ "In Flower Next, the *infrastructure* and"
#~ " *application layers* have been decoupled."
#~ " Instead of starting a client in "
#~ "code via ``start_client()``, you create "
#~ "a |clientapp_link|_ and start it via "
#~ "the command line. Instead of starting"
#~ " a server in code via "
#~ "``start_server()``, you create a "
#~ "|serverapp_link|_ and start it via the"
#~ " command line. The long-running "
#~ "components of server and client are "
#~ "called SuperLink and SuperNode. The "
#~ "following non-breaking changes that "
#~ "require manual updates and allow you "
#~ "to run your project both in the"
#~ " traditional way and in the Flower"
#~ " Next way:"
#~ msgstr ""

#~ msgid ""
#~ "Wrap your existing client with "
#~ "|clientapp_link|_ instead of launching it "
#~ "via |startclient_link|_. Here's an example:"
#~ msgstr ""

#~ msgid ""
#~ "Wrap your existing strategy with "
#~ "|serverapp_link|_ instead of starting the "
#~ "server via |startserver_link|_. Here's an "
#~ "example:"
#~ msgstr ""

#~ msgid ""
#~ "Run the ``SuperLink`` using "
#~ "|flowernext_superlink_link|_ before running, in "
#~ "sequence, |flowernext_clientapp_link|_ (2x) and "
#~ "|flowernext_serverapp_link|_. There is no need"
#~ " to execute `client.py` and `server.py` "
#~ "as Python scripts."
#~ msgstr ""

#~ msgid ""
#~ "Here's an example to start the "
#~ "server without HTTPS (only for "
#~ "prototyping):"
#~ msgstr ""

#~ msgid ""
#~ "Here's another example to start with "
#~ "HTTPS. Use the ``--ssl-ca-certfile``,"
#~ " ``--ssl-certfile``, and ``--ssl-keyfile``"
#~ " command line options to pass paths"
#~ " to (CA certificate, server certificate,"
#~ " and server private key)."
#~ msgstr ""

#~ msgid ""
#~ "Wrap your existing client and strategy"
#~ " with |clientapp_link|_ and |serverapp_link|_,"
#~ " respectively. There is no need to"
#~ " use |startsim_link|_ anymore. Here's an"
#~ " example:"
#~ msgstr ""

#~ msgid ""
#~ "Run |flower_simulation_link|_ in CLI and "
#~ "point to the ``server_app`` / "
#~ "``client_app`` object in the code "
#~ "instead of executing the Python script."
#~ " Here's an example (assuming the "
#~ "``server_app`` and ``client_app`` objects are"
#~ " in a ``sim.py`` module):"
#~ msgstr ""

#~ msgid ""
#~ "Set default resources for each "
#~ "|clientapp_link|_ using the ``--backend-"
#~ "config`` command line argument instead "
#~ "of setting the ``client_resources`` argument"
#~ " in |startsim_link|_. Here's an example:"
#~ msgstr ""

#~ msgid "Simulation in a Notebook"
#~ msgstr ""

#~ msgid ""
#~ "Run |runsim_link|_ in your notebook "
#~ "instead of |startsim_link|_. Here's an "
#~ "example:"
#~ msgstr ""

#~ msgid ""
#~ "As we continuously enhance Flower Next"
#~ " at a rapid pace, we'll be "
#~ "periodically updating this guide. Please "
#~ "feel free to share any feedback "
#~ "with us!"
#~ msgstr ""

#~ msgid ""
#~ "This function is deprecated since "
#~ "1.13.0. Use :code: `flwr run` to "
#~ "start a Flower simulation."
#~ msgstr ""

#~ msgid "|c9344c3dfee24383908fabaac40a8504|"
#~ msgstr ""

#~ msgid "|c10cd8f2177641bd8091c7b76d318ff9|"
#~ msgstr ""

#~ msgid "|3c59c315e67945ea8b839381c5deb6c2|"
#~ msgstr ""

#~ msgid "|eadf87e1e20549789512f7aa9199fcff|"
#~ msgstr ""

#~ msgid "|66ce8f21aeb443fca1fc88f727458417|"
#~ msgstr ""

#~ msgid "|f5768015a1014396b4761bb6cb3677f5|"
#~ msgstr ""

#~ msgid "|a746aa3f56064617a4e00f4c6a0cb140|"
#~ msgstr ""

#~ msgid "|cf8f676dd3534a44995c1b40910fd030|"
#~ msgstr ""

#~ msgid "|d1c0e3a4c9dc4bfd88ee6f1fe626edaf|"
#~ msgstr ""

#~ msgid "|1d8d6298a4014ec3a717135bcc7a94f9|"
#~ msgstr ""

#~ msgid "|e3ea79200ff44d459358b9f4713e582b|"
#~ msgstr ""

#~ msgid "|3e1061718a4a49d485764d30a4bfecdd|"
#~ msgstr ""

#~ msgid "|7750e597d1ea4e319f7e0a40539bf214|"
#~ msgstr ""

#~ msgid "|dd4434075f374e99ac07f509a883778f|"
#~ msgstr ""

#~ msgid "Other changes"
#~ msgstr "Changements incompatibles"

#~ msgid "|cf5fe148406b44b9a8b842fb01b5a7ea|"
#~ msgstr ""

#~ msgid "|ba25c91426d64cc1ae2d3febc5715b35|"
#~ msgstr ""

#~ msgid "|fca67f83aaab4389aa9ebb4d9c5cd75e|"
#~ msgstr ""

#~ msgid "|6f2e8f95c95443379b0df00ca9824654|"
#~ msgstr ""

#~ msgid "|c0ab3a1a733d4dbc9e1677aa608e8038|"
#~ msgstr ""

#~ msgid "|8f0491bde07341ab9f2e23d50593c0be|"
#~ msgstr ""

#~ msgid "|762fc099899943688361562252c5e600|"
#~ msgstr ""

#~ msgid "|f62d365fd0ae405b975d3ca01e7183fd|"
#~ msgstr ""

#~ msgid "|2c78fc1816b143289f4d909388f92a80|"
#~ msgstr ""

#~ msgid "|4230725aeebe497d8ad84a3efc2a912b|"
#~ msgstr ""

#~ msgid "|64b66a88417240eabe52f5cc55d89d0b|"
#~ msgstr ""

#~ msgid "|726c8eca58bc4f859b06aa24a587b253|"
#~ msgstr ""

#~ msgid "|f9d869e4b33c4093b29cf24ed8dff80a|"
#~ msgstr ""

#~ msgid "|4ab50bc01a9f426a91a2c0cbc3ab7a84|"
#~ msgstr ""

