Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Unisci le tempistiche di più file di traccia dei profili
La libreria client SMDebug fornisce strumenti di analisi e visualizzazione della profilazione per unire le tempistiche dei parametri di sistema, dei parametri del framework e dei dati di profilazione Python raccolti da Debugger.
Suggerimento
Prima di procedere, è necessario impostare un TrainingJob oggetto che verrà utilizzato negli esempi di questa pagina. Per ulteriori informazioni sulla configurazione di un TrainingJob oggetto, vedere. Accedi ai dati del profilo
La classe MergedTimeline
fornisce strumenti per integrare e correlare diverse informazioni di profilazione in un'unica tempistica. Dopo che Debugger ha acquisito i dati di profilazione e le annotazioni da diverse fasi di un processo di addestramento, i file JSON degli eventi di traccia vengono salvati in una directory predefinita tracefolder
.
-
Per le annotazioni nei livelli Python, i file di traccia vengono salvati in
*pythontimeline.json
. -
Per le annotazioni nei livelli TensorFlow C++, i file di traccia vengono salvati in.
*model_timeline.json
-
Il profiler Tensorflow salva gli eventi in un file
*trace.json.gz
.
Suggerimento
Se desideri elencare tutti i file di traccia JSON, usa il seguente comando AWS CLI
! aws s3 ls {tj.profiler_s3_output_path} --recursive | grep '\.json$'
Come mostrato nella seguente schermata animata, l'inserimento e l'allineamento degli eventi di traccia acquisiti dalle diverse fonti di profilazione in un unico grafico può fornire una panoramica di tutti gli eventi che si verificano nelle diverse fasi del processo di addestramento.
Suggerimento
Per interagire con la tempistica unita sull'app di tracciamento utilizzando una tastiera, usa il tasto W
per ingrandire, il tasto A
per spostarsi a sinistra, il tasto S
per rimpicciolire e il tasto D
per spostarsi a destra.
I file JSON di traccia di più eventi possono essere uniti in un unico file JSON di eventi di traccia utilizzando la seguente operazione API MergedTimeline
e il metodo di classe del modulo smdebug.profiler.analysis.utils.merge_timelines
.
from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(path, file_suffix_filter, output_directory) combined_timeline.merge_timeline(start, end, unit)
L'operazione API MergedTimeline
passa i seguenti parametri:
-
path
(str) — Specifica una cartella principale (/profiler-output
) che contiene i file di traccia per la profilazione del sistema e del framework. È possibile individuarloprofiler-output
utilizzando la classe SageMaker estimator, il metodo o l'oggetto. TrainingJob Ad esempioestimator.latest_job_profiler_artifacts_path()
otj.profiler_s3_output_path
. -
file_suffix_filter
(elenco) — Specifica un elenco di filtri per i suffissi dei file per unire le tempistiche. I filtri per i suffissi disponibili sono["model_timeline.json", "pythontimeline.json", "trace.json.gz"].
Se questo parametro non viene specificato manualmente, tutti i file di traccia vengono uniti per impostazione predefinita. -
output_directory
(str) — Specifica un percorso per salvare il file JSON della tempistica unita. L'impostazione predefinita è la directory specificata per il parametropath
.
Il metodo della classe merge_timeline()
passa i seguenti parametri per eseguire il processo di unione:
-
start
(int) — Specifica l'ora di inizio (in microsecondi e nel formato orario Unix) o la fase iniziale per unire le tempistiche. -
end
(int) — Specifica l'ora di fine (in microsecondi e nel formato orario Unix) o la fase finale per unire le tempistiche. -
unit
(str) — Scegli tra"time"
e"step"
. Il valore predefinito è"time"
.
Utilizzando i seguenti codici di esempio, esegui il metodo merge_timeline()
e scarica il file JSON unito.
-
Unisci la tempistica con l'opzione dell'unità
"time"
. Il codice di esempio seguente unisce tutti i file di traccia disponibili tra l'ora di inizio di Unix (l'ora Unix zero assoluta) e l'ora Unix corrente, il che significa che è possibile unire le tempistiche per l'intera durata dell'addestramento.import time from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline from smdebug.profiler.profiler_constants import CONVERT_TO_MICROSECS combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(
0
, int(time.time() * CONVERT_TO_MICROSECS
)) -
Unisci la tempistica con l'opzione dell'unità
"step"
. Il codice di esempio seguente unisce tutte le tempistiche disponibili tra la fase 3 e la fase 9.from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(
3
,9
, unit="step
")
Apri l'app di tracciamento Chrome in chrome://tracing
su un browser Chrome e apri il file JSON. Puoi esplorare l'output per tracciare la tempistica unita.