Preparación de un trabajo de entrenamiento para recopilar los datos de salida de TensorBoard - Amazon SageMaker AI

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.

Preparación de un trabajo de entrenamiento para recopilar los datos de salida de TensorBoard

Un trabajo de entrenamiento típico para machine learning en SageMaker AI consta de dos pasos principales: la preparación de un script de entrenamiento y la configuración de un objeto estimator de SageMaker AI del SageMaker AI Python SDK. En esta sección, conocerá los cambios necesarios para recopilar datos compatibles con TensorBoard de los trabajos de entrenamiento de SageMaker.

Requisitos previos

En la siguiente lista se muestran los requisitos previos para empezar a utilizar SageMaker AI con TensorBoard.

  • Dominio de SageMaker AI configurado con Amazon VPC en la cuenta de AWS

    Para obtener instrucciones sobre cómo configurar un dominio, consulte Onboard to Amazon SageMaker AI domain using quick setup. También debe agregar perfiles de usuario de dominio para que los usuarios individuales puedan acceder a TensorBoard con SageMaker AI. Para obtener más información, consulte Adición de perfiles de usuario.

  • La siguiente lista indica el conjunto mínimo de permisos para usar TensorBoard en SageMaker AI.

    • sagemaker:CreateApp

    • sagemaker:DeleteApp

    • sagemaker:DescribeTrainingJob

    • sagemaker:Search

    • s3:GetObject

    • s3:ListBucket

Paso 1: modificación del script de entrenamiento con las herramientas auxiliares de TensorBoard de código abierto

Asegúrese de determinar qué escalares y tensores de salida desea recopilar, y modifique las líneas de código del script de entrenamiento con cualquiera de las siguientes herramientas: TensorBoardX, TensorFlow Summary Writer, PyTorch Summary Writer o SageMaker Debugger.

Asegúrese también de especificar la ruta de salida de datos de TensorBoard como el directorio de registro (log_dir) para la devolución de llamadas en el contenedor de entrenamiento.

Para obtener más información sobre las devoluciones de llamadas por marco, consulte los siguientes recursos.

Paso 2: creación de un objeto de estimador de entrenamiento de SageMaker con la configuración de salida de TensorBoard

Use sagemaker.debugger.TensorBoardOutputConfig al configurar un estimador de marco de SageMaker AI. Esta API de configuración asigna el bucket de S3 que especifica para guardar los datos de TensorBoard con la ruta local en el contenedor de entrenamiento (/opt/ml/output/tensorboard). Transfiere el objeto del módulo al parámetro tensorboard_output_config de la clase estimator. En el siguiente fragmento de código, se muestra un ejemplo de cómo preparar un estimador de TensorFlow con el parámetro de configuración de salida de TensorBoard.

nota

En este ejemplo, se presupone que utiliza el SageMaker Python SDK. Si utiliza la API de SageMaker de nivel bajo, debe incluir lo siguiente en la sintaxis de solicitud de la API CreateTrainingJob.

"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "s3_output_bucket" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "s3_output_bucket", "sagemaker-output", "date_str", "your-training_job_name" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py", source_dir="src", role=role, image_uri=image_uri, instance_count=1, instance_type="ml.c5.xlarge", base_job_name="your-training_job_name", tensorboard_output_config=tensorboard_output_config, hyperparameters=hyperparameters )
nota

La aplicación TensorBoard no ofrece compatibilidad inmediata con los trabajos de ajuste de hiperparámetros de SageMaker AI, ya que la API CreateHyperParameterTuningJob no está integrada con la configuración de salida de TensorBoard para la asignación. Para usar la aplicación TensorBoard para trabajos de afinación de hiperparámetros, debe escribir el código para cargar métricas en Amazon S3 en su script de entrenamiento. Una vez que las métricas se cargan en un bucket de Amazon S3, puede cargar el bucket en la aplicación TensorBoard de SageMaker AI.