Profilazione del modello con gli strumenti Cloud TPU

La profilazione consente di ottimizzare le prestazioni di addestramento del modello su Cloud TPU. Utilizzi TensorBoard e il plug-in TensorBoard di Cloud TPU per creare il profilo del tuo modello.

Per ulteriori informazioni sull'utilizzo di TensorBoard con uno dei framework supportati, consulta i seguenti documenti:

Prerequisiti per la profilazione di uno script di addestramento

Prima di utilizzare gli strumenti di profilazione in TPU, devi:

  1. Avvia una sessione di addestramento di modelli

    1. Configura una TPU v4-8 per addestrare un modello. La procedura di profilazione descritta in questo documento utilizza un modello ResNet, ma puoi utilizzare un altro modello addestrato su una TPU v4.
    2. Nella VM TPU, aggiungi una riga per avviare il server profiler allo script di addestramento.

      Per l'addestramento ResNET, lo script di addestramento è all'indirizzo: /usr/share/tpu/tensorflow/resnet50_keras/resnet50.py.

      Inserisci le linee evidenziate in resnet50.py. Nella parte superiore del file, aggiungi la seguente importazione:

      import tensorflow.compat.v2 as tf2
      

      Appena prima che gli script inizino il ciclo di addestramento, aggiungi la riga evidenziata:

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

      Il server del profiler TensorFlow si avvia sulla VM TPU quando esegui lo script.

    3. Inizia l'addestramento del modello.

      Esegui lo script di addestramento e attendi finché non viene visualizzato l'output che indica che il modello è in fase di addestramento. L'output dipende dal codice e dal modello. Cerca l'output come Epoch 1/100. In alternativa, puoi accedere alla pagina Cloud TPU nella console Google Cloud, selezionare la TPU e visualizzare il grafico di utilizzo della CPU. Sebbene il grafico di utilizzo della CPU non mostri l'utilizzo di TPU, è una buona indicazione che la TPU sta addestrando il tuo modello.

Inizia a profilare l'addestramento del modello

Durante l'addestramento del modello, apri una finestra del terminale separata o Cloud Shell. Per iniziare a profilare il modello di addestramento, segui i passaggi riportati di seguito.

  1. Nella nuova finestra o shell, connettiti alla tua VM TPU con il port forwarding.

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

    Il port forwarding consente al tuo browser locale di comunicare con il server TensorBoard in esecuzione sulla tua VM TPU.

  2. Installa i requisiti di TensorFlow {: id="install-tensorboard"}.

    La tua VM TPU ha TensorBoard installato per impostazione predefinita. Puoi anche installare manualmente TensorFlow. In entrambi i casi, potrebbero essere necessarie alcune dipendenze aggiuntive. Installa queste dipendenze dalla tua VM TPU eseguendo:

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

    Dalla VM TPU, esegui i comandi seguenti:

     pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"
     pip3 install tensorflow
     pip3 install tensorboard_plugin_profile
    
  4. Avvia il server TensorBoard

    Esegui TensorBoard e crea una directory di log (logdir) sulla VM TPU in cui TensorBoard può scrivere dati di profilazione. Specifica la directory del log utilizzando il flag --logdir. Ad esempio:

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

TensorBoard avvia un server web e visualizza il relativo 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)

Apri un browser web e vai all'URL visualizzato nell'output di TensorBoard. Seleziona Profilo dal menu a discesa in alto a destra nella pagina TensorBoard. L'elenco degli strumenti di profilazione disponibili viene visualizzato nel menu a discesa Strumenti nella barra laterale a sinistra.

immagine

Acquisisci un profilo sulle VM TPU

  1. Seleziona il pulsante CAPTURE PROFILE.
  2. Seleziona il pulsante di opzione Indirizzo IP.
  3. Digita HOSTNAME:6000 nel campo Profile Service URL.
  4. Seleziona il pulsante ACQUISTA.

immagine

Visualizzare i dati del profilo con TensorBoard

Dopo aver acquisito un profilo, TensorBoard mostra la pagina_panoramica. L'elenco degli strumenti di profilazione che puoi utilizzare è visualizzato nel riquadro a sinistra.

immagine

Profilo

La scheda Profilo viene visualizzata dopo aver acquisito alcuni dati del modello. Potresti dover fare clic sul pulsante di aggiornamento nella pagina TensorBoard. Una volta che i dati sono disponibili, facendo clic sulla scheda Profilo è disponibile una selezione di strumenti utili per l'analisi del rendimento. Per profilare il tuo modello, puoi utilizzare uno qualsiasi dei seguenti strumenti.

Pagina Panoramica del profilo

La pagina Panoramica (overview_page), disponibile nella pagina Profilo, offre una visualizzazione di primo livello del rendimento del modello durante un'esecuzione durante l'acquisizione. La pagina mostra una panoramica aggregata di tutte le tue TPU e un'analisi complessiva della pipeline di input. Nel menu a discesa Host è disponibile un'opzione per selezionare le singole TPU.

La pagina mostra i dati nei seguenti riquadri:

immagine

  • Riepilogo del rendimento

    • Utilizzo FLOPS: l'utilizzo percentuale delle unità della matrice TPU
  • Primi dieci operazioni TensorFlow su TPU mostra le operazioni TensorFlow che hanno consumato più tempo:

    Ogni riga mostra l'autotempo di un'operazione (sotto forma di percentuale del tempo impiegato da tutte le operazioni), tempo cumulativo, categoria, nome e frequenza FLOPS raggiunta.

  • Ambiente di esecuzione

    • Il numero di host utilizzati
    • Il tipo di TPU utilizzato
    • Il numero di core TPU

Analizzatore pipeline di input

Lo strumento di analisi della pipeline di input fornisce insight sui risultati in termini di rendimento. Lo strumento ti dice immediatamente se il tuo programma è vincolato a un input e può illustrarti l'analisi lato dispositivo e lato host per eseguire il debug di qualsiasi fase della pipeline creando colli di bottiglia.

Consulta le indicazioni sulle prestazioni della pipeline di input per informazioni più dettagliate sull'ottimizzazione delle prestazioni della pipeline.

Pipeline di input

Quando un programma TensorFlow legge i dati da un file, il processo di lettura è diviso in più fasi di elaborazione dei dati collegate in serie. L'output di una fase è l'input della fase successiva. Questo sistema di lettura è chiamato pipeline di input.

Una pipeline tipica per la lettura dei record dai file prevede le seguenti fasi:

  1. Lettura di file
  2. Pre-elaborazione file (facoltativo)
  3. Trasferimento di file dalla macchina host al dispositivo

Una pipeline di input inefficiente può rallentare gravemente l'applicazione. Un'applicazione è considerata vincolata all'input quando trascorre una parte significativa del suo tempo nella pipeline di input. Utilizza l'analizzatore pipeline di input per capire dove la pipeline di input non è efficiente.

Dashboard della pipeline di input

Per aprire l'analizzatore pipeline di input, seleziona Profilo e poi seleziona input_pipeline_analyzer dal menu a discesa Strumenti.

La dashboard mostra i dettagli dell'analisi lato dispositivo e lato host.

Analisi lato dispositivo: mostra i dettagli relativi ai tempi del passaggio del dispositivo.

  • Statistiche tempo di utilizzo del dispositivo
  • % del tempo di passaggio del dispositivo in attesa di dati di input

Analisi lato host

Questa sezione mostra i dettagli dell'analisi lato host suddivisa in diverse categorie:

  • Mettere in coda i dati da trasferire al dispositivo Tempo di inserimento dei dati in una coda di feed prima del trasferimento dei dati al dispositivo.
  • Pre-elaborazione dei dati Tempo dedicato alle operazioni di pre-elaborazione, come la decompressione delle immagini.
  • Lettura anticipata dei dati dai file Tempo di lettura dei file, inclusi memorizzazione nella cache, precaricamento e interleaving.
  • Lettura dei dati dai file on demand Tempo di lettura dei dati dai file senza memorizzazione nella cache, precaricamento e interleaving.
  • Altre operazioni di lettura o trattamento dei dati Tempo dedicato ad altre operazioni correlate agli input che non utilizzano tf.data.

immagine

Per visualizzare le statistiche sulle singole operazioni di immissione e sulle relative categorie suddivise per tempo di esecuzione, espandi la sezione Show Input Op statistics.

Viene visualizzata una tabella di dati di origine come la seguente:

immagine

Ogni voce di tabella contiene le seguenti informazioni:

  1. Input Op mostra il nome dell'operazione di TensorFlow.
  2. Conteggio mostra il numero totale di istanze dell'operazione eseguite durante il periodo di profilazione.
  3. Tempo totale (in ms) mostra la somma cumulativa del tempo trascorso su ogni istanza dell'operazione.
  4. %tempo totale mostra il tempo totale trascorso in un'operazione come frazione del tempo totale trascorso nell'elaborazione dell'input.
  5. Autotempo totale (in ms) mostra il tempo accumulato su tutte le istanze della funzione. Il tempo personale misura il tempo trascorso all'interno del corpo della funzione, escludendo il tempo dedicato a tutte le funzioni che chiama. Ad esempio, il Iterator::PaddedBatch::Filter::ForeverRepeat::Map viene chiamato da Iterator::PaddedBatch::Filter, pertanto il suo tempo di autotempo totale è escluso dal tempo totale di quest'ultimo.
  6. %tempo di autotempo totale mostra il tempo di autotempo totale come frazione del tempo totale di elaborazione dell'input.
  7. Categoria: mostra la categoria di elaborazione dell'operazione di input.

Profilo operativo

Il profilo operativo è uno strumento Cloud TPU che mostra le statistiche sulle prestazioni delle operazioni XLA eseguite durante un periodo di profilazione. Il profilo operazioni mostra:

  • In che misura la tua applicazione utilizza Cloud TPU come percentuale di tempo trascorso sulle operazioni per categoria e dell'utilizzo dei FLOPS delle TPU.
  • Le operazioni più lunghe. Queste operazioni sono potenziali obiettivi di ottimizzazione.
  • Dettagli delle singole operazioni, tra cui forma, spaziatura interna ed espressioni che utilizzano l'operazione.

Puoi utilizzare il profilo operativo per trovare target per l'ottimizzazione. Ad esempio, puoi utilizzare il profilo operazioni per identificare quali operazioni XLA richiedono più tempo per l'esecuzione e il numero di FLOPS TPU utilizzate.

Utilizzo del profilo operativo

Lo strumento Profilo Op contiene le statistiche sulle prestazioni delle operazioni XLA. Puoi visualizzare i dati del profilo operativo in TensorBoard facendo clic sulla scheda Profilo nella parte superiore dello schermo e selezionando op_profile dal menu a discesa Strumenti. Verrà visualizzata una schermata come la seguente:

immagine

  1. Sezione Panoramica mostra l'utilizzo di Cloud TPU e fornisce suggerimenti per l'ottimizzazione.
  2. Pannello di controllo Contiene i controlli che consentono di impostare il numero di operazioni visualizzate nella tabella, le operazioni visualizzate e la modalità di ordinamento.
  3. Tabella delle operazioni: elenca le principali categorie di operazioni TensorFlow associate alle operazioni XLA. Queste operazioni sono ordinate in base alla percentuale di utilizzo di Cloud TPU.
  4. Schede dei dettagli delle operazioni: mostrano i dettagli sulle operazioni che vengono visualizzate quando selezioni un'operazione nella tabella. Questi dettagli includono l'utilizzo dei FLOPS, l'espressione in cui viene utilizzata l'operazione e il layout dell'operazione (fit).

Tabella Op XLA

La tabella delle operazioni elenca le categorie delle operazioni XLA in ordine decrescente, dalla percentuale più alta di utilizzo di Cloud TPU. La tabella mostra la percentuale di tempo impiegato, il nome della categoria dell'operazione, il nome dell'operatore TensorFlow associato e la percentuale di utilizzo FLOPS per la categoria. Per visualizzare (o nascondere) le dieci operazioni XLA che richiedono più tempo per una categoria, fai clic sul triangolo accanto al nome della categoria nella tabella.

immagine

  1. Tempo mostra la percentuale totale di tempo trascorso da tutte le operazioni nella categoria in questione. Puoi fare clic per espandere la voce e visualizzare la suddivisione del tempo trascorso da ogni singola operazione.
  2. 10 principali operazioni Il pulsante di attivazione/disattivazione accanto al nome di una categoria mostra/nasconde le prime dieci operazioni dispendiose in termini di tempo all'interno della categoria. Se una voce di operazione di fusione viene visualizzata nell'elenco delle operazioni, puoi espanderla per vedere le operazioni non di fusione e a livello di elemento che contiene.
  3. TensorFlow Op mostra il nome dell'operazione TensorFlow associato all'operazione XLA.
  4. FLOPS Mostra l'utilizzo di FLOPS, che indica il numero misurato di FLOPS espresso come percentuale dei FLOPS di picco di Cloud TPU. Maggiore è la percentuale di utilizzo FLOPS, più rapidamente vengono eseguite operazioni. La cella della tabella è codificata a colori: verde per un elevato utilizzo FLOPS (buono) e rosso per un basso utilizzo FLOPS (cattivo).

Schede dettagli operazione

Quando selezioni una voce della tabella, viene visualizzata una scheda con i dettagli sull'operazione XLA o sulla categoria dell'operazione. Una scheda tipica ha questo aspetto:

immagine

  • Nome e Categoria, in cui sono evidenziati il nome e la categoria dell'operazione XLA evidenziati.
  • Utilizzo FLOPS Visualizza l'utilizzo FLOPS come percentuale del totale FLOPS possibile.
  • Espressione mostra l'espressione XLA contenente l'operazione.
  • Utilizzo della memoria: mostra la percentuale di utilizzo di memoria di picco del tuo programma.
  • Layout (solo operazioni di convoluzione) mostra la forma e il layout di un tensore, inclusa una descrizione di qualsiasi spaziatura interna eseguita dal compilatore XLA.

Interpretazione dei risultati

Per le operazioni di convoluzione, l'utilizzo ridotto di FLOPS in TPU può essere dovuto a uno dei seguenti motivi o a entrambi:

  • spaziatura interna (le unità della matrice vengono utilizzate parzialmente)
  • operazione di convoluzione vincolata alla memoria

Questa sezione fornisce un'interpretazione di alcune metriche sulle prestazioni da un modello con un basso utilizzo di FLOP. In questo esempio, la fusione dell'output e la voluzione hanno dominato i tempi di esecuzione. Esistono molte operazioni vettoriali o scalari che hanno avuto un basso utilizzo di FLOP.

Una strategia di ottimizzazione per questo tipo di profilo consiste nel trasformare le operazioni vettoriali o scalari in operazioni di convoluzione.

Nell'esempio seguente, %convolution.399 mostra un FLOPS e un utilizzo della memoria inferiori rispetto a %convolution.340 nell'esempio precedente.

immagine

In questo esempio, la dimensione del batch viene aggiunta a 128 e la dimensione della funzionalità viene aggiunta a 8. In questo caso, solo il 5% delle unità della matrice viene utilizzato in modo efficace. L'utilizzo è calcolato da (((batch_time * num_of_features) / adding_size ) / num_of_cores". Confronta i FLOPS in questo esempio con %convolution.340 nell'esempio precedente che non utilizza spaziatura interna.

Visualizzatore Trace

Il visualizzatore Trace è uno strumento di analisi delle prestazioni di Cloud TPU disponibile nella pagina Profilo. Lo strumento utilizza il Visualizzatore profilazione degli eventi di traccia di Chrome, quindi funziona solo nel browser Chrome.

Il visualizzatore tracce mostra una sequenza temporale che mostra:

  • La durata delle operazioni eseguite dal tuo modello TensorFlow.
  • Quale parte del sistema (TPU o macchina host) ha eseguito un'operazione. In genere, la macchina host esegue operazioni di feed, che preelaborano i dati di addestramento e li trasferisce alla TPU, mentre la TPU esegue l'addestramento del modello effettivo.

Il visualizzatore Trace consente di identificare i problemi di prestazioni nel modello, quindi di risolverli per risolverli. Ad esempio, a livello generale, puoi identificare se l'addestramento in-feed o di modello richiede la maggior parte del tempo. Se visualizzi in dettaglio, puoi identificare le operazioni TensorFlow che richiedono il tempo di esecuzione più lungo.

Il visualizzatore Trace è limitato a 1 milione di eventi per ogni Cloud TPU. Se devi valutare più eventi, utilizza il visualizzatore di tracce in streaming.

Interfaccia visualizzatore di Trace

Per aprire il visualizzatore tracce, vai su TensorBoard, fai clic sulla scheda Profilo nella parte superiore dello schermo e scegli trace_viewer dal menu a discesa Strumenti. Viene visualizzato lo spettatore che visualizza la tua esecuzione più recente:

immagine

Questa schermata contiene i seguenti elementi principali (contrassegnati da numeri nella schermata precedente):

  1. Menu a discesa Esecuzioni contiene tutte le esecuzioni per le quali hai acquisito informazioni di traccia. La visualizzazione predefinita è l'esecuzione più recente, ma puoi aprire il menu a discesa per selezionare un'esecuzione diversa.
  2. Elenco a discesa Strumenti: consente di selezionare diversi strumenti di profilazione.
  3. Menu a discesa Host seleziona un host che contiene un set Cloud TPU.
  4. Riquadro della sequenza temporale mostra le operazioni eseguite da Cloud TPU e dalla macchina host nel tempo.
  5. Riquadro dei dettagli: mostra informazioni aggiuntive per le operazioni selezionate nel riquadro Timeline.

Vediamo più da vicino il riquadro della sequenza temporale:

immagine

Il riquadro Spostamenti contiene i seguenti elementi:

  1. Barra superiore Contiene vari controlli ausiliari.
  2. Asse temporale Mostra il tempo relativo all'inizio della traccia.
  3. Etichette di sezioni e tracce Ogni sezione contiene più tracce e presenta un triangolo a sinistra su cui puoi fare clic per espandere e comprimere la sezione. Nel sistema è presente una sezione per ogni elemento di elaborazione.
  4. Selettore strumenti: contiene vari strumenti per interagire con il visualizzatore di tracce.
  5. Eventi mostra il tempo durante il quale è stata eseguita un'operazione o la durata dei meta-eventi, ad esempio i passaggi di addestramento.
  6. Barra delle schede verticale Questa barra non ha uno scopo utile per Cloud TPU. La barra fa parte dello strumento di visualizzazione delle tracce per uso generico di Chrome, che viene utilizzato per varie attività di analisi delle prestazioni.

Sezioni e tracce

Il visualizzatore Trace contiene le seguenti sezioni:

  • Una sezione per ogni nodo TPU, etichettata con il numero del chip TPU e il nodo TPU all'interno del chip (ad esempio "Chip 2: TPU Core 1"). Ogni sezione del nodo TPU contiene le seguenti tracce:
    • Passaggio: mostra la durata dei passaggi di addestramento in esecuzione sulla TPU.
    • TensorFlow Ops mostra le operazioni TensorFlow eseguite sulla TPU.
    • Ops XLA mostra le operazioni XLA eseguite sulla TPU. Ogni operazione viene tradotta in una o più operazioni XLA. Il compilatore XLA traduce le operazioni XLA in codice eseguito sulla TPU.
  • Una sezione per i thread in esecuzione sulla CPU host,denominata "Thread host". La sezione contiene una traccia per ogni thread di CPU. Nota: puoi ignorare le informazioni visualizzate accanto alle etichette della sezione.

Selettore strumento Timeline

Puoi interagire con la visualizzazione della sequenza temporale utilizzando il selettore degli strumenti di cronologia in TensorBoard. Puoi fare clic su uno strumento della sequenza temporale o utilizzare le seguenti scorciatoie da tastiera per attivare ed evidenziare uno strumento. Per spostare il selettore dello strumento Cronologia, fai clic nell'area tratteggiata in alto e trascina il selettore dove preferisci.

Utilizza gli strumenti per la sequenza temporale come indicato di seguito:

Strumento di selezione
fai clic su un evento per selezionarlo o trascina per selezionare più eventi. Nel riquadro dei dettagli verranno visualizzate ulteriori informazioni sull'evento o sugli eventi selezionati (nome, ora di inizio e durata).

Strumento Panoramica
Trascina per eseguire la panoramica della visualizzazione cronologia in orizzontale e in verticale.

Strumento Zoom
Trascina verso l'alto per aumentare lo zoom o verso il basso per diminuire lo zoom lungo l'asse orizzontale (tempo). La posizione orizzontale del cursore del mouse determina il centro intorno al quale viene eseguito lo zoom.

Nota: se lo strumento zoom rimane attivo dopo aver rilasciato il pulsante del mouse, fai clic sulla visualizzazione della sequenza temporale per disattivare lo strumento zoom.

Strumento Tempi
Trascina orizzontalmente per contrassegnare un intervallo di tempo. La lunghezza dell'intervallo viene visualizzata sull'asse del tempo. Per regolare l'intervallo, trascina le estremità. Per cancellare l'intervallo, fai clic in un punto qualsiasi della visualizzazione della sequenza temporale.

Se selezioni un altro strumento, l'intervallo rimane contrassegnato.

Visualizzatore ricordi

Il visualizzatore memoria consente di visualizzare le tendenze di utilizzo massimo della memoria e della memoria per il tuo programma.

L'interfaccia utente del visualizzatore di memoria ha il seguente aspetto:

immagine

  1. Menu a discesa Host seleziona un host TPU e i moduli XLA High Level Optimization (HLO) da visualizzare.
  2. Panoramica della memoria: mostra l'allocazione della memoria e le dimensioni massime senza spaziatura interna.
  3. Grafico degli spazi di lavoro mostra l'utilizzo massimo della memoria e un grafico delle tendenze di utilizzo della memoria per il tuo programma. Posiziona il puntatore del mouse su un buffer in uno dei grafici buffer per visualizzare informazioni aggiuntive nella scheda di allocazione del buffer.
  4. Grafici buffer Due grafici che visualizzano l'allocazione del buffer all'utilizzo della memoria di picco. Posiziona il puntatore del mouse su un buffer in uno dei grafici buffer per visualizzare informazioni aggiuntive nella scheda dei dettagli del buffer.
  5. Scheda dei dettagli di allocazione del buffer Mostra i dettagli dell'allocazione di un buffer.

Riquadro panoramica della memoria

Il riquadro della panoramica della memoria (in alto) mostra il nome del modulo e l'allocazione massima della memoria impostata quando la dimensione totale di allocazione del buffer raggiunge il valore massimo. Viene mostrata anche la dimensione dei picchi di allocazione senza picchi.

immagine

Grafico dello spazio di lavoro

Questo grafico mostra l'utilizzo di memoria massimo e un grafico delle tendenze di utilizzo della memoria per il tuo programma. La linea verticale indica il picco di utilizzo della memoria per il programma. Questo grafico mostra se il tuo programma può essere inserito nello spazio di memoria globale disponibile.

immagine

Ogni punto nel grafico rappresenta un "punto di programma" nel programma XLA HLO. La riga mostra come cambia l'utilizzo della memoria del programma nel tempo.

Interazione con gli elementi del grafico di buffer

Quando selezioni un buffer nei grafici buffer, nel grafico dell'area di lavoro viene visualizzata una linea orizzontale che mostra la durata del buffer.

immagine

Lo spessore della linea orizzontale indica l'entità relativa della dimensione del buffer rispetto all'allocazione del picco di memoria. La lunghezza della riga indica la durata del buffer.

Grafici a buffer

Due grafici mostrano l'analisi della memoria utilizzata al massimo.

immagine

  • Per ordine del programma mostra i buffer da sinistra a destra nell'ordine in cui erano attivi durante l'esecuzione del programma.

  • Per dimensione: visualizza i buffer attivi durante l'esecuzione del programma al fine di ridurre le dimensioni.

Scheda dei dettagli di allocazione del buffer

Quando selezioni un buffer visualizzato in uno dei grafici buffer, viene visualizzata una scheda dei dettagli dell'allocazione del buffer. Una scheda dei dettagli tipica ha il seguente aspetto:

immagine

  1. Nome: il nome dell'operazione XLA.
  2. Categoria: la categoria dell'operazione.
  3. Dimensioni: le dimensioni dell'allocazione del buffer (inclusa la spaziatura interna).
  4. Dimensioni senza padding: le dimensioni dell'allocazione del buffer senza spaziatura interna.
  5. Espansione: l'ampiezza relativa delle dimensioni del buffer imbottito rispetto alle dimensioni non imbottite.
  6. Memoria aggiuntiva: indica la quantità di memoria supplementare utilizzata per la spaziatura interna.
  7. Forma: descrive il rango, le dimensioni e il tipo di dati dell'array N-dimensionale.
  8. Nome dell'operazione TensorFlow: mostra il nome dell'operazione TensorFlow associato all'allocazione del buffer.
  9. Tipo di allocazione: indica la categoria di allocazione del buffer: Parametro, Output, Locale nei thread e Temporaneo (ad esempio, allocazione del buffer all'interno di una fusione).

Errori di memoria esaurita

Se esegui un modello e ricevi un errore di memoria insufficiente, utilizza le linee guida descritte in questo documento per acquisire un profilo. Attendi che lo script addestra il modello prima di avviare il Profiler. L'output di profilazione può aiutarti a comprendere la causa dell'errore.