Passer au contenu principal
En plus des valeurs qui évoluent au fil du temps pendant l’entraînement, il est souvent important de suivre une valeur unique qui résume un modèle ou une étape de prétraitement. Journalisez ces informations dans le dictionnaire summary d’un run W&B. Le dictionnaire summary d’un run peut contenir des tableaux NumPy, des tenseurs PyTorch ou des tenseurs TensorFlow. Lorsqu’une valeur est de l’un de ces types, nous stockons l’intégralité du tenseur dans un fichier binaire et enregistrons dans l’objet summary des métriques globales, comme le minimum, la moyenne, la variance, les percentiles, etc. La dernière valeur enregistrée avec wandb.Run.log() est automatiquement utilisée comme dictionnaire summary d’un run W&B. Si un dictionnaire de métrique de synthèse est modifié, la valeur précédente est perdue. L’extrait de code suivant montre comment fournir une métrique de synthèse personnalisée à W&B :
import wandb
import argparse

with wandb.init(config=args) as run:
  best_accuracy = 0
  for epoch in range(1, args.epochs + 1):
      test_loss, test_accuracy = test()
      if test_accuracy > best_accuracy:
          run.summary["best_accuracy"] = test_accuracy
          best_accuracy = test_accuracy
Vous pouvez mettre à jour l’attribut summary d’un run W&B existant une fois l’entraînement terminé. Utilisez l’API publique de W&B pour mettre à jour l’attribut summary :
api = wandb.Api()
run = api.run("username/project/run_id")
run.summary["tensor"] = np.random.random(1000)
run.summary.update()

Personnaliser les métriques de synthèse

Les métriques de synthèse personnalisées sont utiles pour enregistrer les performances du modèle à la meilleure étape de l’entraînement dans votre run.summary. Par exemple, vous pouvez vouloir enregistrer la précision maximale ou la valeur minimale de la perte, plutôt que la valeur finale. Par défaut, le summary utilise la valeur finale de l’historique. Pour personnaliser les métriques de synthèse, passez l’argument summary à define_metric. Il accepte les valeurs suivantes :
  • "min"
  • "max"
  • "mean"
  • "best"
  • "last"
  • "none"
Vous pouvez utiliser "best" uniquement si vous définissez également l’argument facultatif objective sur "minimize" ou "maximize". L’exemple suivant ajoute au summary les valeurs minimale et maximale de la perte et de la précision :
import wandb
import random

random.seed(1)

with wandb.init() as run:
    # Valeurs min et max du résumé pour la perte
    run.define_metric("loss", summary="min")
    run.define_metric("loss", summary="max")

    # Valeurs min et max du résumé pour la précision
    run.define_metric("acc", summary="min")
    run.define_metric("acc", summary="max")

    for i in range(10):
        log_dict = {
            "loss": random.uniform(0, 1 / (i + 1)),
            "acc": random.uniform(1 / (i + 1), 1),
        }
        run.log(log_dict)

Afficher les métriques de synthèse

Affichez les valeurs récapitulatives dans la page Aperçu d’un run ou dans le tableau des runs du projet.
  1. Accédez à la W&B App.
  2. Sélectionnez l’onglet Workspace dans la barre latérale du projet.
  3. Cliquez sur le run qui a enregistré les valeurs récapitulatives. La page du run s’ouvre avec l’onglet Aperçu affiché par défaut.
  4. Affichez les valeurs récapitulatives dans la section Summary.
Aperçu du run