Ejemplos de cuadernos y ejemplos de código para configurar Debugger Hook - Amazon SageMaker

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.

Ejemplos de cuadernos y ejemplos de código para configurar Debugger Hook

Las siguientes secciones proporcionan cuadernos y ejemplos de código sobre cómo usar el enlace del depurador para guardar, acceder y visualizar los tensores de salida.

Cuadernos de ejemplo de visualización de tensores

Los dos ejemplos de cuadernos siguientes muestran el uso avanzado de Amazon SageMaker Debugger para visualizar tensores. El depurador proporciona una visión transparente del entrenamiento de modelos de aprendizaje profundo.

  • Análisis tensorial interactivo en Studio Notebook con SageMaker MXNet

    Este ejemplo de cuaderno muestra cómo visualizar los tensores guardados con Amazon SageMaker Debugger. Al visualizar los tensores, podrá ver cómo cambian los valores del tensor mientras se entrena algoritmos de aprendizaje profundo. Este cuaderno incluye un trabajo de formación con una red neuronal mal configurada y utiliza Amazon SageMaker Debugger para agregar y analizar los tensores, incluidos los gradientes, los resultados de activación y los pesos. Por ejemplo, el gráfico siguiente muestra la distribución de gradientes de una capa convolucional que sufre un problema de desaparición de gradiente.

    Un gráfico que representa la distribución de los gradientes.

    Este cuaderno también ilustra cómo una buena configuración inicial de hiperparámetros mejora el proceso de entrenamiento al generar los mismos gráficos de distribución de tensores.

  • Visualización y depuración de tensores a partir del entrenamiento con modelos MXNet

    Este ejemplo de cuaderno muestra cómo guardar y visualizar los tensores de un trabajo de entrenamiento con un modelo MXNet Gluon con Amazon SageMaker Debugger. Muestra que Debugger está configurado para guardar todos los tensores en un bucket de Amazon S3 y recupera los resultados de ReLu activación para la visualización. La siguiente figura muestra una visualización tridimensional de los resultados de activación. ReLu La combinación de colores se establece en azul para indicar valores cercanos a 0 y en amarillo para indicar valores cercanos a 1.

    Una visualización de las salidas de activación ReLU

    En este cuaderno, la TensorPlot clase importada tensor_plot.py está diseñada para trazar redes neuronales convolucionales (CNNs) que toman imágenes bidimensionales como entradas. El tensor_plot.py script suministrado con el cuaderno recupera los tensores mediante Debugger y los visualiza. CNN Puede ejecutar este cuaderno en SageMaker Studio para reproducir la visualización del tensor e implementar su propio modelo de red neuronal convolucional.

  • Análisis tensorial en tiempo real en un cuaderno con SageMaker MXNet

    Este ejemplo lo guía a través de la instalación de los componentes necesarios para emitir tensores en un trabajo de SageMaker entrenamiento de Amazon y el uso de API las operaciones del Debugger para acceder a esos tensores mientras se ejecuta el entrenamiento. Un CNN modelo gluónico se entrena con el conjunto de datos Fashion. MNIST Mientras se ejecuta el trabajo, verá cómo el depurador recupera los resultados de activación de la primera capa convolucional de cada uno de los 100 lotes y los visualiza. Asimismo, esto le mostrará cómo visualizar las ponderaciones cuando haya concluido el trabajo.

Guarde los tensores con las colecciones integradas de Debugger

Puede usar colecciones integradas de tensores usando el CollectionConfig API y guardarlos usando el. DebuggerHookConfig API El siguiente ejemplo muestra cómo utilizar la configuración predeterminada de las configuraciones de los enlaces del Debugger para construir un SageMaker TensorFlow estimador. También puede utilizarla paraMXNet, PyTorch y estimadores. XGBoost

nota

En el siguiente código de ejemplo, el parámetro s3_output_path es opcional para DebuggerHookConfig es opcional. Si no lo especificas, Debugger guarda los tensores ens3://<output_path>/debug-output/, donde <output_path> es la ruta de salida predeterminada de los trabajos de entrenamiento. SageMaker Por ejemplo:

"s3://sagemaker-us-east-1-111122223333/sagemaker-debugger-training-YYYY-MM-DD-HH-MM-SS-123/debug-output"
import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # use Debugger CollectionConfig to call built-in collections collection_configs=[ CollectionConfig(name="weights"), CollectionConfig(name="gradients"), CollectionConfig(name="losses"), CollectionConfig(name="biases") ] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=sagemaker.Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-built-in-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

Para ver una lista de colecciones integradas en el depurador, consulte Colecciones integradas en el depurador.

Guarde los tensores modificando las colecciones integradas de Debugger

Puede modificar las colecciones integradas del Debugger mediante la operación. CollectionConfig API El siguiente ejemplo muestra cómo modificar la losses colección integrada y construir un SageMaker TensorFlow estimador. También puedes usarlo paraMXNet, PyTorch y estimadores. XGBoost

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # use Debugger CollectionConfig to call and modify built-in collections collection_configs=[ CollectionConfig( name="losses", parameters={"save_interval": "50"})] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=sagemaker.Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-modified-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

Para obtener una lista completa de CollectionConfig parámetros, consulte Debugger. CollectionConfig API

Guarde los tensores con las colecciones personalizadas de Debugger

También puede guardar una cantidad reducida de tensores en lugar de un conjunto completo de tensores; por ejemplo, si desea reducir la cantidad de datos guardados en el bucket de Amazon S3. En el ejemplo siguiente se muestra cómo personalizar la configuración del enlace del depurador para especificar los tensores que quiera guardar. Puede usarlo para TensorFlow, MXNet PyTorch, y XGBoost estimadores.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # use Debugger CollectionConfig to create a custom collection collection_configs=[ CollectionConfig( name="custom_activations_collection", parameters={ "include_regex": "relu|tanh", # Required "reductions": "mean,variance,max,abs_mean,abs_variance,abs_max" }) ] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=sagemaker.Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-custom-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

Para obtener una lista completa de CollectionConfig parámetros, consulte Debugger. CollectionConfig