Passer au contenu principal
Utilisez W&B pour enregistrer votre code, comparer le code d’un run à l’autre, afficher les modifications locales et capturer l’historique de session Jupyter.

Activer l’enregistrement du code

Configurez l’enregistrement du code pour votre équipe ou votre organisation. Les paramètres au niveau de l’équipe et de l’organisation sont documentés dans Configurer les paramètres de confidentialité.
Par défaut, W&B désactive l’enregistrement du code pour toutes les équipes. Avant de pouvoir l’activer pour une équipe, un administrateur de l’organisation doit l’activer au niveau de l’organisation. Voir la section Organisation.

Équipe

Pour activer l’enregistrement du code pour une équipe en tant qu’administrateur de l’équipe, accédez à la page Settings, puis à la section Privacy, et configurez Enable code saving by default pour les runs de l’équipe. Cette option n’est disponible que si un administrateur de l’organisation n’a pas appliqué de restrictions sur l’enregistrement du code à l’échelle de toute l’organisation. Pour les étapes de navigation, voir Configurer les paramètres de confidentialité d’une équipe.

Organisation

Pour activer l’enregistrement du code pour une organisation en tant qu’administrateur de l’organisation, accédez à Settings, allez à la section Privacy et activez Enforce default code saving restrictions afin que l’enregistrement du code reste désactivé par défaut pour chaque équipe. Tant que ce paramètre est activé, les administrateurs d’équipe ne peuvent pas activer Enable code saving by default pour une équipe. Pour la liste complète des contrôles au niveau de l’organisation, voir Enforce privacy settings for all teams.

Enregistrer le code

Capturez le code source qui a produit un run en tant qu’artefact. L’artefact de code est visible dans le Workspace de votre projet. Il existe deux façons d’enregistrer le code : une approche granulaire et une approche automatique.

Contrôle fin

Utilisez wandb.Run.log_code() pour journaliser des fichiers ou des répertoires spécifiques en tant qu’artefact. Par défaut, W&B parcourt le répertoire actuel et journalise tous les fichiers se terminant par .py. L’exemple suivant montre comment utiliser wandb.Run.log_code() pour journaliser le répertoire actuel :
import wandb

with wandb.init() as run:
    # Enregistrer le répertoire courant en tant qu'artifact de code
    run.log_code(root=".")
L’exemple suivant montre comment utiliser wandb.Run.log_code() avec les paramètres include_fn= et exclude_fn= pour indiquer quels fichiers inclure et exclure lorsque vous enregistrez le code :
import wandb

with wandb.init() as run:
    run.log_code(
         root="../",
         include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb"),
         exclude_fn=lambda path, root: os.path.relpath(path, root).startswith(
             "cache/"
         ),
    )
Pour mieux contrôler les types et emplacements des fichiers de code source que W&B enregistre, voir la Référence.

Capturer automatiquement le code

Utilisez wandb.init(settings=wandb.Settings(code_dir=)) pour capturer automatiquement tout le code du répertoire actuel et de ses sous-répertoires. Par défaut, W&B capture :
  • Les fichiers dont le nom se termine par .py
  • requirements.txt
  • Dockerfile
  • Exclut tout ce qui se trouve dans wandb/ ou .wandb/
L’exemple suivant montre comment capturer tout le code du répertoire actuel et de ses sous-répertoires :
import wandb

with wandb.init(settings=wandb.Settings(code_dir=".")) as run:
    # Votre code d'entraînement ici
Vous pouvez également spécifier un autre répertoire en remplaçant . par le chemin du répertoire dont vous souhaitez capturer le contenu.

Voir les modifications locales

W&B génère des fichiers diff lorsque vous journalisez du code avec des modifications indexées ou non indexées dans votre dépôt Git, et vous pouvez afficher ces modifications dans l’interface W&B. W&B nomme les fichiers diff diff.patch ou diff_<sha>.patch. Ces fichiers contiennent des modifications locales du code qui ne sont pas encore validées dans Git, par rapport à HEAD. Pour afficher les fichiers diff :
  1. Accédez au Workspace de votre projet.
  2. Dans la barre latérale gauche, cliquez sur Workspace.
  3. Dans le sélecteur de run, sélectionnez le run dont vous souhaitez afficher le diff.
  4. Sur la page Aperçu du run, sélectionnez l’onglet Files.
  5. Dans la liste des fichiers, sélectionnez le fichier diff.patch ou diff_<sha>.patch.
  6. Sélectionnez un fichier dans la liste pour déplier le diff correspondant.
W&B prend en charge deux modes d’affichage du diff entre les runs : unifié et scindé.
  • La vue unifiée affiche le diff dans un seul panneau :
    Vue unifiée du patch de diff
  • La vue scindée affiche le diff dans deux panneaux, côte à côte :
    Vue scindée du patch de diff
Basculez entre les deux vues en sélectionnant le bouton Unified ou Split dans le coin supérieur droit de la vue diff, sous le bouton Download.

Historique de session Jupyter

W&B enregistre l’historique du code exécuté dans votre session de notebook Jupyter. Lorsque vous appelez wandb.init() dans Jupyter, W&B ajoute un hook pour enregistrer automatiquement un notebook Jupyter qui contient l’historique du code exécuté dans votre session en cours.
  1. Accédez au Workspace du projet qui contient votre code.
  2. Sélectionnez l’onglet Artifacts dans la barre latérale du projet.
  3. Développez l’artefact code.
  4. Sélectionnez l’onglet Files.
Historique de session Jupyter
Cela affiche les cellules exécutées pendant votre session, ainsi que toutes les sorties générées par des appels à la méthode display d’IPython. Cela vous permet de voir exactement quel code a été exécuté dans Jupyter pour une run donnée. Lorsque c’est possible, W&B enregistre également la version la plus récente du notebook, que vous trouverez aussi dans le répertoire code.
Sortie de session Jupyter

Comparer le code entre les runs

Comparez le code utilisé dans différents runs W&B :
  1. Cliquez sur le bouton Add panels dans le coin supérieur droit de la page.
  2. Ouvrez le menu déroulant TEXT AND CODE et sélectionnez Code.
Panneau comparateur de code