Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceso a los datos de estadísticas de creación de perfiles de Python
La creación de perfiles de Python proporciona métricas del marco relacionadas con las funciones y los operadores de Python en sus scripts de entrenamiento y en los marcos de aprendizaje profundo de SageMaker IA.
Modos y fases de entrenamiento para la creación de perfiles en Python
A fin de elaborar perfiles de intervalos específicos durante el entrenamiento y segmentar las estadísticas de cada uno de estos intervalos, el depurador proporciona herramientas para establecer modos y fases.
Para los modos de entrenamiento, utilice la siguiente clase PythonProfileModes
:
from smdebug.profiler.python_profile_utils import PythonProfileModes
Esta clase proporciona las siguientes opciones.
-
PythonProfileModes.TRAIN
: úsela si quiere elaborar perfiles de los pasos previstos en la fase de entrenamiento. Esta opción de modo solo está disponible para TensorFlow. -
PythonProfileModes.EVAL
: úsela si quiere elaborar perfiles de los pasos previstos en la fase de evaluación. Esta opción de modo solo está disponible para TensorFlow. -
PythonProfileModes.PREDICT
: úsela si quiere elaborar perfiles de los pasos previstos en la fase de predicción. Esta opción de modo solo está disponible para TensorFlow. -
PythonProfileModes.GLOBAL
: úsela si desea elaborar perfiles de los pasos previstos en la fase global, lo que incluye las tres fases previas. Esta opción de modo solo está disponible para PyTorch. -
PythonProfileModes.PRE_STEP_ZERO
: úsela si desea elaborar perfiles de los pasos previstos en la fase de inicialización, antes de que comience el primer paso de entrenamiento del primer epoch. Esta fase incluye la presentación del trabajo inicial, la carga de los guiones de formación en las EC2 instancias, la preparación de las EC2 instancias y la descarga de los datos de entrada. Esta opción de modo está disponible tanto para como TensorFlow para. PyTorch -
PythonProfileModes.POST_HOOK_CLOSE
: úsela si desea elaborar perfiles de los pasos previstos en la fase de finalización, tras el trabajo de entrenamiento y tras cerrar el enlace del depurador. Esta fase incluye la elaboración de perfiles mientras se finalizan y completan los trabajos de entrenamiento. Esta opción de modo está disponible tanto para como TensorFlow para PyTorch.
Para las fases de entrenamiento, utilice la siguiente clase StepPhase
:
from smdebug.profiler.analysis.utils.python_profile_analysis_utils import StepPhase
Esta clase proporciona las siguientes opciones.
-
StepPhase.START
: se utiliza para especificar el punto de inicio de la fase de inicialización. -
StepPhase.STEP_START
: se utiliza para especificar el paso de inicio de la fase de entrenamiento. -
StepPhase.FORWARD_PASS_END
: se utiliza para especificar los pasos en los que termina la propagación hacia delante. Esta opción solo está disponible para PyTorch. -
StepPhase.STEP_END
: se utiliza para especificar los pasos finales de la fase de entrenamiento. Esta opción solo está disponible para TensorFlow. -
StepPhase.END
— Se utiliza para especificar el punto final de la fase de finalización (post-hook-close). Si el enlace de devolución de llamada no está cerrado, no se lleva a cabo la creación de perfiles de la fase de finalización.
Herramientas de Python para el análisis en la elaboración de perfiles
El depurador es compatible con la creación de perfiles de Python mediante dos herramientas de creación de perfiles:
-
cProfile: el generador de perfiles estándar de Python. cProfile recopila métricas del marco sobre el tiempo de CPU para cada función llamada cuando la creación de perfiles estaba habilitada.
-
Pyinstrument: un generador de perfiles de Python de bajo coste que muestrea eventos de creación de perfiles con una frecuencia de milisegundos.
Para obtener más información sobre las opciones de creación de perfiles de Python y lo que se recopila, consulte Supervisión del sistema predeterminada y creación de perfiles de marco personalizada con diferentes opciones de creación de perfiles.
Los siguientes métodos de las clases PythonProfileAnalysis
, cProfileAnalysis
y PyinstrumentAnalysis
se proporcionan para obtener y analizar los datos de creación de perfiles de Python. Cada función carga los datos más recientes del URI de S3 predeterminado.
from smdebug.profiler.analysis.python_profile_analysis import PythonProfileAnalysis, cProfileAnalysis, PyinstrumentAnalysis
Para configurar los objetos de creación de perfiles de Python para su análisis, utilice las PyinstrumentAnalysis clases cProfileAnalysis o como se muestra en el siguiente código de ejemplo. Muestra cómo configurar un objeto cProfileAnalysis
y, si desea usar PyinstrumentAnalysis
, cómo reemplazar el nombre de la clase.
python_analysis = cProfileAnalysis( local_profile_dir=tf_python_stats_dir, s3_path=tj.profiler_s3_output_path )
Hay los siguientes métodos disponibles para las clases PyinstrumentAnalysis
y cProfileAnalysis
, a fin de obtener los datos de las estadísticas de creación de perfiles de Python.
-
python_analysis.fetch_python_profile_stats_by_time(start_time_since_epoch_in_secs, end_time_since_epoch_in_secs)
: toma en cuenta la hora de inicio y la hora de finalización y devuelve las estadísticas de función de los pasos cuyas horas de inicio o finalización coinciden con el intervalo proporcionado. -
python_analysis.fetch_python_profile_stats_by_step(start_step, end_step, mode, start_phase, end_phase)
: incluye un paso de inicio y un paso final y devuelve las estadísticas de función de todas las estadísticas de paso cuyostep
perfilado cumpla constart_step <= step < end_step
.-
start_step
yend_step
(str): especifique el paso de inicio y el paso final para obtener los datos de las estadísticas de creación de perfiles de Python. -
mode
(str): especifique el modo del trabajo de entrenamiento mediante la clase enumeradoraPythonProfileModes
. El valor predeterminado esPythonProfileModes.TRAIN
. Las opciones disponibles se proporcionan en la sección Training Modes and Phases for Python Profiling. -
start_phase
(str): especifique la fase de inicio en los pasos objetivo mediante la clase enumeradoraStepPhase
. Este parámetro permite crear perfiles entre las diferentes fases del entrenamiento. El valor predeterminado esStepPhase.STEP_START
. Las opciones disponibles se proporcionan en la sección Training Modes and Phases for Python Profiling. -
end_phase
(str): especifique la fase final en los pasos objetivo mediante la clase enumeradoraStepPhase
. Este parámetro configura la fase final del entrenamiento. Las opciones disponibles son las mismas que las del parámetrostart_phase
. El valor predeterminado esStepPhase.STEP_END
. Las opciones disponibles se proporcionan en la sección Training Modes and Phases for Python Profiling.
-
-
python_analysis.fetch_profile_stats_between_modes(start_mode, end_mode)
: obtiene estadísticas de la creación de perfiles de Python entre los modos de inicio y final. -
python_analysis.fetch_pre_step_zero_profile_stats()
: obtiene las estadísticas de la creación de perfiles de Python hasta el paso 0. -
python_analysis.fetch_post_hook_close_profile_stats()
: obtiene las estadísticas de la creación de perfiles de Python después de cerrar el enlace. -
python_analysis.list_profile_stats()
— Devuelve una DataFrame de las estadísticas de creación de perfiles de Python. Cada fila contiene los metadatos de cada instancia de creación de perfiles y el archivo de estadísticas correspondiente (uno por paso). -
python_analysis.list_available_node_ids()
— Devuelve una lista de los nodos disponibles IDs para las estadísticas de creación de perfiles de Python.
Los métodos específicos de la clase cProfileAnalysis
.
-
fetch_profile_stats_by_training_phase()
: obtiene y agrega las estadísticas de creación de perfiles de Python para cada combinación posible de modos de inicio y finalización. Por ejemplo, si las fases de entrenamiento y validación se llevan a cabo con la creación de perfiles detallados habilitada, las combinaciones son(PRE_STEP_ZERO, TRAIN)
,(TRAIN, TRAIN)
,(TRAIN, EVAL)
,(EVAL, EVAL)
y(EVAL, POST_HOOK_CLOSE)
. Se agregan todos los archivos de estadísticas de cada una de estas combinaciones. -
fetch_profile_stats_by_job_phase()
: obtiene y agrega las estadísticas de creación de perfiles de Python por fase de trabajo. Las fases del trabajo soninitialization
(creación de perfiles hasta el paso 0),training_loop
(entrenamiento y validación) yfinalization
(creación de perfiles tras cerrar el enlace).