Notebook di esempio ed esempi di codice per configurare Debugger hook - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Notebook di esempio ed esempi di codice per configurare Debugger hook

Le sezioni seguenti forniscono notebook ed esempi di codice su come utilizzare l’hook Debugger per salvare, accedere e visualizzare i tensori di output.

Notebook di esempio di visualizzazione Tensor

I seguenti due esempi di notebook mostrano l'uso avanzato di Amazon SageMaker Debugger per la visualizzazione dei tensori. Debugger offre una visione trasparente dell'addestramento dei modelli di deep learning.

  • Analisi interattiva dei tensori in Studio Notebook con SageMaker MXNet

    Questo esempio di notebook mostra come visualizzare i tensori salvati utilizzando Amazon Debugger. SageMaker Visualizzando i tensori, è possibile vedere come cambiano i valori del tensore durante l'addestramento degli algoritmi di deep learning. Questo notebook include un corso di formazione con una rete neurale mal configurata e utilizza Amazon SageMaker Debugger per aggregare e analizzare tensori, inclusi gradienti, output di attivazione e pesi. Ad esempio, il grafico seguente mostra la distribuzione dei gradienti di un livello convoluzionale che soffre di un problema di gradiente di fuga.

    Un grafico che riporta la distribuzione dei gradienti.

    questo notebook illustra anche come una buona impostazione iniziale dell'iperparametro migliora il processo di addestramento generando gli stessi grafici di distribuzione del tensore.

  • Visualizzazione e debug dei tensori da Model Training MXNet

    Questo esempio di notebook mostra come salvare e visualizzare i tensori da un processo di formazione MXNet sul modello Gluon utilizzando Amazon Debugger. SageMaker Illustra che Debugger è impostato per salvare tutti i tensori in un bucket Amazon S3 e recupera gli output di attivazione per la visualizzazione. ReLu La figura seguente mostra una visualizzazione tridimensionale degli output di attivazione. ReLu La combinazione di colori è impostata affinché il blu indichi un valore vicino a 0 e il giallo dei valori vicini a 1.

    Visualizzazione degli output di attivazione ReLU

    In questo notebook, la TensorPlot classe importata da tensor_plot.py è progettata per tracciare reti neurali convoluzionali (CNNs) che utilizzano immagini bidimensionali come input. Lo tensor_plot.py script fornito con il notebook recupera i tensori utilizzando Debugger e visualizza il. CNN È possibile eseguire questo notebook su SageMaker Studio per riprodurre la visualizzazione dei tensori e implementare il proprio modello di rete neurale convoluzionale.

  • Analisi tensoriale in tempo reale in un notebook con SageMaker MXNet

    Questo esempio ti guida nell'installazione dei componenti necessari per l'emissione di tensori in un processo di SageMaker formazione di Amazon e nell'utilizzo API delle operazioni di Debugger per accedere a tali tensori durante l'addestramento. Un modello di CNN gluoni viene addestrato sul set di dati Fashion. MNIST Mentre il processo è in esecuzione, vedrai come Debugger recupera gli output di attivazione del primo livello convoluzionale da ciascuno dei 100 batch e li visualizza. Inoltre, questo ti mostrerà come visualizzare i pesi una volta completato il processo.

Salva i tensori usando le raccolte integrate di Debugger

È possibile utilizzare raccolte di tensori integrate utilizzando e salvarle utilizzando. CollectionConfig API DebuggerHookConfig API L'esempio seguente mostra come utilizzare le impostazioni predefinite delle configurazioni degli hook di Debugger per costruire uno stimatore. SageMaker TensorFlow Puoi utilizzarlo anche per, e estimatori. MXNet PyTorch XGBoost

Nota

Nel seguente codice di esempio, il parametro s3_output_path per DebuggerHookConfig è facoltativo. Se non lo specificate, Debugger salva i tensori ins3://<output_path>/debug-output/, dove <output_path> è il percorso di output predefinito dei lavori di formazione. SageMaker Per esempio:

"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()

Per visualizzare un elenco delle raccolte integrate di Debugger, consulta Raccolte integrate di Debugger.

Salva i tensori modificando le raccolte integrate di Debugger

È possibile modificare le raccolte integrate del Debugger utilizzando l'operazione. CollectionConfig API L'esempio seguente mostra come modificare la losses raccolta integrata e costruire uno stimatore. SageMaker TensorFlow Puoi anche usarlo perMXNet, PyTorch e stimatori. 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()

Per un elenco completo dei CollectionConfig parametri, consulta CollectionConfig APIDebugger.

Salva i tensori usando le raccolte personalizzate di Debugger

È inoltre possibile scegliere di salvare una quantità ridotta di tensori anziché i tensori completi, ad esempio, se si desidera ridurre la quantità di dati salvati nel bucket Amazon S3. Nell'esempio seguente viene illustrato come personalizzare la configurazione dell'hook di Debugger per specificare i tensori di destinazione che si desidera salvare. Puoi usarlo per, TensorFlow, MXNet e stimatori. PyTorch 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()

Per un elenco completo dei CollectionConfig parametri, consulta CollectionConfigDebugger.