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 de código para configurar el enlace del depurador
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.
Temas
Ejemplos de cuadernos de visualización de tensores
Los siguientes dos ejemplos de cuaderno muestran un uso avanzado del depurador de Amazon SageMaker para visualizar tensores. El depurador proporciona una visión transparente del entrenamiento de modelos de aprendizaje profundo.
-
Análisis interactivo de tensores en el cuaderno de SageMaker Studio con MXNet
Este ejemplo de cuaderno muestra cómo visualizar los tensores guardados con el depurador de Amazon SageMaker. 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 entrenamiento con una red neuronal mal configurada y utilizará el depurador Amazon SageMaker para agregar y analizar tensores, entre ellos, gradientes, salidas de activación y ponderaciones. 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.
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 desde el entrenamiento del modelo MxNet
Este ejemplo de cuaderno muestra cómo guardar y visualizar tensores desde un trabajo de entrenamiento del modelo MxNet Gluon mediante el depurador de Amazon SageMaker. Verá que el depurador está configurado para guardar todos los tensores en un bucket de S3 y recupera las salidas de activación ReLu para la visualización. La siguiente figura muestra una visualización tridimensional de las salidas 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.
En este cuaderno, la clase
TensorPlotimportada desdetensor_plot.pyestá diseñada para trazar redes neuronales convolucionales (CNN) que toman imágenes bidimensionales para las entradas. El scripttensor_plot.pyviene proporcionado con el cuaderno para recuperar tensores mediante el depurador y visualizar la 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 de tensores en tiempo real en un cuaderno de SageMaker con MXNet
En este ejemplo, se explica cómo instalar los componentes necesarios para emitir tensores en un trabajo de entrenamiento de Amazon SageMaker y cómo utilizar las operaciones de la API del depurador para acceder a esos tensores mientras se está realizando el entrenamiento. Un modelo CNN de gluones se entrena en 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.
Guardado de tensores utilizando colecciones integradas del depurador
Puede usar colecciones integradas de tensores usando la API CollectionConfig y guardarlas usando la API DebuggerHookConfig. El siguiente ejemplo muestra cómo utilizar la configuración predeterminada de las configuraciones del enlace del depurador para construir un estimador de SageMaker AI TensorFlow. También puede utilizarlo para los estimadores MXNet, PyTorch y XGBoost.
nota
En el siguiente código de ejemplo, el parámetro s3_output_path es opcional para DebuggerHookConfig es opcional. Si no lo especifica, el depurador guarda los tensores en s3://<output_path>/debug-output/, donde <output_path> es la ruta de salida predeterminada de los trabajos de entrenamiento de 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
Guardado de tensores modificando colecciones integradas del depurador
Puede modificar las colecciones integradas del depurador mediante la operación de la API CollectionConfig. El siguiente ejemplo muestra cómo modificar la colección integrada losses y construir un estimador de SageMaker AI TensorFlow. También puede usarlo para los estimadores MXNet, PyTorch y 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 los parámetros CollectionConfig, consulte la API Debugger CollectionConfig
Guardado de tensores utilizando colecciones personalizadas del depurador
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 los estimadores TensorFlow, MXNet, PyTorch y XGBoost.
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 los parámetros CollectionConfig, consulte Debugger CollectionConfig