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 dados
BatchTime_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.