Criação de perfil de carregadores de dados - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de perfil de carregadores de dados

Em PyTorch, os iteradores do carregador de dados, como SingleProcessingDataLoaderIter eMultiProcessingDataLoaderIter, são iniciados no início de cada iteração em um conjunto de dados. Durante a fase de inicialização, PyTorch ativa os processos de trabalho, dependendo do número configurado de trabalhadores, estabelece uma fila de dados para buscar dados e threads. pin_memory

Para usar a ferramenta de análise de perfil do carregador de PyTorch dados, importe a seguinte classe: PT_dataloader_analysis

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

Passe os dados de perfil recuperados como um objeto de dados do quadro Pandas na seção Acesse os dados de criação de perfil usando a ferramenta de análise de dados pandas:

pt_analysis = PT_dataloader_analysis(pf)

As seguintes funções estão disponíveis para o objeto pt_analysis:

A SMDebug classe S3SystemMetricsReader lê as métricas do sistema do bucket do S3 especificado para o parâmetro s3_trial_path.

  • pt_analysis.analyze_dataloaderIter_initialization()

    A análise gera a mediana e a duração máxima dessas inicializações. Se houver valores discrepantes (ou seja, a duração for maior que a mediana 2 *), a função imprime os horários de início e término dessas durações. Eles podem ser usados para inspecionar as métricas do sistema durante esses intervalos de tempo.

    A lista a seguir mostra quais análises estão disponíveis nesse método de classe:

    • Que tipo de iteradores do carregador de dados foram inicializados.

    • O número de operadores por iterador.

    • Inspecione se o iterador foi inicializado com ou sem pin_memory.

    • Número de vezes que os iteradores foram inicializados durante o treinamento.

  • pt_analysis.analyze_dataloaderWorkers()

    A lista a seguir mostra quais análises estão disponíveis nesse método de classe:

    • O número de processos de trabalho que foram desmembrados durante todo o treinamento.

    • Duração média e máxima dos processos de trabalho.

    • Horário de início e de término dos processos de trabalho que são atípicos.

  • pt_analysis.analyze_dataloader_getnext()

    A lista a seguir mostra quais análises estão disponíveis nesse método de classe:

    • Número de GetNext chamadas feitas durante o treinamento.

    • Duração média e máxima em microssegundos das chamadas. GetNext

    • Hora de início, hora de término, duração e ID do trabalhador para a duração da GetNext chamada atípica.

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

    O depurador coleta os horários de início e término de todas as chamadas. GetNext Você pode encontrar a quantidade de tempo gasto pelo script de treinamento em um lote de dados. Dentro da janela de tempo especificada, você pode identificar as chamadas que não estão contribuindo diretamente para o treinamento. Essas chamadas podem ser provenientes das seguintes operações: calcular a precisão, adicionar as perdas para fins de depuração ou registro e imprimir as informações de depuração. Operações como essas podem ser demoradas ou intensivas em termos de computação. Podemos identificar essas operações correlacionando o perfil do Python, as métricas do sistema e as métricas da estrutura.

    A lista a seguir mostra quais análises estão disponíveis nesse método de classe:

    • Crie o perfil do tempo gasto em cada lote de dadosBatchTime_in_seconds, encontrando a diferença entre os horários de início das GetNext chamadas atuais e subsequentes.

    • Encontre os valores atípicos em BatchTime_in_seconds e os horários de início e término desses valores discrepantes.

    • Obtenha as métricas do sistema e da estrutura durante esses registros de data e hora BatchTime_in_seconds. Isso indica onde o tempo foi gasto.

  • pt_analysis.plot_the_window()

    Traça um gráfico de linha do tempo entre um carimbo de data e hora de início e fim.