As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplos de Cadernos e exemplos de código para configurar o Debugger Hook
As seções a seguir fornecem cadernos e exemplos de código de como usar o hook do Debugger para salvar, acessar e visualizar tensores de saída.
Tópicos
Cadernos de exemplo da visualização do tensor
Os dois exemplos de caderno a seguir mostram o uso avançado do Amazon SageMaker Debugger para visualizar tensores. O Debugger fornece uma visão transparente do treinamento de modelos de aprendizado profundo.
-
Análise interativa de tensores no caderno do SageMaker Studio com MXNet
Este exemplo de caderno mostra como visualizar os tensores salvos usando o Amazon SageMaker Debugger. Com a visualização dos tensores, você pode ver como os valores dos tensores mudam ao treinar algoritmos de aprendizado profundo. Esse caderno inclui um trabalho de treinamento com uma rede neural configurada inadequadamente e usará o Amazon SageMaker Debugger para agregar e analisar tensores, incluindo gradientes, saídas de ativação e pesos. Por exemplo, o gráfico a seguir mostra a distribuição de gradientes de uma camada convolucional que está sofrendo de um problema de desaparecimento de gradiente.
Esse caderno também ilustra como uma boa configuração inicial de hiperparâmetros aprimora o processo de treinamento gerando os mesmos gráficos de distribuição de tensores.
-
Visualizar e depurar tensores no treinamento de modelos do MXNet
Esse exemplo de caderno mostra como salvar e visualizar tensores de um trabalho de treinamento de modelo do MXNet Gluon usando o Amazon SageMaker Debugger. Ele ilustra que o Debugger está configurado para salvar todos os tensores em um bucket do Amazon S3 e recuperar as saídas de ativação do ReLu para a visualização. A figura a seguir mostra uma visualização tridimensional das saídas de ativação ReLu. O esquema de cores está definido como azul para indicar valores próximos a 0 e amarelo para indicar valores próximos a 1.
Nesse caderno, a classe importada
TensorPlotdetensor_plot.pyé projetada para plotar redes neurais convolucionais (CNNs) que usam imagens bidimensionais como entradas. O scripttensor_plot.pyfornecido com o caderno recupera os tensores usando o Debugger e visualiza a CNN. É possível executar esse caderno no SageMaker Studio para reproduzir a visualização do tensor e implementar seu próprio modelo de rede neural convolucional. -
Análise de tensores em tempo real em um caderno SageMaker com MXNet
Este exemplo orienta você na instalação dos componentes necessários para a emissão de tensores em um trabalho de treinamento do Amazon SageMaker e no uso das operações da API Debugger para acessar esses tensores durante a execução do treinamento. Um modelo CNN de glúon é treinado no conjunto de dados Fashion MNIST. Enquanto a tarefa estiver em execução, você verá como o Debugger recupera as saídas de ativação da primeira camada convolucional de cada um dos 100 lotes e as visualiza. Além disso, isso mostrará como visualizar os pesos após a conclusão do trabalho.
Salvar tensores usando coleções integradas do Depurador
Você pode usar coleções integradas de tensores usando a API CollectionConfig e salvá-las usando a API DebuggerHookConfig. O exemplo a seguir mostra como usar as definições padrão das configurações de hook do Debugger para criar um estimador do TensorFlow no SageMaker AI. Você também pode utilizar isso para estimadores MXNet, PyTorch e XGBoost.
nota
No código de exemplo a seguir, o parâmetro s3_output_path para DebuggerHookConfig é opcional. Se você não especificar, o Debugger salvará os tensores s3://<output_path>/debug-output/, onde <output_path> é o caminho de saída padrão dos trabalhos de treinamento do SageMaker. Por exemplo:
"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 uma lista de coleções integradas do Debugger, consulte Coleções internas do Debugger
Salvar tensores usando coleções integradas modificadas do Depurador
Você pode modificar as coleções integradas do Debugger usando a operação da API CollectionConfig. O exemplo a seguir mostra como ajustar a coleção losses integrada e criar um estimador do TensorFlow no SageMaker AI. Você também pode usar isso para estimadores MXNet, PyTorch e 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 obter uma lista completa de parâmetros ajustáveisCollectionConfig, consulte a API do Depurador CollectionConfig
Salvar tensores usando as coleções personalizadas do Depurador
Também é possível salvar um número reduzido de tensores em vez do conjunto completo de tensores, (por exemplo, se quiser reduzir a quantidade de dados salvos no bucket do Amazon S3). O exemplo a seguir mostra como personalizar a configuração de hook do Debugger para especificar os tensores de destino que você deseja salvar. Você também pode usar isso para estimadores TensorFlow, MXNet, PyTorch e 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 obter uma lista completa de parâmetros ajustáveis CollectionConfig, consulte o Debugger CollectionConfig