> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> Démarrez ou arrêtez un agent de balayage W&B sur une ou plusieurs machines.

# Démarrer un agent de balayage

Démarrez un balayage sur un ou plusieurs agents, sur une ou plusieurs machines. Les agents de balayage utilisent la configuration de balayage définie lorsque vous [initialisez un balayage](/fr/models/sweeps/initialize-sweeps) pour explorer différentes combinaisons d'hyperparamètres. W\&B crée un nouveau run pour chaque combinaison d'hyperparamètres essayée par l'agent de balayage.

Voir [Gérer les balayages](/fr/models/sweeps/pause-resume-and-cancel-sweeps) pour savoir comment mettre en pause, reprendre, arrêter ou annuler un balayage.

<Note>
  Avant de continuer, assurez-vous de :

  * Configurer votre script d'entraînement pour créer et suivre des combinaisons d'hyperparamètres avec W\&B. Pour plus d'informations, voir [Ajouter W\&B à votre code](./add-w-and-b-to-your-code#training-script-with-w%26b-python-sdk).
  * Avoir défini un [fichier de configuration](./define-sweep-configuration) pour votre balayage.
</Note>

Les extraits de code suivants montrent comment démarrer un agent avec la CLI et dans un notebook Jupyter ou un script Python. Pour les deux méthodes, fournissez l'ID du balayage que W\&B renvoie lorsque vous initialisez le balayage. L'ID du balayage se présente sous la forme suivante :

```bash theme={null}
entity/project/sweep_ID
```

Où :

* `entity` : votre nom d'utilisateur W\&B ou le nom de votre équipe.
* `project` : le nom du projet dans lequel vous souhaitez que W\&B stocke la sortie du run. Si le projet n'est pas spécifié, W\&B place le run dans un projet appelé "Uncategorized".
* `sweep_ID` : l'ID unique pseudo-aléatoire généré par W\&B.

<Tabs>
  <Tab title="CLI">
    Utilisez la commande `wandb agent` pour démarrer un balayage. Indiquez l'ID du balayage renvoyé par W\&B lorsque vous avez initialisé le balayage.

    Copiez-collez l'extrait de code ci-dessous et remplacez `sweep_id` par votre ID du balayage :

    ```bash theme={null}
    wandb agent sweep_id
    ```

    Pour un arrêt propre lorsque vous interrompez l'agent (par exemple avec Ctrl+C), utilisez `wandb agent --forward-signals sweep_id` afin que le run en cours reçoive le signal et puisse s'arrêter correctement. Voir [Signal handling and sweep runs](/fr/models/sweeps/signal-handling-sweep-runs) pour plus de détails.
  </Tab>

  <Tab title="Script Python ou notebook">
    Utilisez [`wandb.agent()`](/fr/models/ref/python/functions/agent) pour démarrer un balayage. Indiquez l'ID du balayage renvoyé par W\&B lorsque vous avez initialisé le balayage, ainsi que le nom de la fonction qui sert de point d'entrée à votre script d'entraînement.

    Copiez-collez l'extrait de code ci-dessous et remplacez `<sweep_id>` par votre ID du balayage et `<function_name>` par le nom de votre fonction d'entraînement :

    ```python theme={null}
    wandb.agent(sweep_id="<sweep_id>", function="<function_name>")
    ```

    Le transfert des signaux de l'agent vers le run d'entraînement est uniquement pris en charge lorsque vous utilisez la CLI (`wandb agent --forward-signals`). Il n'est pas pris en charge pour `wandb.agent()` en Python, car la fonction d'entraînement s'exécute dans un thread, et non dans un processus enfant. Voir [Signal handling and sweep runs](/fr/models/sweeps/signal-handling-sweep-runs) pour plus de détails.

    Voir l'[onglet Script Python ou notebook](/fr/models/sweeps/add-w-and-b-to-your-code#python-script-or-notebook) dans Add W\&B to your code pour un exemple de configuration de votre script d'entraînement si vous utilisez cette méthode.

    <Warning>
      **Multiprocessing**

      Vous devez encapsuler vos appels `wandb.agent()` et `wandb.sweep()` dans `if __name__ == '__main__':` si vous utilisez `multiprocessing` de la bibliothèque standard Python ou le package `pytorch.multiprocessing` de PyTorch. Par exemple :

      ```python theme={null}
      if __name__ == '__main__':
          wandb.agent(sweep_id="<sweep_id>", function="<function>", count="<count>")
      ```

      Encapsuler votre code selon cette convention garantit qu'il n'est exécuté que lorsque le script est lancé directement, et non lorsqu'il est importé comme module dans un processus worker.

      Voir [Python standard library `multiprocessing`](https://docs.python.org/3/library/multiprocessing.html#the-spawn-and-forkserver-start-methods) ou [PyTorch `multiprocessing`](https://docs.pytorch.org/docs/stable/notes/multiprocessing.html#asynchronous-multiprocess-training-e-g-hogwild) pour plus d'informations sur le multiprocessing. Voir [https://realpython.com/if-name-main-python/](https://realpython.com/if-name-main-python/) pour plus d'informations sur la convention `if __name__ == '__main__':`.
    </Warning>
  </Tab>
</Tabs>

<div id="limit-the-number-of-runs-a-sweep-agent-tries">
  ### Limiter le nombre de runs qu'un agent de balayage tente
</div>

<Warning>
  Les recherches aléatoires et bayésiennes s'exécutent indéfiniment. Vous devez arrêter le processus depuis la ligne de commande, dans votre script Python ou dans l'[interface utilisateur de Sweeps](./visualize-sweep-results).
</Warning>

Spécifiez le nombre de runs qu'un agent de balayage doit tenter. Les extraits de code suivants montrent comment définir un nombre maximal de [W\&B Runs](/fr/models/ref/python/experiments/run) avec la CLI et dans un notebook Jupyter ou un script Python.

<Tabs>
  <Tab title="CLI">
    Commencez par initialiser votre balayage avec la commande [`wandb sweep`](/fr/models/ref/cli/wandb-sweep). Pour plus d'informations, voir [Initialiser les balayages](./initialize-sweeps).

    ```
    wandb sweep config.yaml
    ```

    Ensuite, passez une valeur entière à l'indicateur count pour définir le nombre maximal de runs à tenter.

    ```python theme={null}
    NUM=10
    SWEEPID="dtzl1o7u"
    wandb agent --count $NUM $SWEEPID
    ```
  </Tab>

  <Tab title="Script Python ou notebook">
    Commencez par initialiser votre balayage. Pour plus d'informations, voir [Initialiser les balayages](./initialize-sweeps).

    ```
    sweep_id = wandb.sweep(sweep_config)
    ```

    Ensuite, démarrez le job de balayage. Fournissez l'ID du balayage généré lors de l'initialisation du balayage. Passez une valeur entière au paramètre count pour définir le nombre maximal de runs à tenter.

    ```python theme={null}
    sweep_id, count = "dtzl1o7u", 10
    wandb.agent(sweep_id, count=count)
    ```

    <Warning>
      Si vous démarrez un nouveau run après la fin de l'agent de balayage, dans le même script ou notebook, vous devez appeler `wandb.teardown()` avant de démarrer ce nouveau run.
    </Warning>
  </Tab>
</Tabs>
