wandb.watch() ajoute des hooks aux paramètres et aux gradients d’un modèle PyTorch, puis journalise des histogrammes de leurs valeurs à intervalles réguliers. Cela est utile pour diagnostiquer l’instabilité de l’entraînement, la disparition des gradients et les neurones morts.
Utilisation de base
Appelez wandb.watch() après wandb.init() et avant la première étape d’entraînement :
log_freq lots (la valeur par défaut de Run.watch() est log_freq=1000 ; l’exemple utilise 100 pour obtenir un retour plus rapide). Ils apparaissent dans l’onglet Charts sous des clés telles que gradients/layer_name.weight.
Options du paramètre log
| Value | Ce qui est enregistré |
|---|---|
"gradients" | Histogrammes de gradients uniquement (par défaut) |
"parameters" | Histogrammes de poids/paramètres uniquement |
"all" | Gradients et paramètres |
None | Aucun des deux — journalise uniquement la topologie du graphe du modèle |
log_graph=True si vous souhaitez obtenir le graphe de calcul alors que la journalisation des histogrammes est désactivée ou réduite au minimum. Consultez le graphe dans l’onglet Aperçu du run, sous Model. Voir Run.watch() pour comprendre comment log, log_graph et log_freq interagissent.
wandb.watch() séparément pour chaque modèle (utile lors de l’entraînement de GAN) :
log_freq. Journaliser à chaque étape (log_freq=1) peut considérablement ralentir l’entraînement. Une valeur comprise entre 50 et 200 est courante pour la plupart des exécutions d’entraînement. Si les performances sont primordiales, définissez log="parameters" plutôt que log="gradients" — les histogrammes de paramètres sont calculés sans hook de rétropropagation et sont moins coûteux.
Arrêter watch
Pour arrêter la journalisation des gradients en cours d’entraînement :
Experiments Métriques Exécutions