

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
<a name="debugger-data-loading-time"></a>

Em PyTorch, os iteradores do carregador de dados, como `SingleProcessingDataLoaderIter` e`MultiProcessingDataLoaderIter`, 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](debugger-access-data-profiling-pandas-frame.md):

```
pt_analysis = PT_dataloader_analysis(pf)
```

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

A SMDebug `S3SystemMetricsReader` classe lê as métricas do sistema do bucket do S3 especificado para o `s3_trial_path` parâmetro.
+ `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 \$1), 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\$1memory.
  + 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 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 Debugger 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 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 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.