Cómo generar perfiles de tu modelo en VMs de Cloud TPU

La creación de perfiles te permite optimizar el rendimiento del entrenamiento de tu modelo en Cloud TPU. Debes usar TensorBoard y la Complemento de Cloud TPU TensorBoard para generar perfiles de tu modelo.

Para obtener más información sobre cómo usar 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 generación de perfiles de TPU, debes hacer lo siguiente:

  1. Inicia una sesión de entrenamiento de modelos

    1. Configura una TPU v4-8 para entrenar un modelo. Procedimiento de generación de perfiles descrito en este documento usa un modelo ResNet, pero puedes usar otro modelo, siempre que lo entrene en una TPU v4.
    2. Agrega una línea en la VM de TPU 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 resaltadas 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 el 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 la VM de TPU cuando ejecutar la secuencia de comandos.

    3. Comienza el entrenamiento de modelos.

      Ejecuta la secuencia de comandos de entrenamiento y espera hasta que veas un resultado que indique se está entrenando tu modelo de forma activa. El resultado depende en 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, selecciona TPU y verás el gráfico de uso de CPU. Mientras que El gráfico de uso de CPU no muestra el uso de TPU, es un buena indicación de que la TPU está entrenando el modelo.

Comienza a generar perfiles del entrenamiento de modelos

Cuando se esté entrenando el modelo, abre otra ventana de la terminal o Cloud Shell. Sigue estos pasos para comenzar a generar perfiles del entrenamiento de modelos.

  1. En la ventana o shell nueva, conéctate a la VM de TPU con 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 el navegador local se comunique con TensorBoard de Compute Engine que se ejecuta en la VM de TPU.

  2. Instala los requisitos de TensorFlow {: id="install-tensorboard"}.

    La VM de TPU tiene TensorBoard instalado de forma predeterminada. Tú también puedes instalar TensorFlow de forma manual. De cualquier manera, es posible que se requieran algunas dependencias adicionales. Instalar 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 {: id="install-plugin"}.

    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 registros (logdir) en la VM de TPU, en la que TensorBoard puede escribir datos de creación de perfiles. Especifica el 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 la 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. Seleccionar Perfil 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 de herramientas. en la barra lateral izquierda.

imagen

Captura un perfil en las VMs de TPU

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

imagen

Ver datos de perfil con TensorBoard

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

imagen

Perfil

La pestaña Perfil se muestra después de que hayas capturado algunos datos del modelo. Tú es posible que debas hacer clic en el botón Actualizar de la Página de TensorBoard. Una vez que los datos estén disponibles, haga clic en la pestaña Perfil. presenta una selección de herramientas para ayudar con el análisis del rendimiento. Puedes usa cualquiera de las siguientes herramientas para generar perfiles de tu modelo.

Página de descripción general del perfil

La página de resumen (overview_page), disponible en la página Perfil, proporciona la siguiente información: vista de nivel superior del rendimiento de tu modelo durante una ejecución de captura. La página te muestra una descripción general agregada de todas tus TPU y un el análisis de canalización de entrada. Hay una opción para 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
  • Las diez operaciones principales de TensorFlow en TPU muestran la Estas son las operaciones de TensorFlow que consumieron más tiempo:

    Cada fila muestra el tiempo propio de una operación (como el porcentaje de tiempo necesario por todas las operaciones), tiempo acumulativo, categoría, nombre y tasa de FLOPS lograrse.

  • Entorno de ejecución (Run environment)

    • La cantidad de hosts usados
    • El tipo de TPU que se usa
    • 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 indica inmediatamente si tu programa está vinculado a la entrada y puede a través del análisis del dispositivo y del host para depurar cualquier etapa del y tu canalización crea 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 y varias etapas de procesamiento de datos conectadas en serie. El resultado de uno es la entrada a 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 los que la canalización de entrada 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.

En el panel, se muestran detalles del análisis del dispositivo y del host.

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

  • Estadísticas de paso de tiempo del dispositivo
  • Porcentaje 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 lado del host divididos 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: El tiempo dedicado a las operaciones de procesamiento previo, como las imágenes descompresión.
  • Leer datos de archivos por adelantado: El tiempo dedicado a leer archivos, lo que incluye: el almacenamiento en caché, la carga previa y la intercalación.
  • Reading data from files on demand (Lectura de datos a partir de archivos según demanda): El tiempo dedicado a la lectura. de archivos sin almacenamiento en caché, intercalación ni carga previa.
  • Otras operaciones de lectura o procesamiento de datos El tiempo dedicado a otras operaciones relacionadas con entradas no están usando tf.data.

imagen

Para ver las estadísticas de las operaciones de entrada individuales y sus categorías desglosado 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 entrada en TensorFlow.
  2. Recuento Muestra la cantidad total de instancias de la operación ejecutada durante el período de generación de perfiles.
  3. Tiempo total (en ms): Muestra la suma acumulativa de tiempo dedicado a cada uno de las instancias de la operación.
  4. Porcentaje de tiempo total Muestra el tiempo total dedicado a una operación como una fracción de el tiempo total dedicado al procesamiento de entrada.
  5. Tiempo propio total (en ms): Muestra el tiempo acumulado sobre todas las instancias de la función. El tiempo propio mide el tiempo dedicado dentro del cuerpo de la función, sin incluir el tiempo dedicado a las funciones que llama. Por ejemplo, Iterator::PaddedBatch::Filter::ForeverRepeat::Map es que llama Iterator::PaddedBatch::Filter, por lo tanto, el total el tiempo propio se excluye del tiempo propio total de estos últimos.
  6. Porcentaje de tiempo propio total Muestra el tiempo propio total como una fracción del total. de tiempo dedicado al procesamiento de entrada.
  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 estadísticas de las operaciones de XLA ejecutado durante un período de generación de perfiles. El perfil de 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 usa el perfil de operación para identificar qué operaciones de XLA tardan más tiempo en y cuántos FLOPS de TPU consumen.

Usa el perfil de operaciones

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

imagen

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

Tabla de operaciones de XLA

La tabla de operaciones muestra las categorías de operaciones de XLA ordenadas de mayor a menor el porcentaje de uso de Cloud TPU. En la tabla, se muestran los el porcentaje de tiempo necesario, el nombre de la categoría de la operación, el op de TensorFlow asociada y el porcentaje de uso de FLOPS para la categoría. Para mostrar (o para ocultar) las diez operaciones de XLA que más tiempo consumen en una categoría, haz clic en el junto al nombre de la categoría en la tabla.

imagen

  1. Tiempo Muestra el porcentaje total de tiempo que dedicaron todos los las operaciones en esa categoría. Puedes hacer clic para expandir la entrada y ver un desglose del tiempo empleado por cada operación individual.
  2. Top diez operaciones El botón de activación junto al nombre de una categoría que se muestra u oculta los mejores a diez operaciones lentas dentro de la categoría. Si una operación de fusión se muestra una entrada de la lista de operaciones, puedes expandirla para ver operaciones inteligentes de no fusión que contiene.
  3. TensorFlow Op muestra el nombre de la operación de TensorFlow asociada con la operación de XLA.
  4. FLOPS muestra el uso de FLOPS, que es la cantidad medida de FLOPS expresado 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 tabla, aparece una tarjeta que muestra Son los detalles sobre la operación de XLA o su categoría. 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.
  • FLOPS usage Muestra el uso de FLOPS como un porcentaje del total. FLOPS posible.
  • Expresión: Muestra el XLA. expresión que contiene la operación.
  • Uso de memoria: Muestra el porcentaje de uso máximo de memoria por parte de tu .
  • Layout (Solo para operaciones convolucionales) Muestra la forma y el diseño de un tensor, incluidas las siguientes opciones: una descripción de cualquier relleno realizado por el compilador de XLA.

Interpreta los resultados

En las operaciones convolucionales, el bajo uso de FLOPS de TPU puede deberse a uno o por los siguientes motivos:

  • 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 baja utilización de FLOP. En este ejemplo, fusión de salida y convolución predominó en el tiempo de ejecución. Hubo muchas operaciones vectoriales o escalares que tenían un bajo uso de FLOP.

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 rellena a 128 y el tamaño del atributo se rellenará a 8. En este caso, solo el 5% de la matriz de unidades de almacenamiento se usan de manera eficaz. El uso se calcula de la siguiente manera: (((batch_time * num_of_features) / padding_size ) / num_of_cores). Compara los FLOPS de este ejemplo con %convolution.340 del ejemplo anterior ejemplo, que no usa relleno.

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 TensorFlow model.
  • 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, que procesan datos de entrenamiento y los transfiere a la TPU, mientras que la TPU ejecuta el entrenamiento de modelos real.

El lector de seguimiento te permite identificar problemas de rendimiento en tu modelo. tomar medidas para resolverlos. Por ejemplo, a un alto nivel, puedes identificar ya sea que la entrada o el entrenamiento de modeloso lleve la mayor parte del tiempo. Extracción puedes identificar qué operaciones de TensorFlow están quitando de mayor duración.

El lector de seguimiento tiene un límite de 1 millón de eventos para cada Cloud TPU. Si 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 Perfil en de la parte superior de la pantalla y elige trace_viewer en el menú desplegable Herramientas. Aparece el lector y muestra tu ejecución más reciente:

imagen

Esta pantalla contiene los siguientes elementos principales (marcados con números en el captura de pantalla anterior):

  1. Menú desplegable Ejecuciones Contiene todas las ejecuciones para las cuales información de seguimiento capturada. La vista predeterminada es tu vista más reciente pero puedes abrir el menú desplegable para seleccionar otra.
  2. Menú desplegable Tools Selecciona diferentes herramientas de generación de perfiles.
  3. Desplegable de host: Selecciona un host que contenga una Cloud TPU. automático.
  4. Panel de cronograma: Muestra las operaciones que Cloud TPU y ejecutada con el tiempo.
  5. Panel de detalles: Muestra información adicional sobre las operaciones. seleccionados 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 comienzo del seguimiento.
  3. Etiquetas de pista y de sección Cada sección contiene varias pistas y tiene un triángulo a la izquierda en el que puedes hacer clic para expandir y contraer 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 la hora durante la cual se ejecutó una operación o la duración de los metaeventos, como los pasos de entrenamiento.
  6. Barra de pestañas vertical Esta barra no tiene un propósito útil para Cloud TPU. La barra forma parte de la herramienta de visualización de seguimiento de uso general que proporciona Chrome que se usa para diversas tareas de análisis de rendimiento.

Secciones y pistas

El lector de seguimiento contiene las siguientes secciones:

  • Una sección para cada nodo TPU, etiquetada con el número del chip TPU y el 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 completaron que se ejecuta en la TPU.
    • TensorFlow Ops (Operaciones de TensorFlow) Muestra las operaciones de TensorFlow ejecutadas en la TPU.
    • XLA Ops muestra XLA las operaciones que se ejecutan 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 con la etiqueta “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 del 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 arrastra 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 que sueltas el botón del mouse, haz clic en la vista de cronograma para desactivar la herramienta de zoom.

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 para tu programa.

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

imagen

  1. Menú desplegable de Host Selecciona un host de TPU y el Optimizador de alto nivel de XLA (HLO) de Kubernetes para visualizar.
  2. Descripción general de la memoria: Muestra la asignación de memoria máxima y el tamaño sin rellenar.
  3. Gráfico del espacio de trabajo: Muestra el uso máximo de memoria y un trazado tendencias para tu programa. Apuntar a un búfer en uno de los búferes. gráficos para mostrar información adicional en la tarjeta de asignación de búfer.
  4. Gráficos de búferes Dos gráficos que muestran la asignación de búfer en el pico de memoria de uso de la nube. Apunta a un búfer en uno de los gráficos de búferes para mostrar datos adicionales información 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 . La línea vertical indica el uso máximo de memoria para el programa. Esta muestra 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 HLO de XLA. El te 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 apuntas a un búfer en un gráfico de búferes, línea que muestra la vida útil del búfer en el gráfico del espacio de trabajo.

imagen

El espesor de la línea horizontal indica la magnitud relativa del búfer en relación con la asignación de memoria máxima. La longitud de la línea indica la vida útil del búfer.

Gráficos de búferes

Dos gráficos muestran el desglose del uso de memoria en el uso máximo.

imagen

  • By Program Order Muestra los búferes de izquierda a derecha en el orden en que en el que estaban activos durante la ejecución del programa.

  • By Size Muestra los búferes que estaban activos durante la ejecución del programa. en orden de tamaño decreciente.

Tarjeta de detalles de asignación de búfer

Cuando apuntas a un búfer que se muestra en uno de los gráficos de búferes, este cuando aparezca la tarjeta de detalles de asignación. Una tarjeta de detalles típica luce como se muestra a continuación:

imagen

  1. Nombre: Nombre de la operación de XLA.
  2. Category (Categoría): 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. Unpadded size (Tamaño sin padding): Es el tamaño de la asignación del búfer sin relleno.
  5. Expansión: Corresponde a la magnitud relativa del tamaño del búfer con relleno en comparación con el tamaño sin rellenar. de tamaño del ensamble.
  6. Memoria adicional: Indica cuánta memoria adicional se usa para el relleno.
  7. Forma: Describe la clasificación, el tamaño y el tipo de datos de la dimensión n. .
  8. TensorFlow op name (Nombre de la operación de TensorFlow): Muestra el nombre de TensorFlow. operación asociada con la asignación del búfer.
  9. Allocation type: Indica la categoría de asignación de búfer: Parámetro, Salida, Local del subproceso y Temporal (por ejemplo, búfer asignación en una fusión).

Errores por falta de memoria

Si ejecutas un modelo y obtienes un “falta de memoria” usa los lineamientos de esta documento para capturar un perfil. Espera hasta 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 causó el error.