Perfila tu modelo en VMs de Cloud TPU

El perfilado te permite optimizar el rendimiento de entrenamiento de tu modelo en Cloud TPU. Usas TensorBoard y el complemento de TensorBoard de Cloud TPU para generar perfiles de tu modelo.

Para obtener más información sobre el uso de TensorBoard con uno de los frameworks compatibles, consulta los siguientes documentos:

Requisitos previos para generar perfiles de una secuencia de comandos de entrenamiento

Antes de usar las herramientas de perfilado de TPU, debes hacer lo siguiente:

  1. Cómo iniciar una sesión de entrenamiento de modelos

    1. Configura una TPU v4-8 para entrenar un modelo. El procedimiento de generación de perfiles que se describe en este documento usa un modelo ResNet, pero puedes usar otro modelo, siempre y cuando se entrene en una TPU v4.
    2. En la VM de TPU, agrega una línea para iniciar el servidor del generador de perfiles a la secuencia de comandos de entrenamiento.

      Para el entrenamiento de ResNET, la secuencia de comandos de entrenamiento se encuentra en la siguiente ubicación: /usr/share/tpu/tensorflow/resnet50_keras/resnet50.py.

      Inserta las líneas destacadas en resnet50.py. En la parte superior del archivo, agrega la siguiente importación:

      import tensorflow.compat.v2 as tf2
      

      Justo antes de que las secuencias de comandos inicien el bucle de entrenamiento, agrega la línea destacada:

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

      El servidor del generador de perfiles de TensorFlow se inicia en tu VM de TPU cuando ejecutas la secuencia de comandos.

    3. Inicia el entrenamiento de modelos.

      Ejecuta la secuencia de comandos de entrenamiento y espera hasta que veas un resultado que indique que tu modelo se está entrenando de forma activa. El resultado depende de tu código y modelo. Busca un resultado como Epoch 1/100. Como alternativa, puedes navegar a la página de Cloud TPU en la consola de Google Cloud, seleccionar tu TPU y ver el gráfico de utilización de la CPU. Si bien el gráfico de uso de la CPU no muestra el uso de la TPU, es una buena indicación de que la TPU está entrenando tu modelo.

Cómo comenzar a generar perfiles del entrenamiento de modelos

Cuando el modelo se esté entrenando, abre una ventana de la terminal o Cloud Shell independiente. Sigue los pasos que se indican a continuación para comenzar a generar perfiles del entrenamiento de modelos.

  1. En la ventana o shell nueva, conéctate a tu VM de TPU con la redirección de puertos.

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

    La redirección de puertos permite que tu navegador local se comunique con el servidor de TensorBoard que se ejecuta en tu VM de TPU.

  2. Instala los requisitos de TensorFlow.

    Tu VM de TPU tiene TensorBoard instalado de forma predeterminada. También puedes instalar TensorFlow de forma manual. De cualquier manera, es posible que se requieran algunas dependencias adicionales. Instala estas dependencias en tu VM de TPU mediante la ejecución del siguiente comando:

    pip3 install -r /usr/share/tpu/models/official/requirements.txt
  3. Instala el complemento de TensorBoard de Cloud TPU.

    Desde la VM de TPU, ejecuta los siguientes comandos:

     pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"
     pip3 install tensorflow
     pip3 install tensorboard_plugin_profile
  4. Inicia el servidor de TensorBoard

    Ejecuta TensorBoard y crea un directorio de registro (logdir) en la VM de TPU en la que TensorBoard pueda escribir datos de perfilado. Especifica el directorio de registro con la marca --logdir. Por ejemplo:

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

TensorBoard inicia un servidor web y muestra su 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)

Abre un navegador web y ve a la URL que se muestra en el resultado de TensorBoard. Selecciona Perfil (Profile) en el menú desplegable de la parte superior derecha de la página de TensorBoard. La lista de herramientas de generación de perfiles disponibles se muestra en el menú desplegable tools de la barra lateral izquierda.

imagen

Captura un perfil en VMs de TPU

  1. Selecciona el botón CAPTURE PROFILE.
  2. Selecciona el botón de selección Dirección IP.
  3. Escribe HOSTNAME:6000 en el campo Profile Service URL.
  4. Selecciona el botón CAPTURAR.

imagen

Cómo ver datos de perfil con TensorBoard

Después de capturar un perfil, TensorBoard muestra la página overview_page. La lista de herramientas de generación de perfiles que puedes usar se muestra en el panel izquierdo.

imagen

Perfil

La pestaña Perfil se muestra después de que hayas capturado algunos datos del modelo. Es posible que debas hacer clic en el botón de actualización en la página de TensorBoard. Una vez que los datos están disponibles, si haces clic en la pestaña Perfil, se mostrará una selección de herramientas que te ayudarán a analizar el rendimiento. Puedes usar cualquiera de las siguientes herramientas para generar perfiles de tu modelo.

Página de descripción general del perfil

La página de descripción general (overview_page), disponible en la página Perfil, proporciona una vista de nivel superior del rendimiento de tu modelo durante una ejecución de captura. Allí se muestra una descripción general agregada de todas tus TPU y un análisis general de la canalización de entrada. Existe una opción que permite seleccionar TPU individuales en el menú desplegable Host.

En la página, se muestran los datos en los siguientes paneles:

image

  • Resumen de rendimiento (Performance summary)

    • Uso de FLOPS: el porcentaje de uso de las unidades de la matriz de TPU
  • Top ten TensorFlow operations on TPU (Las diez operaciones principales de TensorFlow en TPU). Muestra las operaciones de TensorFlow que consumieron más tiempo:

    Cada fila muestra el tiempo propio de una operación (el porcentaje de tiempo que se tardó en completar todas las operaciones), el tiempo acumulativo, la categoría, el nombre y la frecuencia de FLOPS que se alcanzó.

  • Entorno de ejecución (Run environment)

    • Es la cantidad de hosts utilizados.
    • El tipo de TPU utilizado
    • La cantidad de núcleos de TPU

Analizador de canalización de entrada

El analizador de la canalización de entrada proporciona información detallada acerca de tus resultados de rendimiento. La herramienta te avisa de forma inmediata si tu programa se encuentra vinculado a la entrada y puede ayudarte a entender el análisis del lado del dispositivo y del lado del host para depurar las etapas de la canalización que crean los cuellos de botella.

Consulta la guía sobre el rendimiento de la canalización de entrada para obtener más información acerca de la optimización del rendimiento de la canalización.

Canalización de entrada

Cuando un programa de TensorFlow lee datos de un archivo, el proceso de lectura se divide en varias etapas de procesamiento de datos conectadas en serie. El resultado de una etapa es la entrada de la siguiente. Este sistema de lectura se denomina canalización de entrada.

Una canalización típica para leer registros de archivos tiene las siguientes etapas:

  1. Lectura de archivos
  2. Procesamiento previo de archivos (opcional)
  3. Transferencia de archivos desde la máquina host hasta el dispositivo

Una canalización de entrada ineficiente puede ralentizar tu aplicación considerablemente. Una aplicación se considera vinculada a la entrada cuando ocupa una parte significativa del tiempo en la canalización de entrada. Usa el Analizador de canalización de entrada para comprender en qué puntos esta es ineficiente.

Panel de canalización de entrada

Para abrir el analizador de la canalización de entrada, selecciona Perfil y, luego, input_pipeline_analyzer del menú desplegable Herramientas.

El panel muestra los detalles del análisis del lado del dispositivo y del host.

Análisis del lado del dispositivo: Muestra detalles sobre los tiempos de paso del dispositivo.

  • Estadísticas de tiempo de paso del dispositivo
  • % del tiempo de paso del dispositivo que espera datos de entrada

Análisis del lado del host

En esta sección, se muestran los detalles del análisis del host, dividido en varias categorías:

  • Ubicación de datos en cola para transferirlos al dispositivo (Enqueuing data to be transferred to device). El tiempo dedicado a ubicar datos en una cola de entrada antes de transferirlos al dispositivo.
  • Procesamiento previo de datos: Es el tiempo dedicado a realizar operaciones de procesamiento previo, como la descompresión de imágenes.
  • Reading data from files in advance (Lectura de datos a partir de archivos con anticipación): Es el tiempo dedicado a leer archivos, incluidos el almacenamiento en caché, la recuperación previa y la intercalación.
  • Reading data from files on demand (Lectura de datos a partir de archivos según demanda): Es el tiempo dedicado a leer datos de archivos sin contar el almacenamiento en caché, la recuperación previa ni la intercalación.
  • Otros datos de lectura o procesamiento Tiempo dedicado a otras operaciones relacionadas con entradas que no usan tf.data.

imagen

Para ver las estadísticas de las operaciones de entrada individuales y sus categorías desglosadas por tiempo de ejecución, expande la sección Show Input Op statistics.

Aparecerá una tabla de datos de origen como la que se muestra a continuación:

image

Cada entrada de la tabla contiene la siguiente información:

  1. Input Op (Operación de entrada). Muestra el nombre de la operación de TensorFlow de la operación de entrada.
  2. Cantidad: Muestra la cantidad total de instancias de la operación que se ejecutaron durante el período de perfilado.
  3. Tiempo total (en ms) (Total Time (in ms)): Muestra la suma acumulativa del tiempo empleado en cada una de las instancias de operaciones.
  4. Porcentaje de tiempo total (Total Time %). Aquí se muestra el tiempo total que se empleó en una operación como una fracción del tiempo total que se empleó en el procesamiento de entrada.
  5. Total Self-time (in ms) (Tiempo propio total (en ms)): Muestra el tiempo acumulado en todas las instancias de la función. El tiempo propio mide el tiempo empleado dentro del cuerpo de la función, sin contar el tiempo dedicado a las funciones a las que llama. Por ejemplo, Iterator::PaddedBatch::Filter llama a Iterator::PaddedBatch::Filter::ForeverRepeat::Map, por lo que su tiempo propio total se excluye del tiempo propio total de este último.
  6. Porcentaje de tiempo propio total (Total self-time %). Muestra el tiempo propio total como una fracción del tiempo total que se dedicó al procesamiento de entradas.
  7. Categoría: Muestra la categoría de procesamiento de la operación de entrada.

Perfil de operaciones

El perfil de operaciones es una herramienta de Cloud TPU que muestra las estadísticas de rendimiento de las operaciones de XLA que se ejecutaron durante un período de perfilado. El perfil de la operación muestra lo siguiente:

  • Qué tan bien tu aplicación usa Cloud TPU, lo que se expresa como el porcentaje de tiempo empleado en las operaciones por categoría y la utilización de los FLOPS de TPU.
  • Las operaciones que más tiempo consumieron. Estas operaciones son objetivos de optimización potenciales.
  • Detalles de las operaciones individuales, incluidas la forma, el relleno y las expresiones que usan la operación.

Puedes usar el perfil de operaciones para encontrar objetivos de optimización. Por ejemplo, puedes usar el perfil de operaciones para identificar las operaciones de XLA que tardan más tiempo en ejecutarse y cuántos FLOPS de TPU consumen.

Usa el perfil de operaciones

La herramienta Op Profile contiene estadísticas de rendimiento de las operaciones de XLA. Para ver los datos del perfil de operaciones en TensorBoard, haz clic en la pestaña Profile en la parte superior de la pantalla y, luego, selecciona op_profile en el menú desplegable Tools. Verás una pantalla como la que se muestra a continuación:

imagen

  1. Sección Descripción general: Muestra la utilización de Cloud TPU y proporciona sugerencias para la optimización.
  2. Panel de control: Contiene controles que te permiten establecer la cantidad de operaciones que se muestran en la tabla, qué operaciones se muestran y cómo se ordenan.
  3. Tabla de operaciones: Muestra las categorías principales de operaciones de TensorFlow asociadas a las operaciones de XLA. Estas operaciones se ordenan por porcentaje de uso de Cloud TPU.
  4. Tarjetas de detalles de la operación Muestran detalles sobre las operaciones que aparecen cuando señalas una operación en la tabla. Estos detalles incluyen el uso de FLOPS, la expresión en la que se usa la operación y el diseño de la operación (ajuste).

Tabla de operaciones de XLA

En la tabla de operaciones, se muestran las categorías de operaciones de XLA ordenadas del porcentaje de uso de Cloud TPU más alto al más bajo. La tabla muestra el porcentaje de tiempo empleado, el nombre de la categoría de la operación, el nombre de la operación de TensorFlow asociada y el porcentaje de uso de FLOPS de la categoría. Para mostrar (o también ocultar) las diez operaciones de XLA que más tiempo consumieron en una categoría, haz clic en el triángulo ubicado junto al nombre de la categoría en la tabla.

imagen

  1. Tiempo: Muestra el porcentaje total de tiempo empleado por todas las operaciones de la categoría. Puedes hacer clic para expandir la entrada y ver un desglose del tiempo empleado por cada operación individual.
  2. Top ten Ops: Es el botón de activación junto al nombre de una categoría que muestra o oculta las diez operaciones que más tiempo consumieron en la categoría. Si se muestra una entrada de operación de fusión en la lista de operaciones, puedes expandirla con el fin de ver las operaciones que no son de fusión, sino relativas a los elementos.
  3. Operación de TensorFlow (TensorFlow Op). Muestra el nombre de la operación de TensorFlow asociada a la operación de XLA.
  4. FLOPS Muestra el uso de FLOPS, es decir, la cantidad de FLOPS medida expresada como un porcentaje de los FLOPS máximos de Cloud TPU. Cuanto más alto sea el porcentaje de uso de FLOPS, más rápido se ejecutarán las operaciones. La celda de la tabla responde a un código de colores: el verde significa uso alto de FLOPS (deseado) y el rojo significa uso bajo de FLOPS (no deseado).

Tarjetas de detalles de la operación

Cuando seleccionas una entrada de la tabla, aparece una tarjeta que muestra detalles sobre la operación de XLA o la categoría de operación. Una tarjeta típica luce como se muestra a continuación:

imagen

  • Nombre y Categoría: Muestra el nombre y la categoría de la operación de XLA destacada.
  • Uso de FLOPS: Muestra el uso de FLOPS como un porcentaje del total de FLOPS posible.
  • Expresión: Muestra la expresión de XLA que contiene la operación.
  • Uso de memoria: Muestra el porcentaje de uso máximo de memoria de tu programa.
  • Diseño (solo para operaciones de convolución). Muestra la forma y el diseño de un tensor, incluida una descripción de cualquier relleno que realice el compilador XLA.

Interpreta los resultados

En el caso de las operaciones convolucionales, la baja utilización de FLOPS de TPU puede deberse a uno de los siguientes motivos, o ambos:

  • relleno (uso parcial de las unidades de la matriz)
  • la operación de convolución depende de la memoria

En esta sección, se interpretan algunas métricas de rendimiento de un modelo con un uso bajo de FLOPS. En este ejemplo, la fusión de salida y la convolución dominaron el tiempo de ejecución. Hubo muchas operaciones vectoriales o escalares que tuvieron una baja utilización de FLOPS.

Una estrategia de optimización para este tipo de perfil podría ser transformar las operaciones de vector o escalares en operaciones convolucionales.

En el siguiente ejemplo, %convolution.399 muestra menos FLOPS y uso de memoria que %convolution.340 en el ejemplo anterior.

imagen

En este ejemplo, el tamaño del lote se ajusta a 128 y el tamaño del atributo se ajusta a 8. En este caso, solo se usa de manera efectiva el 5% de las unidades de la matriz. La utilización se calcula mediante (((batch_time * num_of_features) / padding_size ) / num_of_cores). Compara los FLOPS de este ejemplo con %convolution.340 del ejemplo anterior, que no usa padding.

Lector de seguimiento

El lector de seguimiento es una herramienta de análisis del rendimiento de Cloud TPU disponible en la página Perfil. La herramienta usa el visualizador de perfilado de eventos de seguimiento de Chrome, por lo que solo funciona en el navegador Chrome.

El lector de seguimiento muestra un cronograma que presenta la siguiente información:

  • Duración de las operaciones que ejecutó tu modelo de TensorFlow.
  • La parte del sistema (máquina host o TPU) que ejecutó una operación. Por lo general, la máquina anfitrión ejecuta operaciones de entrada, mientras realiza el procesamiento previo de los datos de entrenamiento y los transfiere a la TPU, a la vez que la TPU ejecuta el entrenamiento de modelos real.

El lector de seguimiento te permite identificar problemas de rendimiento en tu modelo y tomar medidas para resolverlos. Por ejemplo, en un nivel alto, puedes identificar si es la entrada o el entrenamiento de modelos lo que ocupa la mayor parte del tiempo. Si desglosas los datos, puedes identificar las operaciones de TensorFlow que más tardan en ejecutarse.

El lector de seguimiento tiene un límite de 1 millón de eventos por cada Cloud TPU. Si necesitas evaluar más eventos, usa el lector de seguimiento de transmisión en su lugar.

Interfaz del lector de seguimiento

Para abrir el lector de seguimiento, ve a TensorBoard, haz clic en la pestaña Profile en la parte superior de la pantalla y elige trace_viewer en el menú desplegable Tools. Aparece el lector y muestra tu ejecución más reciente:

imagen

La pantalla contiene los siguientes elementos principales (señalados con números en la captura de pantalla anterior):

  1. Menú desplegable Runs: Contiene todas las ejecuciones para las que capturaste información de seguimiento. La vista predeterminada es tu carrera más reciente, pero puedes abrir el menú desplegable para seleccionar otra carrera.
  2. Menú desplegable Tools: Selecciona diferentes herramientas de perfilado.
  3. Menú desplegable de host: Selecciona un host que contenga un conjunto de Cloud TPU.
  4. Panel de cronograma: Muestra las operaciones que Cloud TPU y la máquina anfitrión ejecutaron a lo largo del tiempo.
  5. Panel de detalles: Muestra información adicional sobre las operaciones seleccionadas en el panel de cronograma.

Aquí puedes ver el panel de cronograma con más detalle:

image

El panel de cronograma contiene los siguientes elementos:

  1. Barra superior: Contiene varios controles auxiliares.
  2. Eje de tiempo: Muestra el tiempo en relación con el principio del seguimiento.
  3. Etiquetas de secciones y segmentos Cada sección contiene varios segmentos y tiene un triángulo a la izquierda en el que puedes hacer clic para expandir y contraer la sección. Hay una sección para cada elemento de procesamiento del sistema.
  4. Selector de herramientas: Contiene varias herramientas para interactuar con el lector de seguimiento.
  5. Eventos: Muestra el tiempo durante el cual se ejecutó una operación o la duración de los metaeventos, como los pasos de entrenamiento.
  6. Barra de pestaña vertical: Esta barra no es útil en Cloud TPU. La barra forma parte de la herramienta de lector de seguimiento de Chrome que se usa para una variedad de tareas de análisis del rendimiento.

Secciones y pistas

El lector de seguimiento contiene las siguientes secciones:

  • Una sección para cada nodo de TPU, etiquetada con el número de chip TPU y del núcleo de TPU dentro del chip (por ejemplo, "Chip 2: TPU Core 1"). Cada sección de nodo TPU contiene los siguientes puntos:
    • Paso: Muestra la duración de los pasos de entrenamiento que se estaban ejecutando en la TPU.
    • Operaciones de TensorFlow: Muestra las operaciones de TensorFlow que se ejecutaron en la TPU.
    • Operaciones de XLA: Muestra las operaciones de XLA que se ejecutaron en la TPU. (Cada operación se traduce en una o varias operaciones de XLA. El compilador de XLA traduce las operaciones de XLA en un código que se ejecuta en la TPU).
  • Una sección para los subprocesos que se ejecutan en la CPU del host,etiquetada como "Subprocesos del host". La sección contiene una pista por cada subproceso de CPU. Nota: Puedes ignorar la información que se muestra junto con las etiquetas de las secciones.

Selector de herramientas de cronograma

Puedes interactuar con la vista de cronograma mediante el selector de herramientas de cronograma en TensorBoard. Haz clic en una herramienta de cronograma para activarla y destacarla. A fin de mover el selector de herramientas de cronograma, haz clic en el área con puntos ubicada en la parte superior y, luego, arrastra el selector hacia donde quieras ubicarlo.

Usa las herramientas de cronograma como se indica a continuación:

Herramienta de selección
Haz clic en un evento para seleccionarlo o arrástralo para seleccionar varios eventos. Se mostrará información adicional acerca de los eventos seleccionados (nombre, hora de inicio y duración) en el panel de detalles.

Herramienta de desplazamiento lateral
Arrastra para desplazar la vista del cronograma de forma horizontal y vertical.

Herramienta de zoom
Arrastra hacia arriba para acercar o arrastra hacia abajo si quieres alejar a lo largo del eje horizontal (tiempo). La posición horizontal del cursor del mouse determina el centro alrededor del cual se aplica el zoom.

Nota: Si la herramienta de zoom permanece activa después de soltar el botón del mouse, haz clic en la vista de cronograma para desactivarla.

Herramienta de sincronización
Arrastra de forma horizontal para marcar un intervalo de tiempo. La duración del intervalo aparece en el eje de tiempo. Para ajustar el intervalo, arrastra sus extremos. A fin de borrar el intervalo, haz clic en cualquier punto dentro de la vista de cronograma.

Si seleccionas otra herramienta, el intervalo permanecerá marcado.

Lector de memoria

El visor de memoria te permite visualizar el pico de uso de memoria y las tendencias de uso de memoria de tu programa.

La interfaz de usuario del visor de memoria se ve de la siguiente manera:

imagen

  1. Menú desplegable Host: Selecciona un host de TPU y los módulos del optimizador de alto nivel (HLO) de XLA que se visualizarán.
  2. Descripción general de la memoria: Muestra la asignación de memoria máxima y el tamaño sin relleno.
  3. Gráfico de espacio de trabajo: Muestra el pico de uso de memoria y el trazado de las tendencias de uso de memoria de tu programa. Coloca el cursor sobre un búfer en uno de los gráficos de búferes para mostrar información adicional en la tarjeta de asignación de búfer.
  4. Gráficos de búferes: Son dos gráficos que muestran la asignación de búferes en el momento de uso de memoria máximo. Coloca el cursor sobre un búfer en uno de los gráficos de búferes para mostrar información adicional en la tarjeta de detalles del búfer.
  5. Tarjeta de detalles de asignación de búfer: Muestra los detalles de asignación de un búfer.

Panel de descripción general del uso de la memoria

El panel de descripción del uso de la memoria (panel superior) muestra el nombre del módulo y la asignación de memoria máxima establecida cuando el tamaño total de la asignación de búfer alcanza el máximo. También se muestra el tamaño de la asignación máxima sin rellenar a los efectos de la comparación.

image

Gráfico del espacio de trabajo

Este gráfico muestra el pico de uso de memoria y el trazado de las tendencias de uso de memoria de tu programa. La línea vertical indica el pico de uso de memoria del programa. Estos gráficos muestran si tu programa puede caber en el espacio de memoria global disponible.

imagen

Cada punto del gráfico representa un "punto del programa" en el programa de HLO de XLA. La línea muestra cómo cambia el uso de memoria de tu programa con el tiempo.

Interacción con los elementos del gráfico de búferes

Cuando señalas un búfer en los gráficos de búferes, aparece una línea horizontal que muestra el ciclo de vida del búfer en el gráfico de espacio de trabajo.

imagen

El grosor de la línea horizontal indica el tamaño del búfer en relación con el pico de asignación de memoria. La longitud de la línea indica la vida útil del búfer.

Gráficos de búferes

Existen dos gráficos que muestran el desglose del uso de memoria en el punto de uso máximo.

imagen

  • Por orden del programa: Muestra los búferes de izquierda a derecha en el orden en que estuvieron activos durante la ejecución del programa.

  • Por tamaño: Muestra los búferes que estuvieron activos durante la ejecución del programa en orden de tamaño decreciente.

Tarjeta de detalles de asignación de búfer

Cuando señalas un búfer que se muestra en uno de los gráficos de búferes, aparece una tarjeta de detalles de asignación de búfer. Una tarjeta de detalles típica luce como se muestra a continuación:

imagen

  1. Nombre: Es el nombre de la operación de XLA.
  2. Categoría: Es la categoría de la operación.
  3. Tamaño: Es el tamaño de la asignación del búfer (incluido el relleno).
  4. Tamaño sin relleno: Es el tamaño de la asignación del búfer sin relleno.
  5. Expansión: Es la magnitud relativa del tamaño del búfer relleno en comparación con el tamaño sin rellenar.
  6. Memoria adicional: Indica cuánta memoria adicional se usa para rellenar.
  7. Forma: Describe el rango, tamaño y tipo de datos del array n-dimensional.
  8. Nombre de la operación de TensorFlow: Muestra el nombre de la operación de TensorFlow asociada con la asignación del búfer.
  9. Tipo de asignación: Indica la categoría de asignación del búfer: Parámetro, Salida, Local del subproceso y Temporal (por ejemplo, la asignación de un búfer dentro de una fusión).

Errores por falta de memoria

Si ejecutas un modelo y obtienes un error de "falta de memoria", usa los lineamientos de este documento para capturar un perfil. Espera a que la secuencia de comandos entrene el modelo antes de iniciar el generador de perfiles. El resultado de la generación de perfiles puede ayudarte a comprender qué causó el error.