
Ce que vous trouverez dans ce notebook

Installer, importer et se connecter
Étape 0 : Installer W&B
wandb avec pip.
Étape 1 : Importer W&B et vous connecter
Définir l’expérience et le pipeline
Suivre les métadonnées et les hyperparamètres avec wandb.init()
config (ou un objet similaire), puis à y accéder au besoin.
Cet exemple ne fait varier que quelques hyperparamètres et code le reste à la main. N’importe quelle partie de votre modèle peut faire partie de config.
L’exemple inclut également des métadonnées sur le dataset MNIST et une architecture convolutionnelle. Si vous travaillez plus tard, par exemple, avec des architectures entièrement connectées sur CIFAR dans le même projet, ces métadonnées vous aideront à distinguer vos runs.
makeun modèle, ainsi que les données et l’optimiseur associés.trainle modèle en conséquence.- le
testpour voir comment l’entraînement s’est déroulé.
wandb.init(). L’appel à cette fonction établit un canal de communication entre votre code et les serveurs de W&B.
Le fait de passer le dictionnaire config à wandb.init() enregistre immédiatement toutes ces informations dans W&B, afin que vous sachiez toujours quelles valeurs d’hyperparamètres vous avez choisi d’utiliser pour votre expérience.
Pour vous assurer que les valeurs que vous avez choisies et enregistrées sont toujours bien celles qui sont utilisées dans votre modèle, W&B recommande d’utiliser la copie run.config de votre objet. Consultez la définition suivante de make pour voir quelques exemples.
Une fois le pipeline défini, les sections suivantes implémentent successivement chacune de ses étapes : configuration des données et du modèle, entraînement et test.
Remarque : W&B exécute son code dans des processus séparés afin que tout problème du côté de W&B ne fasse pas planter votre code. Une fois le problème résolu, vous pouvez synchroniser les données avec wandb sync.
Définir le chargement des données et le modèle
wandb.
wandb, donc cet exemple utilise une architecture ConvNet standard. N’ayez pas peur de le modifier et d’essayer quelques expériences — tous vos résultats seront enregistrés sur wandb.ai.
Définir la logique d’entraînement
model_pipeline, il est temps de préciser comment entraîner. C’est là que l’intégration W&B suit les gradients, les paramètres et les métriques au fil de l’entraînement.
Deux fonctions wandb entrent en jeu ici : watch et log.
Suivre les gradients avec run.watch() et tout le reste avec run.log()
run.watch() journalisera les gradients et les paramètres de votre modèle toutes les log_freq étapes de l’entraînement.
Appelez run.watch() avant de commencer l’entraînement. Pour les modes de journalisation, les modèles multiples et les conseils sur les performances, voir Comment puis-je journaliser les gradients et les poids du modèle avec wandb.watch ?.
Le reste du code d’entraînement reste le même : parcourez les époques et les lots, effectuez des passes avant et arrière, et appliquez votre optimizer.
run.log().
run.log() attend un dictionnaire dont les clés sont des chaînes de caractères. Ces chaînes identifient les objets enregistrés, qui constituent les valeurs. Vous pouvez aussi indiquer, de façon facultative, à quelle step d’entraînement vous en êtes.
Remarque : utiliser le nombre d’exemples que le modèle a vus facilite la comparaison entre différentes tailles de lot, mais vous pouvez utiliser les étapes brutes ou le nombre de lots. Pour des runs d’entraînement plus longs, il peut aussi être pertinent de journaliser par epoch.
Définir la logique de test
Facultatif : Appelez run.save()
exportez le modèle au
format Open Neural Network eXchange (ONNX).
En passant ce nom de fichier à run.save(), vous vous assurez que les paramètres du modèle
sont enregistrés sur les serveurs de W&B : fini les pertes de repères pour savoir quel fichier .h5 ou .pb
correspond à quel run d’entraînement.
Pour des fonctionnalités wandb plus avancées pour le stockage, la gestion des versions et la distribution de
modèles, consultez les outils Artifacts.
Exécutez l’entraînement et regardez vos métriques en direct sur wandb.ai
- Charts, où les gradients du modèle, les valeurs des paramètres et la perte sont enregistrés tout au long de l’entraînement.
- System, qui contient les métriques système, y compris l’utilisation des E/S disque ainsi que les métriques CPU et GPU.
- Logs, qui contient une copie de tout ce qui a été envoyé sur la sortie standard pendant l’entraînement.
- Files, où, une fois l’entraînement terminé, vous pouvez cliquer sur
model.onnxpour visualiser votre réseau avec le visualiseur de modèles Netron.
with wandb.init(), W&B affiche également une synthèse des résultats dans la sortie de la cellule.
Tester des hyperparamètres avec des balayages
- Définir le balayage : créez un dictionnaire ou un fichier YAML qui spécifie les paramètres à explorer, la stratégie de recherche, la métrique d’optimisation, etc.
- Initialiser le balayage :
sweep_id = wandb.sweep(sweep_config). - Exécuter l’agent de balayage :
wandb.agent(sweep_id, function=train).

Galerie d’exemples
Configuration avancée
- Variables d’environnement : définissez des clés API dans les variables d’environnement pour pouvoir lancer des entraînements sur un cluster géré.
- Mode hors ligne : utilisez le mode
dryrunpour entraîner hors ligne et synchroniser les résultats plus tard. - Sur site : installez W&B dans un cloud privé ou sur des serveurs isolés du réseau au sein de votre propre infrastructure.
- Sweeps : configurez rapidement une recherche d’hyperparamètres avec un outil léger de réglage.