Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Fusión de cronogramas en múltiples archivos de seguimiento de perfiles
La biblioteca SMDebug cliente proporciona herramientas de análisis y visualización de perfiles para combinar los cronogramas de las métricas del sistema, las métricas del marco y los datos de creación de perfiles de Python recopilados por Debugger.
sugerencia
Antes de continuar, debe configurar un TrainingJob objeto que se utilizará en los ejemplos de esta página. Para obtener más información sobre la configuración de un TrainingJob objeto, consulteAcceso a los datos del perfil.
La clase MergedTimeline
proporciona herramientas para integrar y correlacionar diferentes datos de creación de perfiles en un solo cronograma. Cuando el depurador captura los datos de creación de perfiles y las anotaciones de las diferentes fases de un trabajo de entrenamiento, los archivos JSON de los eventos de seguimiento se guardan en un directorio tracefolder
predeterminado.
-
Para las anotaciones en las capas de Python, los archivos de seguimiento se guardan en
*pythontimeline.json
. -
Para las anotaciones en las capas de TensorFlow C++, los archivos de rastreo se guardan en
*model_timeline.json
. -
El generador de perfiles de Tensorflow guarda los eventos en un archivo
*trace.json.gz
.
sugerencia
Si quiere enumerar todos los archivos de seguimiento JSON, use el siguiente comando de la AWS CLI :
! aws s3 ls {tj.profiler_s3_output_path} --recursive | grep '\.json$'
Como se muestra en la siguiente captura de pantalla animada, al colocar y alinear los eventos de seguimiento capturados de las diferentes fuentes de creación de perfiles en un solo gráfico, se puede obtener una visión general de todos los eventos que ocurren en las diferentes fases del trabajo de entrenamiento.

sugerencia
A fin de interactuar con la cronología fusionada en la aplicación de seguimiento mediante un teclado, use la tecla W
para acercarse, la tecla A
para ir a la izquierda, la tecla S
para alejarse y la tecla D
para ir a la derecha.
Los múltiples archivos JSON de seguimiento de eventos se pueden combinar en un solo archivo JSON de eventos de seguimiento utilizando la siguiente operación de API MergedTimeline
y el método de clase del módulo 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)
La operación de API MergedTimeline
pasa los siguientes parámetros:
-
path
(str): especifique una carpeta raíz (/profiler-output
) que contenga los archivos de seguimiento de creación de perfiles del sistema y del marco. Puede localizarlosprofiler-output
mediante el método de clase SageMaker AI Estimator o el objeto. TrainingJob Por ejemplo,estimator.latest_job_profiler_artifacts_path()
otj.profiler_s3_output_path
. -
file_suffix_filter
(lista): especifique una lista de filtros de sufijos de archivos para combinar cronogramas. Los filtros de sufijos disponibles son["model_timeline.json", "pythontimeline.json", "trace.json.gz"].
. Si este parámetro no se especifica manualmente, todos los archivos de seguimiento se combinan de forma predeterminada. -
output_directory
(str): especifique una ruta para guardar el archivo JSON del cronograma fusionado. El valor predeterminado es el directorio especificado para el parámetropath
.
El classmethod merge_timeline()
transfiere los siguientes parámetros para ejecutar el proceso de fusión:
-
start
(int): especifique la hora de inicio (en microsegundos y en formato de hora Unix) o el paso de inicio para combinar los cronogramas. -
end
(int): especifique la hora de finalización (en microsegundos y en formato de hora Unix) o el paso final para combinar los cronogramas. -
unit
(str): elija entre"step"
y"time"
. El valor predeterminado es"time"
.
Con los siguientes códigos de ejemplo, ejecute el método merge_timeline()
y descargue el archivo JSON combinado.
-
Combine el cronograma con la opción de unidad
"time"
. El siguiente código de ejemplo combina todos los archivos de seguimiento disponibles entre la hora de inicio de Unix (la hora de Unix con cero absoluto) y la hora actual de Unix, lo que significa que puede combinar los cronogramas de todo el entrenamiento.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
)) -
Combine el cronograma con la opción de unidad
"step"
. El siguiente código de ejemplo combina todos los cronogramas disponibles entre el paso 3 y el paso 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
")
Abra la aplicación de seguimiento de Chrome en chrome://tracing
, en un navegador Chrome, y abra el archivo JSON. Puede explorar el resultado para representar gráficamente el cronograma fusionado.