Skip to main content
Initialisez un run W&B avec wandb.init(). Par défaut, W&B prend en charge un seul run actif par processus Python. Si vous appelez wandb.init() alors qu’un run est déjà actif, W&B renvoie ce run actif ou le termine avant d’en créer un nouveau. Ce comportement dépend de l’environnement et de la configuration reinit. Pour gérer plusieurs runs actifs dans un même processus, consultez Plusieurs runs dans un même processus.
W&B recommande d’utiliser un gestionnaire de contexte (bloc with) pour appeler wandb.init(). Vous avez ainsi la garantie que W&B termine le run et téléverse ses données à la sortie du bloc.

Un seul run par processus

L’exemple suivant initialise un run :
basic.py
La commande produit une sortie semblable à celle-ci :
Dans cet exemple, W&B journalise le run exalted-darkness-6 dans le projet awesome-project de l’entity nico. W&B attribue au run l’ID unique pgbn9y21.

Plusieurs runs dans un même processus

Utilisez le paramètre reinit dans wandb.init() ou wandb.Settings pour gérer plusieurs runs dans un même processus Python. Vous pouvez par exemple garder un run principal actif tout en créant des runs secondaires de courte durée pour d’autres tâches. Voici quelques cas d’usage courants :
  • Créer des runs secondaires pour des évaluations ou des sous-tâches pendant qu’un run principal reste actif.
  • Exécuter plusieurs sous-expériences à partir d’un seul script.
  • Journaliser différentes tâches ou périodes dans des runs distincts depuis un même processus.
ExigencesPour gérer plusieurs runs dans un même processus Python, vous devez disposer de la version v0.19.10 ou ultérieure du SDK Python W&B.

Options de reinit

Utilisez le paramètre reinit pour contrôler ce qui se passe lorsque vous appelez wandb.init() alors qu’un autre run est actif. Le tableau suivant compare les options disponibles et leurs cas d’utilisation courants. Pour la définition complète du paramètre, consultez la documentation de référence de wandb.init().
W&B ne prend pas en charge le mode create_new pour les intégrations W&B qui reposent sur un run global unique, comme Hugging Face Trainer, les callbacks Keras et PyTorch Lightning. Si vous utilisez ces intégrations, exécutez chaque sous-expérience dans un processus distinct.

Configurer reinit

  • Utilisez wandb.init() en passant directement l’argument reinit :
  • Utilisez wandb.init() et passez un objet wandb.Settings au paramètre settings. Spécifiez reinit dans l’objet Settings :
  • Utilisez wandb.setup() pour définir l’option reinit de manière globale pour tous les runs du processus en cours. Cette approche est utile si vous souhaitez configurer le comportement une seule fois et l’appliquer à tous les appels wandb.init() suivants dans ce processus.
  • Spécifiez la valeur souhaitée pour reinit dans la variable d’environnement WANDB_REINIT. Une fois la variable d’environnement définie, l’option reinit s’applique aux appels wandb.init().
L’extrait de code suivant montre, dans les grandes lignes, comment configurer W&B pour créer un nouveau run à chaque appel de wandb.init() :

Exemple : processus simultanés

Supposons que vous souhaitiez créer un processus principal qui reste ouvert pendant toute la durée d’exécution du script, tout en lançant périodiquement des processus secondaires de courte durée sans terminer le processus principal. Ce modèle peut par exemple être utile si vous souhaitez entraîner un modèle dans le run principal, mais calculer des évaluations ou effectuer d’autres tâches dans des runs distincts. Pour ce faire, utilisez reinit="create_new" et initialisez plusieurs runs. Dans cet exemple, supposons que « Run A » soit le processus principal qui reste ouvert tout au long du script, tandis que « Run B1 » et « Run B2 » sont des runs secondaires de courte durée destinés à des tâches comme l’évaluation. Le flux de travail général pourrait se présenter ainsi :
  1. Initialisez le processus principal Run A avec wandb.init() et journalisez les métriques d’entraînement.
  2. Initialisez Run B1 (avec wandb.init()), journalisez des données, puis terminez-le.
  3. Journalisez d’autres données dans Run A.
  4. Initialisez Run B2, journalisez des données, puis terminez-le.
  5. Continuez à journaliser dans Run A.
  6. Pour finir, terminez Run A.
L’exemple de code Python suivant illustre ce flux de travail :
Retenez trois points clés de l’exemple précédent :
  1. reinit="create_new" crée un nouveau run chaque fois que vous appelez wandb.init().
  2. Vous conservez une référence à chaque run. wandb.run ne pointe pas automatiquement vers le nouveau run créé avec reinit="create_new". Stockez les nouveaux runs dans des variables telles que run_a, run_b1, etc., puis appelez .log() ou .finish() sur ces objets si nécessaire.
  3. Vous pouvez terminer les sous-runs à tout moment tout en gardant le run principal ouvert jusqu’à.
  4. Terminez vos runs avec run.finish() lorsque vous avez fini d’y journaliser des données. Vous avez ainsi la garantie que toutes les données sont téléversées et que le run est correctement fermé.
Dernière modification le 30 septembre 2026