Skip to main content
Journalisez un dictionnaire de métriques, de médias ou d’objets personnalisés à une étape donnée avec le SDK Python de W&B. W&B collecte les paires clé-valeur au cours de chaque étape et les stocke dans un dictionnaire unique chaque fois que vous journalisez des données avec wandb.Run.log(). Les données journalisées depuis votre script sont enregistrées localement sur votre machine dans un répertoire nommé wandb, puis synchronisées avec le cloud W&B ou avec votre serveur privé.
Les paires clé-valeur ne sont stockées dans un dictionnaire unique que si vous transmettez la même valeur pour chaque étape. Si vous journalisez une valeur différente pour step, W&B écrit en mémoire toutes les clés et valeurs collectées.
Par défaut, chaque appel à wandb.Run.log() correspond à un nouveau step. W&B utilise les étapes comme axe X par défaut lorsqu’il crée des graphiques et des panneaux. Vous pouvez également créer et utiliser un axe X personnalisé, ou capturer une métrique de synthèse personnalisée. Pour plus d’informations, voir Personnaliser les axes de journalisation.
Utilisez wandb.Run.log() pour journaliser des valeurs consécutives à chaque step : 0, 1, 2, etc. Il est impossible d’écrire dans une étape précise de l’historique. W&B écrit uniquement dans l’étape « actuelle » et l’étape « suivante ».

Données consignées automatiquement

W&B consigne automatiquement les informations suivantes au cours d’une expérience W&B :
  • Métriques système : utilisation du CPU et du GPU, réseau, etc. Pour le GPU, ces données sont récupérées avec nvidia-smi.
  • Ligne de commande : les sorties stdout et stderr sont capturées et affichées dans l’onglet des journaux de la page du run.
Activez l’enregistrement du code sur la page Paramètres de votre compte pour journaliser :
  • Commit Git : le dernier commit Git est récupéré et affiché dans l’onglet Vue d’ensemble de la page du run, accompagné d’un fichier diff.patch si des modifications n’ont pas été commitées.
  • Dépendances : le fichier requirements.txt est téléversé et affiché dans l’onglet des fichiers de la page du run, avec tous les fichiers que vous enregistrez dans le répertoire wandb du run.

Quelles données sont journalisées par certains appels d’API W&B ?

Avec W&B, vous choisissez précisément ce que vous souhaitez journaliser. Voici quelques objets couramment journalisés :
  • Jeux de données : vous devez journaliser explicitement les images ou autres échantillons de jeu de données pour qu’ils soient transmis à W&B.
  • Graphiques : utilisez wandb.plot() avec wandb.Run.log() pour suivre des graphiques. Pour plus d’informations, voir Journaliser des graphiques.
  • Tables : utilisez wandb.Table pour journaliser des données que vous pourrez visualiser et interroger avec W&B. Pour plus d’informations, voir Journaliser des tableaux.
  • Gradients PyTorch : ajoutez wandb.Run.watch(model) pour afficher les gradients des poids sous forme d’histogrammes dans l’interface utilisateur.
  • Informations de configuration : journalisez comme paramètres de configuration des hyperparamètres, un lien vers votre jeu de données ou le nom de l’architecture que vous utilisez, en les transmettant ainsi : wandb.init(config=your_config_dictionary).
  • Métriques : utilisez wandb.Run.log() pour afficher les métriques de votre modèle. Si vous journalisez des métriques telles que la précision et la perte dans votre boucle d’entraînement, vous obtiendrez des graphiques mis à jour en temps réel dans l’interface utilisateur.

Contraintes de nommage des métriques

En raison des limitations de GraphQL, les noms de métriques dans W&B doivent respecter des règles de nommage précises :
  • Caractères autorisés : lettres (A-Z, a-z), chiffres (0-9) et caractères de soulignement (_)
  • Premier caractère : les noms doivent commencer par une lettre ou un caractère de soulignement
  • Motif : les noms de métriques doivent correspondre à /^[_a-zA-Z][_a-zA-Z0-9]*$/
Évitez d’utiliser des caractères non valides (virgules, espaces ou symboles spéciaux, par exemple) dans les noms de métriques. Ils peuvent entraîner des problèmes de tri, de requête ou d’affichage dans l’interface W&B.
Noms de métriques valides :
Noms de métriques non valides (à éviter) :

Flux de travail courants

  1. Comparer la meilleure précision : pour comparer la meilleure valeur d’une métrique entre plusieurs runs, définissez la valeur de synthèse de cette métrique. Par défaut, la synthèse correspond à la dernière valeur journalisée pour chaque clé. Cela s’avère utile dans le tableau de l’interface utilisateur, où vous pouvez trier et filtrer les runs selon leurs métriques de synthèse : vous pouvez ainsi comparer les runs dans un tableau ou un graphique à barres en fonction de leur meilleure précision plutôt que de leur précision finale. Par exemple : wandb.run.summary["best_accuracy"] = best_accuracy
  2. Afficher plusieurs métriques sur un même graphique : journalisez plusieurs métriques dans le même appel. Par exemple :
    Vous pouvez ensuite représenter les deux métriques sur un graphique dans l’interface utilisateur.
  3. Personnaliser l’axe X : ajoutez un axe X personnalisé dans le même appel de journalisation pour visualiser vos métriques selon un autre axe dans le tableau de bord W&B. Par exemple :
    Pour définir l’axe X par défaut d’une métrique donnée, utilisez Run.define_metric().
  4. Journaliser des médias enrichis et des graphiques : wandb.Run.log() prend en charge la journalisation d’une grande variété de types de données, des médias tels que les images et les vidéos aux tableaux et aux graphiques.

Bonnes pratiques et conseils

Pour découvrir les bonnes pratiques et les conseils relatifs à Experiments et à la journalisation, voir Bonnes pratiques : Experiments et journalisation.
Dernière modification le 30 septembre 2026