Cargadores de datos de creación de perfiles - Amazon SageMaker

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.

Cargadores de datos de creación de perfiles

En PyTorch, los iteradores del cargador de datos, como SingleProcessingDataLoaderIter yMultiProcessingDataLoaderIter, se inician al principio de cada iteración en un conjunto de datos. Durante la fase de inicialización, PyTorch activa los procesos de trabajo en función del número de trabajadores configurado y establece una cola de datos para recuperar los datos y los subprocesos. pin_memory

Para utilizar la herramienta de análisis de perfiles del cargador de PyTorch datos, importe la siguiente clase: PT_dataloader_analysis

from smdebug.profiler.analysis.utils.pytorch_dataloader_analysis import PT_dataloader_analysis

Transfiera los datos de creación de perfiles recuperados como un objeto de datos del marco de Pandas en la sección Acceso a los datos de creación de perfiles con Pandas, una herramienta de análisis de datos:

pt_analysis = PT_dataloader_analysis(pf)

Las siguientes funciones están disponibles para el objeto pt_analysis:

La clase S3SystemMetricsReader de SMDebug lee las métricas del sistema del bucket de S3 especificado en el parámetro s3_trial_path.

  • pt_analysis.analyze_dataloaderIter_initialization()

    El análisis muestra la duración media y máxima de estas inicializaciones. Si hay valores atípicos (es decir, la duración es superior al doble de la media), la función imprime las horas de inicio y finalización de esas duraciones. Se pueden usar para inspeccionar las métricas del sistema durante esos intervalos de tiempo.

    La siguiente lista muestra los análisis disponibles con este método de clase:

    • Qué tipo de iteradores del cargador de datos se inicializaron.

    • El número de procesos de trabajo por iterador.

    • Comprobación de si el iterador se inicializó con o sin pin_memory.

    • El número de veces que se inicializaron los iteradores durante el entrenamiento.

  • pt_analysis.analyze_dataloaderWorkers()

    La siguiente lista muestra los análisis disponibles con este método de clase:

    • El número de procesos de trabajo que se generaron durante todo el entrenamiento.

    • Duración media y máxima de los procesos de trabajo.

    • Hora de inicio y finalización en los procesos de trabajo atípicos.

  • pt_analysis.analyze_dataloader_getnext()

    La siguiente lista muestra los análisis disponibles con este método de clase:

    • Número de GetNext llamadas realizadas durante la formación.

    • Duración media y máxima en microsegundos de las GetNext llamadas.

    • Hora de inicio, hora de finalización, duración e identificador del trabajador para la duración atípica de la GetNext llamada.

  • pt_analysis.analyze_batchtime(start_timestamp, end_timestamp, select_events=[".*"], select_dimensions=[".*"])

    El depurador recopila las horas de inicio y finalización de todas las GetNext llamadas. Puede encontrar la cantidad de tiempo que emplea el script de entrenamiento en un lote de datos. Dentro del intervalo de tiempo especificado, puede identificar las llamadas que no contribuyen directamente al entrenamiento. Estas llamadas pueden proceder de las siguientes operaciones: calcular la precisión, sumar las pérdidas con fines de depuración o registro e imprimir la información de depuración. Operaciones como estas pueden requerir un uso intensivo de recursos informáticos o consumir mucho tiempo. Podemos identificar dichas operaciones correlacionando el generador de perfiles de Python, las métricas del sistema y las métricas del marco.

    La siguiente lista muestra los análisis disponibles con este método de clase:

    • Haga un perfil del tiempo dedicado a cada lote de datosBatchTime_in_seconds, encontrando la diferencia entre las horas de inicio de las GetNext llamadas actuales y las posteriores.

    • Encuentre los valores atípicos en BatchTime_in_seconds y la hora de inicio y finalización de esos valores atípicos.

    • Obtenga las métricas del sistema y del marco durante esas marcas temporales BatchTime_in_seconds. Esto indica dónde se empleó el tiempo.

  • pt_analysis.plot_the_window()

    Traza un gráfico de cronograma entre una marca de tiempo de inicio y la marca de tiempo de finalización.