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
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. SageMaker
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 previsã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 gancho 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.
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 (pós-fechamento do gancho). Se o gancho 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 suporta 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 criação de perfil de estrutura personalizada com diferentes opções de criação de perfil.
Os seguintes métodos das classesPythonProfileAnalysis
, 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 perfilstep
satisfazstart_step <= step < end_step
.-
start_step
eend_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 doPythonProfileModes
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. -
start_phase
(str) – Especifique a fase inicial nas etapas de destino usando a classeStepPhase
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. -
end_phase
(str) – Especifique a fase final nas etapas de destino usando a classeStepPhase
do enumerador. Esse parâmetro configura a fase final do treinamento. As opções disponíveis são as mesmas do parâmetrostart_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.
-
-
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 gancho é 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 dos IDs de nós disponíveis 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ãoinitialization
(criação de perfil até a etapa 0),training_loop
(treinamento e validação) efinalization
(criação de perfil após o fechamento do gancho).