Passer au contenu principal
Utilisez des graphiques personnalisés pour contrôler les données chargées dans un panneau et la manière dont elles sont visualisées.

1. Enregistrez des données dans W&B

Commencez par enregistrer des données dans votre script. Utilisez wandb.Run.config pour des valeurs uniques définies au début de l’entraînement, comme les hyperparamètres. Utilisez wandb.Run.log() pour plusieurs points au fil du temps, et enregistrez des tableaux 2D personnalisés avec wandb.Table(). Nous vous recommandons d’enregistrer jusqu’à 10 000 points de données par clé enregistrée.
with wandb.init() as run: 

  # Journalisation d'un tableau de données personnalisé
  my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
  run.log(
    {"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
  )
Essayez un notebook d’exemple rapide pour journaliser les tableaux de données, puis, à l’étape suivante, nous configurerons des graphiques personnalisés. Voyez le rendu des graphiques obtenus dans le rapport en direct.

2. Créer une requête

Une fois que vous avez enregistré des données à visualiser, accédez à la page de votre projet et cliquez sur le bouton + pour ajouter un nouveau panneau, puis sélectionnez Graphique personnalisé. Vous pouvez suivre les étapes dans l’espace de travail de démonstration des graphiques personnalisés.
Graphique personnalisé vide

Ajouter une requête

  1. Cliquez sur summary et sélectionnez historyTable pour configurer une nouvelle requête qui extrait des données de l’historique du run.
  2. Saisissez la clé sous laquelle vous avez enregistré le wandb.Table(). Dans le code snippet ci-dessus, c’était my_custom_table . Dans le notebook d’exemple, les clés sont pr_curve et roc_curve.

Définir les champs Vega

Maintenant que les résultats de la requête sont chargés dans ces colonnes, vous pouvez les sélectionner dans les menus déroulants des champs Vega :
Chargement des colonnes à partir des résultats de la requête pour définir les champs Vega
  • axe x : runSets_historyTable_r (rappel)
  • axe y : runSets_historyTable_p (précision)
  • couleur : runSets_historyTable_c (étiquette de classe)

3. Personnaliser le graphique

Le résultat est déjà plutôt bon, mais je voudrais passer d’un nuage de points à un graphique en courbes. Cliquez sur Edit pour modifier la spécification Vega de ce graphique intégré. Suivez les étapes dans l’espace de travail de démonstration des graphiques personnalisés.
Sélection d’un graphique personnalisé
J’ai mis à jour la spécification Vega pour personnaliser la visualisation :
  • ajouter des titres pour le graphique, la légende, l’axe des x et l’axe des y (définissez « title » pour chaque champ)
  • remplacer la valeur de « mark » de « point » par « line »
  • supprimer le champ « size » inutilisé
Spécification Vega de la courbe PR
Pour enregistrer cela en tant que préréglage que vous pourrez réutiliser ailleurs dans ce projet, cliquez sur Save as en haut de la page. Voici à quoi ressemble le résultat, avec une courbe ROC :
Graphique de la courbe PR

Bonus : histogrammes composites

Les histogrammes permettent de visualiser des distributions numériques pour nous aider à comprendre des jeux de données plus volumineux. Les histogrammes composites présentent plusieurs distributions sur les mêmes bins, ce qui permet de comparer deux métriques ou plus entre différents modèles, ou différentes classes au sein d’un même modèle. Pour un modèle de segmentation sémantique qui détecte des objets dans des scènes de conduite, on peut par exemple comparer l’efficacité d’une optimisation pour l’accuracy par rapport à l’intersection over union (IOU), ou chercher à savoir dans quelle mesure différents modèles détectent les voitures (régions grandes et fréquentes dans les données) par rapport aux panneaux de signalisation (régions bien plus petites et moins fréquentes). Dans la démo Colab, vous pouvez comparer les scores de confiance de deux des dix classes d’êtres vivants.
Histogramme composite
Pour créer votre propre version du panneau d’histogramme composite personnalisé :
  1. Créez un nouveau panneau Graphique personnalisé dans votre Workspace ou rapport (en ajoutant une visualisation « Graphique personnalisé »). Cliquez sur le bouton « Edit » en haut à droite pour modifier la spécification Vega à partir de n’importe quel type de panneau intégré.
  2. Remplacez cette spécification Vega intégrée par mon code MVP pour un histogramme composite en Vega. Vous pouvez modifier directement dans cette spécification Vega, avec la syntaxe Vega, le titre principal, les titres des axes, le domaine d’entrée et tout autre détail (vous pouvez changer les couleurs ou même ajouter un troisième histogramme :)).
  3. Modifiez la requête à droite pour charger les bonnes données depuis vos logs wandb. Ajoutez le champ summaryTable et définissez le tableKey correspondant sur class_scores pour récupérer le wandb.Table enregistré par votre run. Cela vous permettra d’alimenter les deux ensembles de bins de l’histogramme (red_bins et blue_bins) via les menus déroulants avec les colonnes du wandb.Table enregistré sous class_scores. Dans mon exemple, j’ai choisi les scores de prédiction de la classe animal pour les bins rouges et plant pour les bins bleus.
  4. Vous pouvez continuer à modifier la spécification Vega et la requête jusqu’à ce que le graphique affiché dans l’aperçu vous convienne. Une fois terminé, cliquez sur Save as en haut et donnez un nom à votre graphique personnalisé pour pouvoir le réutiliser. Cliquez ensuite sur Apply from panel library pour finaliser votre graphique.
Voici à quoi ressemblent mes résultats après une expérience très brève : un entraînement sur seulement 1 000 exemples pendant une époque produit un modèle très confiant dans le fait que la plupart des images ne sont pas des plantes, et très incertain quant aux images qui pourraient être des animaux.
Configuration du graphique
Résultat du graphique