Visualización de los tensores de salida del depurador de Amazon SageMaker en TensorBoard - Amazon SageMaker AI

Visualización de los tensores de salida del depurador de Amazon SageMaker en TensorBoard

importante

Esta página ha quedado obsoleta en favor de Amazon SageMaker AI con TensorBoard, que proporciona una experiencia completa de TensorBoard integrada con el entrenamiento de SageMaker y las funciones de control de acceso de dominio de SageMaker. Para obtener más información, consulte TensorBoard en Amazon SageMaker AI.

Utilice el depurador de SageMaker para crear archivos tensoriales de salida que sean compatibles con TensorBoard. Cargue los archivos para visualizarlos en TensorBoard y analice sus trabajos de entrenamiento de SageMaker. El depurador genera automáticamente archivos tensoriales de salida que son compatibles con TensorBoard. Para cualquier configuración de enlace que personalice para guardar los tensores de salida, el depurador tiene la flexibilidad de crear resúmenes escalares, distribuciones e histogramas que puede importar a TensorBoard.

Un diagrama de arquitectura del mecanismo de almacenamiento del tensor de salida del depurador.

Puede habilitar esto pasando los objetos DebuggerHookConfig y TensorBoardOutputConfig a un estimator.

El siguiente procedimiento explica cómo guardar escalares, pesos y sesgos como tensores, histogramas y distribuciones completos que pueden visualizarse con TensorBoard. El depurador los guarda en la ruta local del contenedor de entrenamiento (la ruta predeterminada es /opt/ml/output/tensors) y los sincroniza con las ubicaciones de Amazon S3 transferidas a través de los objetos de configuración de salida del depurador.

Guardar archivos de tensores de salida compatibles con TensorBoard mediante el depurador
  1. Configure un objeto de configuración tensorboard_output_config para guardar la salida de TensorBoard con la clase TensorBoardOutputConfig del depurador. Para el parámetro s3_output_path, especifique el bucket de S3 predeterminado de la sesión actual de SageMaker AI o el bucket de S3 preferido. Este ejemplo no se añade el parámetro container_local_output_path, sino que se establece en la ruta local /opt/ml/output/tensors predeterminada.

    import sagemaker from sagemaker.debugger import TensorBoardOutputConfig bucket = sagemaker.Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )

    Para obtener información adicional, consulte la API TensorBoardOutputConfig en el Amazon SageMaker Python SDK.

  2. Configure el enlace del depurador y personalice los valores de los parámetros del enlace. Por ejemplo, el siguiente código configura un enlace de depuración para guardar todas las salidas escalares cada 100 pasos en las fases de entrenamiento y 10 pasos en las fases de validación, los parámetros weights cada 500 pasos (el valor save_interval predeterminado para guardar las colecciones de tensores es 500) y los parámetros bias cada 10 pasos globales hasta que el paso global llegue a 500.

    from sagemaker.debugger import CollectionConfig, DebuggerHookConfig hook_config = DebuggerHookConfig( hook_parameters={ "train.save_interval": "100", "eval.save_interval": "10" }, collection_configs=[ CollectionConfig("weights"), CollectionConfig( name="biases", parameters={ "save_interval": "10", "end_step": "500", "save_histogram": "True" } ), ] )

    Para obtener más información sobre las API de configuración del depurador, consulte las API CollectionConfig y DebuggerHookConfig del depurador en el Amazon SageMaker Python SDK.

  3. Construya un estimador de SageMaker AI con los parámetros del depurador pasando los objetos de configuración. La siguiente plantilla de ejemplo muestra cómo crear un estimador genérico de SageMaker AI. Puede sustituir estimator y Estimator por otras clases principales de estimador de marcos de trabajo de SageMaker AI y clases de estimador. Los estimadores del marco de SageMaker AI disponibles para esta funcionalidad son TensorFlow, PyTorch y MXNet.

    from sagemaker.estimator import Estimator estimator = Estimator( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()

    El método estimator.fit() inicia un trabajo de entrenamiento y el depurador escribe los archivos tensoriales de salida en tiempo real en la ruta de salida del depurador S3 y en la ruta de salida del TensorBoard S3. Para recuperar las rutas de salida, utilice los siguientes métodos de estimador:

    • Para la ruta de salida del depurador S3, utilice estimator.latest_job_debugger_artifacts_path().

    • Para la ruta de salida de TensorBoard S3, utilice estimator.latest_job_tensorboard_artifacts_path().

  4. Una vez finalizado el entrenamiento, compruebe los nombres de los tensores de salida guardados:

    from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names()
  5. Compruebe datos de salida de TensorBoard en Amazon S3:

    tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/
  6. Descargue los datos de salida de TensorBoard a su instancia de cuaderno. Por ejemplo, el siguiente comando AWS CLI descarga los archivos de TensorBoard en /logs/fit en el directorio de trabajo actual de la instancia de su cuaderno.

    !aws s3 cp --recursive {tensorboard_output_path} ./logs/fit
  7. Comprima el directorio de archivos en un archivo TAR para descargarlo en su máquina local.

    !tar -cf logs.tar logs
  8. Descargue y extraiga el archivo TAR TensorBoard en un directorio de su dispositivo, inicie un servidor de cuaderno de Jupyter, abra un cuaderno nuevo y ejecute la aplicación TensorBoard.

    !tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit

La siguiente captura de pantalla animada ilustra los pasos 5 a 8. Muestra cómo descargar el archivo TAR TensorBoard del depurador y cómo cargarlo en un cuaderno de Jupyter en su dispositivo local.

Animación de cómo descargar y cargar el archivo TensorBoard del depurador en su máquina local.