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
No PyTorch, os iteradores do carregador de dados, SingleProcessingDataLoaderIter e MultiProcessingDataLoaderIter, são iniciados no começo de cada iteração em um conjunto de dados. Durante a fase de inicialização, o PyTorch ativa os processos de operador, dependendo do número configurado de operadores, estabelece uma fila de dados para buscar dados e threads pin_memory.
Para usar a ferramenta de análise de perfil do carregador de dados PyTorch, importe a classe PT_dataloader_analysis a seguir:
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 seguinte lista 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 seguinte lista 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 seguinte lista mostra quais análises estão disponíveis nesse método de classe:
-
Número de chamadas do GetNext 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 operador para a duração atípica da chamada GetNext.
-
-
pt_analysis.analyze_batchtime(start_timestamp, end_timestamp, select_events=[".*"], select_dimensions=[".*"])O Debugger coleta os horários de início e de término de todas as chamadas do 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 seguinte lista mostra quais análises estão disponíveis nesse método de classe:
-
Crie o perfil do tempo gasto em cada lote de dados
BatchTime_in_seconds, encontrando a diferença entre os horários de início das chamadas GetNext atuais e subsequentes. -
Encontre os valores atípicos em
BatchTime_in_secondse 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.