step avec le SDK Python W&B. W&B collecte les paires clé-valeur à chaque étape et les stocke dans un dictionnaire unique chaque fois que vous enregistrez des données avec wandb.Run.log(). Les données enregistrées depuis votre script sont sauvegardées localement sur votre machine dans un répertoire nommé wandb, puis synchronisées avec le cloud W&B ou 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. W&B écrit en mémoire toutes les clés et valeurs collectées si vous enregistrez une valeur différente pour
step.wandb.Run.log() correspond à une nouvelle step. W&B utilise les étapes comme axe X par défaut lorsqu’il crée des graphiques et des panneaux. Vous pouvez aussi créer et utiliser un axe X personnalisé, ou capturer une métrique récapitulative personnalisée. Pour plus d’informations, voir Personnaliser les axes des logs.
Données enregistrées automatiquement
- Métriques système : utilisation du CPU et du GPU, réseau, etc. Pour le GPU, elles sont récupérées avec
nvidia-smi. - Ligne de commande : stdout et stderr sont capturés et s’affichent dans l’onglet des journaux de la page du run.
- Commit Git : le dernier commit git est récupéré et visible dans l’onglet Vue d’ensemble de la page du run, ainsi qu’un fichier
diff.patchs’il existe des modifications non validées. - Dépendances : le fichier
requirements.txtest 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épertoirewandbdu run.
Quelles données sont enregistrées avec des appels d’API W&B spécifiques ?
- Datasets : Vous devez enregistrer explicitement des images ou d’autres échantillons de jeu de données pour qu’ils soient envoyés en streaming vers W&B.
- Plots : Utilisez
wandb.plot()avecwandb.Run.log()pour suivre des graphiques. Voir Consigner des graphiques pour plus d’informations. - Tables : Utilisez
wandb.Tablepour enregistrer des données afin de les visualiser et de les interroger avec W&B. Voir Consigner des tableaux pour plus d’informations. - Gradients PyTorch : Ajoutez
wandb.Run.watch(model)pour voir les gradients des poids sous forme d’histogrammes dans l’UI. - Informations de configuration : Enregistrez les hyperparamètres, un lien vers votre jeu de données ou le nom de l’architecture que vous utilisez comme paramètres de configuration, transmis comme ceci :
wandb.init(config=your_config_dictionary). - Métriques : Utilisez
wandb.Run.log()pour voir les métriques de votre modèle. Si vous enregistrez des métriques comme accuracy et loss dans votre boucle d’entraînement, vous obtiendrez des graphiques mis à jour en direct dans l’UI.
Contraintes de dénomination des métriques
- Caractères autorisés : lettres (A-Z, a-z), chiffres (0-9) et underscores (_)
- Caractère initial : les noms doivent commencer par une lettre ou un underscore
- Motif : les noms de métriques doivent correspondre à
/^[_a-zA-Z][_a-zA-Z0-9]*$/
Flux de travail courants
-
Comparer la meilleure accuracy : Pour comparer la meilleure valeur d’une métrique entre plusieurs runs, définissez la valeur summary de cette métrique. Par défaut, summary correspond à la dernière valeur enregistrée pour chaque clé. Cela est utile dans le tableau de l’UI, où vous pouvez trier et filtrer les runs selon leurs métriques summary, afin de comparer les runs dans un tableau ou un graphique en barres en fonction de leur meilleure accuracy, plutôt que de leur accuracy finale. Par exemple :
wandb.run.summary["best_accuracy"] = best_accuracy -
Afficher plusieurs métriques sur un même graphique : Enregistrez plusieurs métriques dans le même appel. Par exemple :
Vous pouvez ensuite afficher les deux métriques dans l’UI.
-
Personnaliser l’axe X : Ajoutez un axe X personnalisé au même appel
logpour visualiser vos métriques par rapport à un autre axe dans le tableau de bord W&B. Par exemple :Pour définir l’axe X par défaut pour une métrique donnée, utilisez Run.define_metric(). -
Enregistrer des médias enrichis et des graphiques :
wandb.Run.log()prend en charge l’enregistrement d’une grande variété de types de données, des médias comme les images et les vidéos aux tableaux et aux graphiques.