

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á.

# Acesse os dados de estatísticas de perfil do Python
<a name="debugger-access-data-python-profiling"></a>

O perfil do Python fornece métricas de estrutura relacionadas às funções e operadores do Python em seus scripts de treinamento e nas estruturas de aprendizado profundo de IA. SageMaker 

<a name="debugger-access-data-python-profiling-modes"></a>**Modos e fases de treinamento para criação de perfil em Python**

Para traçar o perfil de intervalos específicos durante o treinamento para particionar estatísticas para cada um desses intervalos, o Debugger fornece ferramentas para definir modos e fases. 

Para modos de treinamento, use a seguinte classe `PythonProfileModes`:

```
from smdebug.profiler.python_profile_utils import PythonProfileModes
```

Essa classe fornece as seguintes opções:
+ `PythonProfileModes.TRAIN`: Use se quiser traçar o perfil das etapas desejadas na fase de treinamento. Esta opção de modo está disponível somente para TensorFlow.
+ `PythonProfileModes.EVAL`: Use se quiser traçar o perfil das etapas desejadas na fase de avaliação. Esta opção de modo está disponível somente para TensorFlow.
+ `PythonProfileModes.PREDICT`: Use se quiser traçar o perfil das etapas desejadas na fase de predição. Esta opção de modo está disponível somente para TensorFlow.
+ `PythonProfileModes.GLOBAL`: Use se quiser traçar o perfil das etapas de destino na fase global, que inclui as três fases anteriores. Esta opção de modo está disponível somente para PyTorch.
+ `PythonProfileModes.PRE_STEP_ZERO`: Use se quiser traçar o perfil das etapas de destino no estágio de inicialização antes do início da primeira etapa de treinamento da primeira época. Essa fase inclui o envio inicial do trabalho, o upload dos scripts de treinamento para as instâncias do EC2, a preparação das instâncias do EC2 e o download dos dados de entrada. Esta opção de modo está disponível para TensorFlow PyTorch e.
+ `PythonProfileModes.POST_HOOK_CLOSE`: Use se quiser traçar o perfil das etapas de destino no estágio de finalização após a conclusão do trabalho de treinamento e o hook do Debugger estiver fechado. Essa fase inclui dados de criação de perfil enquanto os trabalhos de treinamento são finalizados e concluídos. Esta opção de modo está disponível para TensorFlow PyTorch e.

<a name="debugger-access-data-python-profiling-phases"></a>Para fases de treinamento, use a classe `StepPhase` a seguir:

```
from smdebug.profiler.analysis.utils.python_profile_analysis_utils import StepPhase
```

Essa classe fornece as seguintes opções:
+ `StepPhase.START`: Use para especificar o ponto inicial da fase de inicialização.
+ `StepPhase.STEP_START`: Use para especificar o ponto inicial da fase de treinamento.
+ `StepPhase.FORWARD_PASS_END`: Use para especificar as etapas em que a passagem para frente termina. Essa opção está disponível somente para PyTorch.
+ `StepPhase.STEP_END`: Use para especificar o ponto final da fase de treinamento. Essa opção está disponível somente para TensorFlow.
+ `StepPhase.END`— Use para especificar o ponto final da fase de finalização (post-hook-close). Se o hook de retorno de chamada não estiver fechado, a criação do perfil da fase de finalização não ocorrerá.

**Ferramentas de análise de perfil do Python**

O Debugger é compatível com a criação de perfil do Python com duas ferramentas de criação de perfil:
+ cProfile: O criador de perfil padrão do Python. O cProfile coleta métricas da estrutura sobre o tempo de CPU para cada função chamada quando a criação de perfil foi ativada.
+ Pyinstrument: Este é um criador de perfil Python de baixa sobrecarga que amostra eventos de criação de perfil a cada milissegundo.

Para saber mais sobre as opções de criação de perfil do Python e o que é coletado, consulte [Monitoramento padrão do sistema e a criação de perfil personalizado de framework com diferentes opções de criação de perfil](debugger-configure-framework-profiling-options.md).

Os seguintes métodos das classes`PythonProfileAnalysis`, `cProfileAnalysis`, `PyinstrumentAnalysis` são fornecidos para buscar e analisar os dados de criação de perfil do Python: Cada função carrega os dados mais recentes do URI padrão do S3.

```
from smdebug.profiler.analysis.python_profile_analysis import PythonProfileAnalysis, cProfileAnalysis, PyinstrumentAnalysis
```

Para definir objetos de criação de perfil do Python para análise, use as PyinstrumentAnalysis classes cProfileAnalysis ou conforme mostrado no código de exemplo a seguir. Ele mostra como definir um objeto `cProfileAnalysis` e, se você quiser usar `PyinstrumentAnalysis`, tem que substituir o nome da classe.

```
python_analysis = cProfileAnalysis(
    local_profile_dir=tf_python_stats_dir, 
    s3_path=tj.profiler_s3_output_path
)
```

Os métodos a seguir estão disponíveis para as `PyinstrumentAnalysis` classes `cProfileAnalysis` e buscarem os dados estatísticos de perfil do Python:
+ `python_analysis.fetch_python_profile_stats_by_time(start_time_since_epoch_in_secs, end_time_since_epoch_in_secs)`: Assume a hora de início e a hora de término e retorna as estatísticas de função das estatísticas da etapa cujos horários de início ou término se sobrepõem ao intervalo fornecido.
+ `python_analysis.fetch_python_profile_stats_by_step(start_step, end_step, mode, start_phase, end_phase)`: Assume uma etapa inicial e uma etapa final e retorna as estatísticas da função de todas as estatísticas da etapa em que o perfil `step` satisfaz `start_step <= step < end_step`. 
  + `start_step` e `end_step` (str): Especifique a etapa inicial e a etapa final para buscar os dados de estatísticas de perfil do Python.
  + `mode` (str): Especifique o modo de trabalho de treinamento usando a classe do `PythonProfileModes` enumerador. O padrão é `PythonProfileModes.TRAIN`. As opções disponíveis são fornecidas na seção [Modos e fases de treinamento para criação de perfil em Python](#debugger-access-data-python-profiling-modes).
  + `start_phase`(str): Especifique a fase inicial nas etapas de destino usando a classe `StepPhase` do enumerador. Esse parâmetro permite a criação de perfis entre as diferentes fases do treinamento. O padrão é `StepPhase.STEP_START`. As opções disponíveis são fornecidas na seção [Modos e fases de treinamento para criação de perfil em Python](#debugger-access-data-python-profiling-phases).
  + `end_phase`(str): Especifique a fase final nas etapas de destino usando a classe `StepPhase` do enumerador. Esse parâmetro configura a fase final do treinamento. As opções disponíveis são as mesmas do parâmetro `start_phase`. O padrão é `StepPhase.STEP_END`. As opções disponíveis são fornecidas na seção [Modos e fases de treinamento para criação de perfil em Python](#debugger-access-data-python-profiling-phases).
+ `python_analysis.fetch_profile_stats_between_modes(start_mode, end_mode)`: Busca estatísticas do perfil do Python entre os modos inicial e final.
+ `python_analysis.fetch_pre_step_zero_profile_stats()`: Busca as estatísticas da criação de perfil do Python até a etapa 0.
+ `python_analysis.fetch_post_hook_close_profile_stats()`: Busca estatísticas do perfil do Python depois que o hook é fechado.
+ `python_analysis.list_profile_stats()`— Retorna uma DataFrame das estatísticas de criação de perfil do Python. Cada linha contém os metadados de cada instância de criação de perfil e o arquivo de estatísticas correspondente (um por etapa).
+ `python_analysis.list_available_node_ids()`— Retorna uma lista do nó disponível IDs para as estatísticas de criação de perfil do Python.

Os métodos específicos da classe `cProfileAnalysis`:
+  `fetch_profile_stats_by_training_phase()`: Busca e agrega as estatísticas de criação de perfil do Python para todas as combinações possíveis dos modos inicial e final. Por exemplo, se as fases de treinamento e validação forem concluídas enquanto a criação de perfil detalhada estiver ativada, as combinações serão `(PRE_STEP_ZERO, TRAIN)`, `(TRAIN, TRAIN)`, `(TRAIN, EVAL)`, `(EVAL, EVAL)` e `(EVAL, POST_HOOK_CLOSE)`, Todos os arquivos de estatísticas em cada uma dessas combinações são agregados.
+  `fetch_profile_stats_by_job_phase()`: Busca e agrega as estatísticas de criação de perfil do Python por fase do trabalho. As fases do trabalho são `initialization` (criação de perfil até a etapa 0), `training_loop` (treinamento e validação) e `finalization` (criação de perfil após o fechamento do hook).