Profiler votre modèle sur des VM Cloud TPU

Le profilage vous permet d'optimiser les performances d'entraînement de votre modèle sur Cloud TPU. Vous allez profiler votre modèle à l'aide de TensorBoard et du plug-in Cloud TPU TensorBoard.

Pour en savoir plus sur l'utilisation de TensorBoard avec l'un des frameworks compatibles, consultez les documents suivants:

Conditions préalables au profilage d'un script d'entraînement

Avant d'utiliser les outils de profilage TPU, vous devez:

  1. Démarrer une session d'entraînement de modèle

    1. Configurez un TPU v4-8 pour entraîner un modèle. La procédure de profilage décrite dans ce document utilise un modèle ResNet, mais vous pouvez utiliser un autre modèle à condition qu'il soit entraîné sur un TPU v4.
    2. Dans votre VM TPU, ajoutez une ligne pour démarrer le serveur de profileur dans le script d'entraînement.

      Pour l'entraînement ResNET, le script d'entraînement se trouve sur : /usr/share/tpu/tensorflow/resnet50_keras/resnet50.py.

      Insérez les lignes en surbrillance dans resnet50.py. En haut du fichier, ajoutez l'importation suivante:

      import tensorflow.compat.v2 as tf2
      

      Juste avant que les scripts ne démarrent la boucle d'entraînement, ajoutez la ligne en surbrillance:

      if name == 'main':
       tf.logging.set_verbosity(tf.logging.INFO)
       tf2.profiler.experimental.server.start(6000)
       app.run(main)
      

      Le serveur de profileur TensorFlow démarre sur votre VM TPU lorsque vous exécutez le script.

    3. Démarrez l'entraînement du modèle.

      Exécutez votre script d'entraînement et attendez que le résultat indique que votre modèle est en cours d'entraînement. Le résultat dépend de votre code et de votre modèle. Recherchez un résultat semblable à Epoch 1/100. Vous pouvez également accéder à la page Cloud TPU dans la console Google Cloud, sélectionner votre TPU et afficher le graphique d'utilisation du processeur. Bien que le graphique d'utilisation du processeur n'indique pas l'utilisation du TPU, cela indique que le TPU entraîne votre modèle.

Commencer à profiler l'entraînement du modèle

Pendant l'entraînement, ouvrez une fenêtre de terminal distincte ou Cloud Shell. Procédez comme suit pour commencer à profiler l'entraînement du modèle.

  1. Dans la nouvelle fenêtre ou la nouvelle interface système, connectez-vous à la VM TPU avec transfert de port.

    gcloud compute tpus tpu-vm ssh your-vm --zone=us-central2-b --ssh-flag="-4 -L 9001:localhost:9001"
    

    Le transfert de port permet à votre navigateur local de communiquer avec le serveur TensorBoard exécuté sur votre VM TPU.

  2. Installez les exigences de TensorFlow {: id="install-tensorboard"}.

    TensorBoard est installé par défaut sur votre VM TPU. Vous pouvez également installer TensorFlow manuellement. Dans tous les cas, des dépendances supplémentaires peuvent être nécessaires. Installez ces dépendances sur votre VM TPU en exécutant la commande suivante:

    pip3 install -r /usr/share/tpu/models/official/requirements.txt
    
  3. Installez le plug-in Cloud TPU TensorBoard {: id="install-plugin"}.

    Depuis la VM TPU, exécutez les commandes suivantes:

     pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"
     pip3 install tensorflow
     pip3 install tensorboard_plugin_profile
    
  4. Démarrer le serveur TensorBoard

    Exécutez TensorBoard et créez un répertoire de journaux (logdir) sur la VM TPU où TensorBoard peut écrire des données de profilage. Spécifiez le répertoire de journaux à l'aide de l'option --logdir. Exemple :

    mkdir log-directory
    TPU_LOAD_LIBRARY=0 tensorboard --logdir log-directory --port 9001
    

TensorBoard démarre un serveur Web et affiche son URL:

Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.3.0 at http://localhost:9001 (Press CTRL+C to quit)

Ouvrez un navigateur Web et accédez à l'URL affichée dans le résultat de TensorBoard. Sélectionnez Profile dans le menu déroulant situé en haut à droite de la page TensorBoard. La liste des outils de profilage disponibles est présentée dans le menu déroulant tools (Outils) de la barre latérale gauche.

Image

Capturer un profil sur des VM TPU

  1. Sélectionnez le bouton CAPTURE PROFILE (CAPTURE DU PROFIL).
  2. Sélectionnez la case d'option Adresse IP.
  3. Saisissez HOSTNAME:6000 dans le champ Profile Service URL.
  4. Sélectionnez le bouton CAPTURE (CAPTURE).

Image

Afficher les données de profil avec TensorBoard

Une fois le profil capturé, TensorBoard affiche la page overview_page. La liste des outils de profilage disponibles s'affiche dans le volet de gauche.

Image

Profile

L'onglet Profil s'affiche une fois que vous avez capturé des données de modèle. Vous devrez peut-être cliquer sur le bouton d'actualisation de la page TensorBoard. Une fois les données disponibles, cliquez sur l'onglet Profil pour présenter une sélection d'outils d'aide à l'analyse des performances. Vous pouvez utiliser l'un des outils suivants pour profiler votre modèle.

Page de présentation du profil

La page de présentation (overview_page), disponible à partir de la page Profile (Profil), fournit une vue générale des performances de votre modèle lors d'une exécution de capture. Cette page présente une vue d'ensemble agrégée de tous vos TPU et une analyse globale du pipeline d'entrée. Une option permettant de sélectionner des TPU individuels est disponible dans la liste déroulante Hôte.

La page affiche les données dans les panneaux suivants :

Image

  • Performance summary (Résumé des performances)

    • Utilisation de FLOPS : pourcentage d'utilisation des unités matricielles du TPU
  • Dix principales opérations TensorFlow sur TPU Affiche les opérations TensorFlow qui ont pris le plus de temps:

    Chaque ligne affiche le délai d'exécution d'une opération (en pourcentage de temps nécessaire à toutes les opérations), la durée cumulée, la catégorie, le nom et le taux de FLOPS atteint.

  • Run Environment (Environnement d'exécution)

    • Nombre d'hôtes utilisés
    • Type de TPU utilisé
    • Nombre de cœurs de TPU

Analyseur du pipeline d'entrée

L'analyseur du pipeline d'entrée fournit des informations sur vos résultats de performances. L'outil vous indique immédiatement si votre programme est subordonné aux entrées et peut vous guider dans l'analyse de l'appareil et du côté hôte pour déboguer n'importe quelle étape du pipeline qui crée des goulots d'étranglement.

Consultez les conseils en matière de performances du pipeline d'entrée pour obtenir des informations plus détaillées sur leur optimisation.

Pipeline d'entrée

Lorsqu'un programme TensorFlow lit les données d'un fichier, le processus de lecture est divisé en plusieurs étapes de traitement des données connectées en série. La sortie d'une étape est l'entrée de la suivante. Ce système de lecture se nomme pipeline d'entrée.

Pour lire des enregistrements à partir de fichiers, un pipeline type comprend les étapes suivantes :

  1. Lecture des fichiers
  2. Prétraitement des fichiers (facultatif)
  3. Transfert des fichiers de la machine hôte vers l'appareil

Un pipeline d'entrée inefficace peut considérablement ralentir votre application. Une application est considérée comme subordonnée aux entrées lorsqu'elle passe une part importante de son temps dans le pipeline d'entrée. Utilisez l'analyseur du pipeline d'entrée pour comprendre où le pipeline d'entrée est inefficace.

Tableau de bord du pipeline d'entrée

Pour ouvrir l'analyseur du pipeline d'entrée, sélectionnez Profil, puis input_pipeline_analyzer dans la liste déroulante Outils.

Le tableau de bord affiche les détails de l'analyse côté appareil et côté hôte.

Analyse côté appareil : affiche les détails sur la durée des étapes sur l'appareil.

  • Statistiques concernant le temps de fonctionnement des pas sur l'appareil
  • % de temps de processeur sur l'appareil en attente de données d'entrée

Analyse côté hôte

Cette section présente les détails de l'analyse côté hôte répartis en plusieurs catégories:

  • Mise en file d'attente des données à transférer sur l'appareil. Temps passé à placer des données dans une file d'attente d'alimentation avant de les transférer sur l'appareil.
  • Prétraitement des données : temps consacré aux opérations de prétraitement, telles que la décompression d'images.
  • Lire les données des fichiers à l'avance : temps consacré à la lecture des fichiers, y compris la mise en cache, le préchargement et l'entrelacement.
  • Reading data from files on demand (Lecture des données de fichiers à la demande) Temps consacré à la lecture des données de fichiers sans mise en cache, préchargement ni entrelacement.
  • Lecture ou traitement d'autres données : temps consacré à d'autres opérations liées aux entrées qui n'utilisent pas tf.data.

Image

Pour afficher les statistiques des opérations d'entrée individuelles et leurs catégories réparties par temps d'exécution, développez la section Show Input Op statistics.

Une table de données source de ce type s'affiche :

Image

Chaque entrée de la table contient les informations suivantes :

  1. Input Op (Opération d'entrée) indique le nom d'opération TensorFlow de l'opération d'entrée.
  2. Count (Nombre) : affiche le nombre total d'instances de l'opération exécutées au cours de la période de profilage.
  3. Durée totale (en ms) : indique la somme cumulée du temps passé sur chacune des instances d'opération.
  4. Total Time % (Temps total en %) indique le temps total passé sur une opération sous la forme d'une fraction du temps total consacré au traitement des entrées.
  5. Temps propre total (en ms) indique le temps cumulé sur toutes les instances de la fonction. Le temps propre mesure le temps passé dans le corps de la fonction, à l'exclusion du temps passé dans les fonctions qu'elle appelle. Par exemple, Iterator::PaddedBatch::Filter::ForeverRepeat::Map est appelé par Iterator::PaddedBatch::Filter. Par conséquent, son temps propre total est exclu du temps libre total de ce dernier.
  6. Pourcentage total de temps propre indique le temps propre total sous la forme d'une fraction du temps total consacré au traitement des entrées.
  7. Catégorie : affiche la catégorie de traitement de l'opération d'entrée.

Profil d'opération

Le profil d'opération est un outil Cloud TPU qui affiche les statistiques de performances des opérations XLA exécutées au cours d'une période de profilage. Le profil d'opération affiche les éléments suivants:

  • Le degré d'utilisation de la ressource Cloud TPU par l'application, sous la forme d'un pourcentage du temps consacré aux opérations par catégorie et de l'utilisation des FLOPS TPU.
  • Les opérations les plus longues (qui constituent des cibles potentielles d'optimisation).
  • Des détails sur les opérations individuelles, y compris la forme, le remplissage et les expressions utilisant ces opérations.

Vous pouvez utiliser le profil d'opération pour trouver des cibles à optimiser. Par exemple, vous pouvez utiliser le profil d'opération pour identifier les opérations XLA dont l'exécution prend le plus de temps et le nombre de FLOPS TPU qu'elles consomment.

Utiliser un profil d'opération

L'outil de profil d'opération contient des statistiques de performance des opérations XLA. Pour afficher les données du profil d'opération dans TensorBoard, cliquez sur l'onglet Profile (Profil) en haut de l'écran, puis sélectionnez op_profile dans le menu déroulant Tools (Outils). Un écran semblable à celui-ci s'affiche:

Image

  1. La section Présentation présente l'utilisation de Cloud TPU et fournit des suggestions d'optimisation.
  2. Le panneau de configuration contient des commandes qui vous permettent de définir le nombre d'opérations affichées dans le tableau, les opérations à afficher et leur tri.
  3. Table d'opérations qui répertorie les principales catégories d'opérations TensorFlow associées aux opérations XLA. Ces opérations sont triées en fonction du pourcentage d'utilisation de Cloud TPU.
  4. Cartes de détails de l'opération : affiche des détails sur les opérations qui apparaissent lorsque vous pointez sur une opération dans la table. Ces détails incluent l'utilisation des FLOPS, l'expression dans laquelle l'opération est utilisée et la mise en page de l'opération (ajustement).

Table d'opérations XLA

Le tableau des opérations répertorie les catégories d'opérations XLA du pourcentage d'utilisation de Cloud TPU le plus élevé au plus faible. Le tableau indique le pourcentage de temps, le nom de la catégorie d'opération, le nom de l'opération TensorFlow associé et le pourcentage d'utilisation des FLOPS pour la catégorie. Pour afficher (ou masquer) les dix opérations XLA les plus longues d'une catégorie, cliquez sur le triangle à côté du nom de la catégorie dans la table.

Image

  1. Temps indique le pourcentage total de temps passé par toutes les opérations de cette catégorie. Vous pouvez cliquer pour développer l'entrée et voir la répartition du temps passé par opération.
  2. Dix principales opérations : le bouton d'activation situé à côté d'un nom de catégorie affiche/masque les dix opérations les plus longues de la catégorie. Si une entrée d'opération de fusion est affichée dans la liste des opérations, vous pouvez la développer pour afficher les opérations de non-fusion par élément qu'elle contient.
  3. TensorFlow Op (Opération TensorFlow) : affiche le nom de l'opération TensorFlow associé à l'opération XLA.
  4. FLOPS Affiche l'utilisation des FLOPS, qui correspond au nombre mesuré de FLOPS, exprimé en pourcentage du pic de FLOPS Cloud TPU. Plus le pourcentage d'utilisation de FLOPS est élevé, plus les opérations sont rapides. Les cellules de cette colonne incluent un code couleur : vert en cas d'utilisation élevée des FLOPS (bonne) et rouge en cas de faible utilisation des FLOPS (mauvaise).

Cartes de détails de l'opération

Lorsque vous sélectionnez une entrée de table, une carte s'affiche avec des détails sur l'opération XLA ou la catégorie d'opération. Une carte type se présente comme suit :

Image

  • Nom et Catégorie affichent le nom et la catégorie de l'opération XLA en surbrillance.
  • FLOPS Usage (Utilisation des FLOPS) : affiche l'utilisation des FLOPS sous la forme d'un pourcentage du nombre total de FLOPS possible.
  • Expression : affiche l'expression XLA contenant l'opération.
  • Memory Utilization (Utilisation de la mémoire) : affiche le pourcentage d'utilisation maximale de la mémoire par votre programme.
  • Layout (Mise en page) (opérations de convolution uniquement) Affiche la forme et la mise en page d'un Tensor, y compris une description de tout remplissage effectué par le compilateur XLA.

Interpréter les résultats

Pour les opérations de convolution, une faible utilisation des FLOPS TPU peut être due à l'une des raisons suivantes, ou aux deux:

  • Remplissage (les unités matricielles sont partiellement utilisées)
  • l'opération de convolution est liée à la mémoire

Cette section donne une interprétation de certaines métriques de performances d'un modèle avec une faible utilisation de FLOP. Dans cet exemple, la convolution et la fusion de la sortie ont dominé le temps d'exécution. De nombreuses opérations vectorielles ou scalaires présentaient une faible utilisation du FLOP.

Une stratégie d'optimisation pour ce type de profil consiste à transformer les opérations vectorielles ou scalaires en opérations de convolution.

Dans l'exemple suivant, %convolution.399 affiche une utilisation des FLOPS et de la mémoire inférieure à celle de %convolution.340 dans l'exemple précédent.

Image

Dans cet exemple, la taille de lot est complétée jusqu'à 128 et la taille de l'élément géographique est complétée jusqu'à 8. Dans ce cas, seulement 5% des unités matricielles sont utilisées efficacement. L'utilisation est calculée comme suit : (((batch_time * num_of_features) / padding_size ) / num_of_cores. Comparez les FLOPS de cet exemple au %convolution.340 de l'exemple précédent, qui n'utilise pas de marge intérieure.

Lecteur de traces

Le lecteur de traces est un outil d'analyse des performances Cloud TPU disponible sur la page Profil. Comme il utilise le lecteur de profilage d'événements de trace Chrome, il ne fonctionne que dans le navigateur Chrome.

Le lecteur de traces affiche une chronologie indiquant :

  • la durée des opérations exécutées par le modèle TensorFlow ;
  • la partie du système (TPU ou machine hôte) qui a exécuté une opération. En règle générale, la machine hôte exécute des opérations d'alimentation, qui prétraitent les données d'entraînement et les transfèrent au TPU, tandis que ce dernier se charge de l'entraînement réel du modèle.

Le lecteur de traces vous permet d'identifier les problèmes de performances de votre modèle, puis de prendre des mesures pour les résoudre. Par exemple, de manière générale, vous pouvez déterminer si l'alimentation ou l'entraînement du modèle prennent le plus de temps. En affichant le détail, vous pouvez identifier les opérations TensorFlow dont l'exécution est la plus longue.

Le lecteur de traces est limité à un million d'événements par Cloud TPU. Si vous devez évaluer davantage d'événements, utilisez plutôt le lecteur de traces en flux continu.

Interface du lecteur de traces

Pour ouvrir le lecteur de traces, accédez à TensorBoard, cliquez sur l'onglet Profile (Profil) en haut de l'écran, puis sélectionnez trace_viewer dans la liste déroulante Tools (Outils). Le lecteur affiche l'exécution la plus récente :

Image

Cet écran contient les éléments principaux suivants (indiqués par des numéros dans la capture d'écran précédente):

  1. La liste déroulante Exécutions contient toutes les exécutions pour lesquelles vous avez capturé des informations de trace. La vue par défaut est votre exécution la plus récente, mais vous pouvez ouvrir le menu déroulant pour sélectionner une autre exécution.
  2. Le menu déroulant Tools permet de sélectionner différents outils de profilage.
  3. Menu déroulant "Hôte" : permet de sélectionner un hôte contenant un ensemble Cloud TPU.
  4. Le volet de chronologie affiche les opérations que Cloud TPU et la machine hôte ont exécutées au fil du temps.
  5. Volet de détails : affiche des informations supplémentaires sur les opérations sélectionnées dans le volet de chronologie.

Examinez de plus près le volet de chronologie :

Image

Ce volet contient les éléments suivants :

  1. La barre supérieure contient diverses commandes auxiliaires.
  2. Axe de temps : affiche l'heure par rapport au début de la trace.
  3. Libellés de section et de piste : chaque section contient plusieurs pistes. Sur sa gauche, vous pouvez cliquer sur un triangle pour développer et réduire la section. Il y a une section pour chaque élément de traitement du système.
  4. Le sélecteur d'outils contient divers outils permettant d'interagir avec le lecteur de traces.
  5. Events (Événements) indique la durée d'exécution d'une opération ou la durée de méta-événements, tels que des étapes d'entraînement.
  6. Barre d'onglets verticale Cette barre n'a pas d'utilité pour Cloud TPU. Cette barre fait partie de l'outil de lecture de traces à usage général fourni par Chrome, qui est utilisé pour diverses tâches d'analyse des performances.

Sections et pistes

Le lecteur de traces comporte les sections suivantes :

  • Une section pour chaque nœud TPU, étiquetée avec le numéro de la puce TPU et du nœud TPU que celle-ci contient (par exemple, "Chip 2 : TPU Core 1" [Puce 2 : Cœur de TPU 1]). Chaque section de nœud TPU contient les pistes suivantes :
    • Step (Étape) indique la durée des étapes d'entraînement exécutées sur le TPU.
    • TensorFlow Ops (Opérations TensorFlow) : affiche les opérations TensorFlow exécutées sur le TPU.
    • XLA Ops (Opérations XLA) Affiche les opérations XLA exécutées sur le TPU. (Chaque opération est traduite en une ou plusieurs opérations XLA. Le compilateur XLA traduit les opérations XLA en code qui s'exécute sur le TPU.)
  • Une section pour les threads s'exécutant sur le processeur hôte,avec l'étiquette Threads hôtes. La section contient une piste pour chaque thread du processeur. Remarque : Vous pouvez ignorer les informations affichées à côté des étiquettes de section.

Sélecteur d'outils de chronologie

Vous pouvez interagir avec la vue de chronologie à l'aide du sélecteur d'outils de chronologie inclus dans TensorBoard. Vous pouvez cliquer sur un outil de chronologie ou utiliser les raccourcis clavier suivants pour l'activer et le mettre en surbrillance. Pour déplacer le sélecteur d'outils de chronologie, cliquez dans la zone en pointillés en haut, puis faites-le glisser à l'emplacement souhaité.

Utilisez les outils de chronologie comme suit :

Outil de sélection
Cliquez sur un événement pour le sélectionner ou faites-le glisser pour en sélectionner plusieurs. Des informations supplémentaires sur les événements sélectionnés (nom, heure de début et durée) s'affichent dans le volet de détails.

Outil de panorama
Faites glisser pour effectuer un panoramique de la chronologie horizontalement et verticalement.

Outil de zoom
Faites glisser vers le haut pour effectuer un zoom avant ou vers le bas pour effectuer un zoom arrière le long de l'axe horizontal (temps). La position horizontale du curseur de la souris détermine le centre autour duquel le zoom est effectué.

Remarque:Si l'outil de zoom reste actif après avoir relâché le bouton de la souris, cliquez sur la vue chronologique pour le désactiver.

Outil de synchronisation
Faites glisser horizontalement pour marquer un intervalle de temps. Sa longueur apparaît sur l'axe de temps. Pour ajuster l'intervalle, faites glisser ses extrémités. Pour l'effacer, cliquez n'importe où dans la vue de chronologie.

Si vous sélectionnez un autre outil, l'intervalle reste marqué.

Lecteur de mémoire

Le lecteur de mémoire vous permet de visualiser les pics d'utilisation et les tendances d'utilisation de la mémoire pour votre programme.

L'interface utilisateur de la visionneuse de mémoire se présente comme suit:

Image

  1. La liste déroulante Hôte permet de sélectionner un hôte TPU et les modules HLO (High Level Optimize) XLA à visualiser.
  2. Présentation de la mémoire Affiche le pic d'allocation et la taille de la mémoire sans remplissage.
  3. Graphique de l'espace de travail : affiche le pic d'utilisation de la mémoire et un graphique des tendances d'utilisation de la mémoire pour votre programme. Pointez sur un tampon dans l'un des graphiques de tampon pour afficher des informations supplémentaires dans la carte d'allocation de tampon.
  4. Graphiques de tampons : deux graphiques affichant l'allocation de tampons lors des pics d'utilisation de la mémoire. Pointez sur un tampon dans l'un des graphiques de tampons pour afficher des informations supplémentaires dans la fiche d'informations des tampons.
  5. Carte d'informations sur l'allocation de tampon : affiche les détails d'allocation d'un tampon.

Panneau d'informations générales sur la mémoire

Le panneau d'informations générales sur la mémoire (en haut) affiche le nom du module et le pic d'allocation de mémoire défini lorsque la taille totale d'allocation du tampon atteint son maximum. La taille maximale d'allocation sans remplissage est également indiquée à titre de comparaison.

Image

Graphique de l'espace de travail

Ce graphique affiche le pic d'utilisation de la mémoire et un tracé des tendances d'utilisation de la mémoire pour votre programme. La ligne verticale indique le pic d'utilisation de la mémoire pour le programme. Ces graphiques montrent si votre programme peut tenir dans l'espace mémoire global disponible.

Image

Chaque point du graphique représente un "point du programme" dans le programme XLA HLO. Cette ligne vous indique comment l'utilisation de la mémoire de votre programme évolue au fil du temps.

Interaction avec les éléments des graphiques de tampons

Lorsque vous pointez sur un tampon dans un graphique de tampon, une ligne horizontale indiquant la durée de vie du tampon apparaît dans le graphique de l'espace de travail.

Image

L'épaisseur de la ligne horizontale indique l'amplitude relative de la taille de la mémoire tampon par rapport au pic d'allocation de mémoire. La longueur de la ligne indique la durée de vie du tampon.

Graphiques de tampons

Deux graphiques présentent la répartition de l'utilisation de la mémoire lors du pic d'utilisation.

Image

  • By Program Order (Par ordre du programme) Affiche les tampons de gauche à droite, dans l'ordre dans lequel ils ont été actifs lors de l'exécution du programme.

  • By Size (Par taille) : affiche les tampons actifs lors de l'exécution du programme, par ordre de taille décroissante.

Carte de détails d'allocation de tampon

Lorsque vous pointez vers un tampon affiché dans l'un des graphiques de tampon, une carte d'informations sur l'allocation de tampon s'affiche. Une carte de détails type se présente comme suit :

Image

  1. Name (Nom) : nom de l'opération XLA.
  2. Catégorie : catégorie de l'opération.
  3. Taille : taille de l'allocation de tampon (y compris la marge intérieure).
  4. Unpadded size (Taille sans remplissage) : taille de l'allocation de tampon sans remplissage.
  5. Expansion : amplitude relative de la taille de la mémoire tampon avec remplissage par rapport à la taille sans remplissage.
  6. Mémoire supplémentaire : indique la quantité de mémoire supplémentaire utilisée pour le remplissage.
  7. Forme : décrit le rang, la taille et le type de données du tableau à N dimensions.
  8. TensorFlow op name (Nom de l'opération TensorFlow) : indique le nom de l'opération TensorFlow associée à l'allocation de tampon.
  9. Allocation type (Type d'allocation) : indique la catégorie d'allocation de tampon : paramètre, sortie, thread local et temporaire (par exemple, allocation de tampon dans une fusion).

Mémoire insuffisante

Si vous exécutez un modèle et que vous obtenez une erreur "mémoire insuffisante", suivez les instructions de ce document pour capturer un profil. Attendez que le script entraîne le modèle avant de démarrer le profileur. Le résultat du profilage peut vous aider à comprendre la cause de l'erreur.