Passer au contenu principal

Pour commencer

Si vous utilisez déjà TensorBoard, son intégration avec wandb est simple.
import tensorflow as tf
import wandb

Journaliser des métriques personnalisées

Si vous devez journaliser d’autres métriques personnalisées qui ne sont pas envoyées à TensorBoard, vous pouvez appeler run.log() dans votre code run.log({"custom": 0.8}) Le paramétrage de l’argument step dans run.log() est désactivé lors de la synchronisation avec TensorBoard. Si vous souhaitez utiliser un nombre d’étapes différent, vous pouvez journaliser les métriques avec une métrique d’étape, comme suit :
with wandb.init(config=tf.flags.FLAGS, sync_tensorboard=True) as run:
    run.log({"custom": 0.8, "global_step":global_step}, step=global_step)

Hook pour les estimateurs TensorFlow

Si vous souhaitez mieux contrôler ce qui est journalisé, wandb propose également un hook pour les estimateurs TensorFlow. Ce hook journalise toutes les valeurs tf.summary du graphe.
import tensorflow as tf
import wandb

run = wandb.init(config=tf.FLAGS)

estimator.train(hooks=[wandb.tensorflow.WandbHook(steps_per_log=1000)])
run.finish()

Journaliser manuellement

Le moyen le plus simple de journaliser des métriques dans TensorFlow consiste à utiliser tf.summary avec le logger de TensorFlow :
import wandb
run = wandb.init(config=tf.flags.FLAGS, sync_tensorboard=True)
with tf.Session() as sess:
    # ...
    wandb.tensorflow.log(tf.summary.merge_all())
Avec TensorFlow 2, la manière recommandée d’entraîner un modèle avec une boucle personnalisée est d’utiliser tf.GradientTape. Pour en savoir plus, consultez le guide pas à pas TensorFlow sur l’entraînement personnalisé. Si vous souhaitez intégrer wandb pour journaliser des métriques dans vos boucles d’entraînement TensorFlow personnalisées, vous pouvez vous appuyer sur cet extrait :
    with tf.GradientTape() as tape:
        # Obtenir les probabilités
        predictions = model(features)
        # Calculer la perte
        loss = loss_func(labels, predictions)

    # Journaliser vos métriques
    run.log("loss": loss.numpy())
    # Obtenir les gradients
    gradients = tape.gradient(loss, model.trainable_variables)
    # Mettre à jour les poids
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
Un exemple complet pour personnaliser les boucles d’entraînement dans TensorFlow 2 est disponible.

En quoi W&B se distingue-t-il de TensorBoard ?

Lorsque les cofondateurs ont commencé à travailler sur W&B, ils ont voulu créer un outil pour les utilisateurs de TensorBoard frustrés chez OpenAI. Voici quelques points sur lesquels nous nous sommes attachés à progresser :
  1. Reproduire les modèles : W&B est particulièrement utile pour expérimenter, explorer et reproduire des modèles plus tard. Nous capturons non seulement les métriques, mais aussi les hyperparamètres et la version du code. Nous pouvons également enregistrer l’état de votre contrôle de version ainsi que les points de contrôle du modèle, afin que votre projet soit reproductible.
  2. Organisation automatique : Que vous repreniez un projet d’un collaborateur, reveniez de vacances ou ressortiez un ancien projet, W&B permet de voir facilement tous les modèles déjà testés, afin que personne ne perde des heures, des cycles GPU ou du carbone à relancer des expériences.
  3. Intégration rapide et flexible : Ajoutez W&B à votre projet en 5 minutes. Installez notre package Python gratuit et open source, ajoutez quelques lignes à votre code, et chaque fois que vous exécuterez votre modèle, vos métriques et vos enregistrements seront automatiquement enregistrés.
  4. Tableau de bord persistant et centralisé : Peu importe où vous entraînez vos modèles, que ce soit sur votre machine locale, sur un cluster de laboratoire partagé ou sur des instances spot dans le cloud, vos résultats sont centralisés dans le même tableau de bord. Vous n’avez pas besoin de passer du temps à copier et à organiser des fichiers TensorBoard provenant de différentes machines.
  5. Tableaux puissants : Recherchez, filtrez, triez et regroupez les résultats de différents modèles. Il est facile d’examiner des milliers de versions de modèles et de trouver les plus performants pour différentes tâches. TensorBoard n’est pas conçu pour fonctionner efficacement sur de grands projets.
  6. Outils de collaboration : Utilisez W&B pour organiser des projets complexes de machine learning. Il est facile de partager un lien vers W&B, et vous pouvez utiliser des Teams privés pour que tout le monde envoie ses résultats vers un projet partagé. Nous prenons également en charge la collaboration via les Reports — ajoutez des visualisations interactives et décrivez votre travail en markdown. C’est un excellent moyen de tenir un journal de travail, de partager vos conclusions avec votre responsable ou de présenter vos résultats à votre laboratoire ou à votre équipe.
Créez un compte gratuit

Exemples

Nous avons créé quelques exemples pour vous montrer comment fonctionne l’intégration :