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.
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
-
Configure un objeto de configuración
tensorboard_output_configpara guardar la salida de TensorBoard con la claseTensorBoardOutputConfigdel depurador. Para el parámetros3_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ámetrocontainer_local_output_path, sino que se establece en la ruta local/opt/ml/output/tensorspredeterminada.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
TensorBoardOutputConfigen el Amazon SageMaker Python SDK. -
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
weightscada 500 pasos (el valorsave_intervalpredeterminado para guardar las colecciones de tensores es 500) y los parámetrosbiascada 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
CollectionConfigyDebuggerHookConfigdel depurador en el Amazon SageMaker Python SDK. -
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
estimatoryEstimatorpor 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 sonTensorFlow,PyTorchyMXNet.from sagemaker.estimatorimportEstimatorestimator =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().
-
-
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() -
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}/ -
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/fiten el directorio de trabajo actual de la instancia de su cuaderno.!aws s3 cp --recursive {tensorboard_output_path}./logs/fit -
Comprima el directorio de archivos en un archivo TAR para descargarlo en su máquina local.
!tar -cf logs.tar logs -
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.