Configurer TensorBoard

Ce document décrit la configuration et l'exécution de TensorBoard pour visualiser et analyser les performances du programme sur Cloud TPU.

Présentation

TensorBoard propose une suite d'outils conçus pour offrir une présentation visuelle des données TensorFlow. Lorsqu'il est utilisé pour la surveillance, TensorBoard peut aider à identifier les goulots d'étranglement lors du traitement et à suggérer des méthodes permettant d'améliorer les performances.

Prérequis

Les instructions suivantes supposent que vous avez déjà configuré votre Cloud TPU dans Cloud Shell et que vous êtes prêt à exécuter votre application d'entraînement.

Si vous n'avez pas de modèle prêt à être entraîné, vous pouvez commencer par suivre le tutoriel MNIST.

Installer le profileur Cloud TPU

Installez la version actuelle de cloud-tpu-profiler 2.3.0 sur la VM sur laquelle vous exécutez votre modèle pour créer le script capture-tpu-profile.

Exécuter TensorBoard

Lorsque vous avez exécuté ctpu up pour créer une VM Compute Engine et une ressource Cloud TPU, l'outil a automatiquement configuré le transfert de port pour l'environnement Cloud Shell afin de rendre TensorBoard disponible. Vous devez exécuter TensorBoard dans une nouvelle session Cloud Shell, et non dans l'interface système qui exécute l'application d'entraînement.

Suivez les étapes ci-dessous pour exécuter TensorBoard dans une session Cloud Shell distincte :

  1. Ouvrez une deuxième session Cloud Shell pour capturer les données de profilage et démarrer TensorBoard.

  2. Dans cette deuxième session, exécutez ctpu up pour définir certaines variables d'environnement requises sur la nouvelle interface système :

    $ ctpu up --name=tpu-name --zone=your-zone
    

    Notez que l'argument --zone est nécessaire pour que ctpu up trouve correctement votre VM Compute Engine.

    Un résultat semblable au suivant s'affiche :

    2018/08/02 12:53:12 VM already running.
    2018/08/02 12:53:12 TPU already running.
    About to ssh (with port forwarding enabled -- see docs for details)...
    

  3. Dans la deuxième session Cloud Shell, créez des variables d'environnement pour votre bucket Cloud Storage et votre répertoire de modèle. La variable de répertoire de modèle (MODEL_DIR) contient le nom du répertoire GCP dans lequel les points de contrôle, les résumés et le résultat de TensorBoard sont stockés lors de l'entraînement du modèle. Exemple :MODEL_DIR=${STORAGE_BUCKET}/model

    (vm)$ export STORAGE_BUCKET=gs://your-bucket-name
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/model-directory
    

Exécuter le modèle, capturer le résultat de la surveillance et afficher ce résultat dans TensorBoard

Vous pouvez afficher les informations de trace TensorBoard de deux manières : grâce au lecteur de traces statique ou au lecteur de traces en flux continu. Le lecteur de traces statique est limité à un million d'événements par Cloud TPU. Si vous devez accéder à davantage d'événements, utilisez le lecteur de traces en flux continu. Les deux configurations sont décrites ci-dessous.

  1. Dans la première session Cloud Shell, exécutez l'application d'entraînement de modèle TensorFlow. Par exemple, si vous utilisez le modèle MNIST, exécutez mnist_tpu.py comme décrit dans le tutoriel MNIST.
  2. Sélectionnez le type de lecteur de traces que vous souhaitez utiliser : le lecteur de traces statique ou le lecteur de traces en flux continu.
  3. Suivez l'une des procédures suivantes :
  4. Lecteur de traces statique

    1. Dans la deuxième session Cloud Shell, exécutez la commande TensorBoard suivante :
    2. (vm)$ tensorboard --logdir=${MODEL_DIR} &
      
    3. Dans la barre en haut à droite de la session Cloud Shell, cliquez sur le bouton Aperçu sur le Web et ouvrez le port 8080 pour afficher le résultat de TensorBoard. L'UI TensorBoard s'affiche dans un onglet de votre navigateur.
    4. Effectuez l'une des actions suivantes pour capturer le profil.
    • Si vous exécutez TensorBoard 1.15 ou une version ultérieure, cliquez sur le lien PROFIL en haut de l'interface utilisateur de TensorBoard. Cliquez ensuite sur le bouton Capturer le profil en haut de la fenêtre TensorBoard.
    • Un menu détaillé apparaît. Il vous permet de spécifier comment capturer le résultat du TPU : par adresse IP ou par nom de TPU.

      Saisissez l'adresse IP ou le nom du TPU pour commencer à capturer les données de trace qui sont ensuite affichées dans TensorBoard. Consultez le guide des outils Cloud TPU pour en savoir plus sur la modification des valeurs par défaut des champs "Profiling Duration" (Durée de profilage) et "Trace dataset ops" (Tracer les opérations d'ensemble de données).

    • Pour capturer un profil à partir de la ligne de commande au lieu d'utiliser le bouton CAPTURE PROFILE, exécutez la commande suivante dans la deuxième session Cloud Shell :
      (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

    Lecteur de traces en flux continu

    Pour le lecteur de traces en flux continu, copiez l'adresse IP de votre hôte TPU à partir de Google Cloud Console avant d'exécuter la commande TensorBoard.

    1. Dans la barre latérale de navigation de Cloud Console, sélectionnez Compute Engine > TPU et copiez l'adresse IP interne de la ressource Cloud TPU. Il s'agit de la valeur que vous spécifiez pour le paramètre --master_tpu_unsecure_channel dans la commande TensorBoard.
    2. Exécutez la commande TensorBoard suivante :
    3. (vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
      
    4. Dans la barre en haut à droite de la session Cloud Shell, cliquez sur le bouton Aperçu sur le Web et ouvrez le port 8080 pour afficher le résultat de TensorBoard. L'UI TensorBoard s'affiche dans un onglet de votre navigateur.
    5. Pour capturer la sortie du lecteur de traces en flux continu, exécutez la commande capture_tpu_profile suivante dans la deuxième session Cloud Shell :
    6. (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

      Vous commencerez ainsi à capturer les données de profil et à les afficher sur TensorBoard.

Étape suivante