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á.
Use TensorBoard para depurar e analisar trabalhos de treinamento na Amazon SageMaker
O Amazon SageMaker with TensorBoard é um recurso da Amazon SageMaker que traz as ferramentas de visualização do TensorBoard
nota
Esse recurso serve para treinar e depurar modelos de aprendizado profundo usando a PyTorch estrutura or. TensorFlow
Para cientistas de dados
O treinamento de modelos grandes pode ter problemas científicos que exigem que os cientistas de dados os depurem e resolvam a fim de melhorar a convergência do modelo e estabilizar os processos de gradiente descendente.
Quando você encontra problemas de treinamento do modelo, como perda não convergente ou desaparecimento ou explosão de pesos e gradientes, você precisa acessar os dados do tensor para aprofundar e analisar os parâmetros do modelo, os escalares e quaisquer métricas personalizadas. Usando SageMaker com TensorBoard, você pode visualizar os tensores de saída do modelo extraídos dos trabalhos de treinamento. Ao experimentar diferentes modelos, várias execuções de treinamento e hiperparâmetros de modelo, você pode selecionar vários trabalhos de treinamento TensorBoard e compará-los em um só lugar.
Para administradores
Por meio da página TensorBoard inicial no SageMaker console ou no SageMaker domínio, você pode gerenciar os usuários do TensorBoard aplicativo se for administrador de uma AWS conta ou SageMaker domínio. Cada usuário do domínio pode acessar seu próprio TensorBoard aplicativo com as permissões concedidas. Como administrador de SageMaker domínio e usuário do domínio, você pode criar e excluir o TensorBoard aplicativo com o nível de permissão que você tem.
Estruturas suportadas e Regiões da AWS
Esse recurso é compatível com as seguintes estruturas de aprendizado de máquina e Regiões da AWS.
Frameworks
-
PyTorch
-
TensorFlow
-
Transformadores Hugging Face
Regiões da AWS
-
Leste dos EUA (Norte da Virgínia) (
us-east-1
) -
Leste dos EUA (Ohio) (
us-east-2
) -
Oeste dos EUA (Oregon) (
us-west-2
) -
Europa (Frankfurt) (
eu-central-1
) -
Europa (Irlanda) (
eu-west-1
)
nota
A Amazon SageMaker TensorBoard executa o TensorBoard aplicativo em uma ml.r5.large
instância e incorre em cobranças após o nível SageMaker gratuito ou o período de teste gratuito do recurso. Para obter mais informações, consulte Amazon SageMaker Pricing
Pré-requisitos
A lista a seguir mostra os pré-requisitos para começar a usar. SageMaker TensorBoard
-
Um SageMaker domínio configurado com a Amazon VPC em sua AWS conta.
Para obter instruções sobre como configurar um domínio, consulte Integrar o SageMaker domínio da Amazon usando a configuração rápida. Você também precisa adicionar perfis de usuário de domínio para que usuários individuais TensorBoard acessem o on SageMaker. Para obter mais informações, consulte Adicionar e remover perfis de usuário do SageMaker domínio.
-
A lista a seguir é o conjunto mínimo de permissões para uso TensorBoard em SageMaker.
-
sagemaker:CreateApp
-
sagemaker:DeleteApp
-
sagemaker:DescribeTrainingJob
-
sagemaker:Search
-
s3:GetObject
-
s3:ListBucket
-
Prepare um trabalho de treinamento com uma configuração TensorBoard de dados de saída
Um trabalho de treinamento típico para aprendizado profundo SageMaker consiste em duas etapas principais: preparar um script de treinamento e configurar um iniciador de trabalhos de SageMaker treinamento. Nesta seção, você pode verificar as alterações necessárias para coletar dados TensorBoard compatíveis do SageMaker Treinamento.
Etapa 1: Modifique o script de treinamento
Certifique-se de determinar quais tensores e escalares de saída coletar e modificar as linhas de código em seu script de treinamento usando qualquer uma das seguintes ferramentas: TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer ou SageMaker Debugger.
Além disso, certifique-se de especificar o caminho de saída de TensorBoard dados como o diretório de log (log_dir
) para retorno de chamada no contêiner de treinamento.
Para obter mais informações sobre retornos de chamada por estrutura, consulte os recursos a seguir.
-
Para PyTorch, use torch.utils.tensorboard. SummaryWriter
. Consulte também as seções Usando escalares TensorBoard in PyTorch e Log nos PyTorchtutoriais. Como alternativa, você pode usar o TensorBoardX Summary Writer . LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR)
-
Para TensorFlow, use o retorno de chamada nativo para TensorBoard tf.keras.callbacks. TensorBoard
. LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=tf.keras.callbacks.TensorBoard( log_dir=LOG_DIR, histogram_freq=1)
-
Para Transformers com PyTorch, você pode usar transformers.integrations. TensorBoardCallback
. Para Transformers com TensorFlow, use o
tf.keras.tensorboard.callback
e passe isso para o callback keras em transformers.dica
Também é possível usar um caminho de saída local de contêiner diferente. No entanto, emEtapa 2: Construir um lançador SageMaker de treinamento com configuração TensorBoard de dados, você deve mapear os caminhos corretamente SageMaker para pesquisar com êxito o caminho local e salvar os TensorBoard dados no bucket de saída do S3.
-
Para obter orientação sobre como modificar scripts de treinamento usando a biblioteca SageMaker Debugger Python, consulte. Etapa 1: Adapte seu script de treinamento para registrar um hook
Etapa 2: Construir um lançador SageMaker de treinamento com configuração TensorBoard de dados
Use o sagemaker.debugger.TensorBoardOutputConfig
ao configurar um estimador de SageMaker estrutura. Essa configuração API mapeia o bucket do S3 que você especifica para salvar TensorBoard dados com o caminho local no contêiner de treinamento (/opt/ml/output/tensorboard
). Passe o objeto do módulo para o parâmetro tensorboard_output_config
da classe do estimador. O trecho de código a seguir mostra um exemplo de preparação de um TensorFlow estimador com o TensorBoard parâmetro de configuração de saída.
nota
Este exemplo pressupõe que você use o SageMaker PythonSDK. Se você usar o nível baixo SageMaker API, inclua o seguinte na sintaxe da solicitação do. CreateTrainingJobAPI
"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
)
Como acessar TensorBoard em SageMaker
Você pode acessar TensorBoard por dois métodos: programaticamente usando o sagemaker.interactive_apps.tensorboard
módulo que gera um não assinado ou um pré-assinadoURL, ou usando a página TensorBoard inicial no console. SageMaker Depois de abrir TensorBoard, SageMaker executa o TensorBoard plug-in e encontra automaticamente todos os dados de saída do trabalho de treinamento em formato TensorBoard de arquivo compatível.
Tópicos
Abra TensorBoard usando o sagemaker.interactive_apps.tensorboard
módulo
O sagemaker.interactive_apps.tensorboard
módulo fornece uma função chamada get_app_url
que gera não assinados ou pré-assinados URLs para abrir o TensorBoard aplicativo em qualquer ambiente na SageMaker Amazon. EC2 Isso é para fornecer uma experiência unificada para usuários do Studio Classic e não do Studio Classic. Para o ambiente Studio, você pode abrir TensorBoard executando a get_app_url()
função como ela está ou também pode especificar um nome de trabalho para iniciar o rastreamento quando o TensorBoard aplicativo for aberto. Para ambientes que não sejam do Studio Classic, você pode abrir TensorBoard fornecendo suas informações de domínio e perfil de usuário para a função do utilitário. Com essa funcionalidade, independentemente de onde ou como você executa o código de treinamento e inicia trabalhos de treinamento, você pode acessar diretamente TensorBoard executando a get_app_url
função em seu notebook ou terminal Jupyter.
nota
Essa funcionalidade está disponível no SageMaker Python SDK v2.184.0 e versões posteriores. Para usar essa funcionalidade, certifique-se de atualizar o SDK executandopip
install sagemaker --upgrade
.
Tópicos
Opção 1: Para SageMaker Studio Classic
Se você estiver usando o SageMaker Studio Classic, poderá abrir diretamente o TensorBoard aplicativo ou recuperar um não assinado URL executando a get_app_url
função da seguinte maneira. Como você já está no ambiente Studio Classic e está conectado como usuário do domínio, get_app_url()
gera não assinado URL porque não é necessário se autenticar novamente.
Para abrir o TensorBoard aplicativo
O código a seguir abre automaticamente o TensorBoard aplicativo a partir do código não assinado URL que a get_app_url()
função retorna no navegador da Web padrão do seu ambiente.
from sagemaker.interactive_apps import tensorboard region = "
us-west-2
" app = tensorboard.TensorBoardApp(region) app.get_app_url( training_job_name="your-training_job_name
" # Optional. Specify the job name to track a specific training job )
Para recuperar um arquivo não assinado URL e abrir o aplicativo manualmente TensorBoard
O código a seguir imprime um código não assinado URL que você pode copiar para um navegador da Web e abrir o TensorBoard aplicativo.
from sagemaker.interactive_apps import tensorboard region = "
us-west-2
" app = tensorboard.TensorBoardApp(region) print("Navigate to the following URL:") print( app.get_app_url( training_job_name="your-training_job_name
", # Optional. Specify the name of the job to track. open_in_default_web_browser=False
# Set to False to print the URL to terminal. ) )
Observe que, se você executar as duas amostras de código anteriores fora do ambiente do SageMaker Studio Classic, a função retornará URL à página TensorBoard inicial no SageMaker console, pois elas não têm informações de login no seu domínio e perfil de usuário. Para criar um pré-assinadoURL, consulte a Opção 2 na seção a seguir.
Opção 2: Para ambientes que não sejam do Studio Classic
Se você usa ambientes que não são do Studio Classic, como a instância do SageMaker Notebook ou AmazonEC2, e deseja abrir TensorBoard diretamente do ambiente em que está, precisará gerar um URL pré-assinado com suas informações de domínio e perfil de usuário. Um pré-assinado URL é URL aquele que está conectado ao Amazon SageMaker Studio Classic enquanto URL está sendo criado com seu domínio e perfil de usuário e, portanto, tem acesso a todos os aplicativos e arquivos de domínio associados ao seu domínio. Para abrir TensorBoard por meio de um pré-assinadoURL, use a get_app_url
função com seu domínio e nome de perfil de usuário da seguinte forma.
Observe que essa opção exige que o usuário do domínio tenha a sagemaker:CreatePresignedDomainUrl
permissão. Sem a permissão, o usuário do domínio receberá um erro de exceção.
Importante
Não compartilhe nenhum pré-assinadoURLs. A get_app_url
função cria presignedURLs, que se autentica automaticamente com seu domínio e perfil de usuário e dá acesso a todos os aplicativos e arquivos associados ao seu domínio.
print( app.get_app_url( training_job_name="
your-training_job_name
", # Optional. Specify the name of the job to track. create_presigned_domain_url=True
, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id
", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name
", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False
, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )
dica
A get_app_url
função é executada SageMaker.Client.create_presigned_domain_url
create_presigned_domain_url
API cria um domínio pré-assinado URLs que expira em 300 segundos por padrão, o TensorBoard aplicativo pré-assinado URLs também expira em 300 segundos. Se você quiser estender o tempo de expiração, passe o argumento ExpiresInSeconds
para o argumento optional_create_presigned_url_kwargs
da função get_app_url
da seguinte maneira:
optional_create_presigned_url_kwargs={"ExpiresInSeconds":
1500
}
nota
Se alguma de suas entradas passadas para os argumentos de get_app_url
for inválida, a função exibirá URL a para a página TensorBoard inicial em vez de abrir o TensorBoard aplicativo. A mensagem de saída seria semelhante ao seguinte:
Navigate to the following URL: https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/tensor-board-landing
Abra TensorBoard usando a get_app_url
função como um método estimator
de classe
Se você estiver executando um trabalho de treinamento usando a estimator
classe do SageMaker Python SDK e tiver um objeto ativo da estimator
classe, também poderá acessar a get_app_url
função como um método de classeestimator
classe. Abra o TensorBoard aplicativo ou recupere um não assinado URL executando o get_app_url
método da seguinte maneira. O método de get_app_url
classe extrai o nome do trabalho de treinamento do estimador e abre o TensorBoard aplicativo com o trabalho especificado.
nota
Essa funcionalidade está disponível no SageMaker Python SDK v2.184.0 e versões posteriores. Para usar essa funcionalidade, certifique-se de atualizar o SDK executandopip
install sagemaker --upgrade
.
Tópicos
Opção 1: Para SageMaker Studio Classic
Para abrir o TensorBoard aplicativo
O código a seguir abre automaticamente o TensorBoard aplicativo a partir do método não assinado URL que o get_app_url()
método retorna no navegador padrão do seu ambiente.
estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD # Required. )
Para recuperar um arquivo não assinado URL e abrir o aplicativo manualmente TensorBoard
O código a seguir imprime um código não assinado URL que você pode copiar para um navegador da Web e abrir o TensorBoard aplicativo.
print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required. open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. ) )
Observe que, se você executar as duas amostras de código anteriores fora do ambiente do SageMaker Studio Classic, a função retornará URL à página TensorBoard inicial no SageMaker console, pois elas não têm informações de login no seu domínio e perfil de usuário. Para criar um pré-assinadoURL, consulte a Opção 2 na seção a seguir.
Opção 2: Para ambientes que não sejam do Studio Classic
Se você usa ambientes que não são do Studio Classic, como a instância do SageMaker Notebook e a AmazonEC2, e deseja gerar um pré-assinado URL para abrir o TensorBoard aplicativo, use o get_app_url
método com suas informações de domínio e perfil de usuário da seguinte forma.
Observe que essa opção exige que o usuário do domínio tenha a sagemaker:CreatePresignedDomainUrl
permissão. Sem a permissão, o usuário do domínio receberá um erro de exceção.
Importante
Não compartilhe nenhum pré-assinadoURLs. A get_app_url
função cria presignedURLs, que se autentica automaticamente com seu domínio e perfil de usuário e dá acesso a todos os aplicativos e arquivos associados ao seu domínio.
print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required create_presigned_domain_url=
True
, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id
", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name
", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )
Abra TensorBoard através do SageMaker console
Você também pode usar a interface do SageMaker console para abrir o TensorBoard aplicativo. Há duas opções para abrir o TensorBoard aplicativo pelo SageMaker console.
Tópicos
Opção 1: iniciar TensorBoard a partir da página de detalhes do domínio
Navegue até a página de detalhes do domínio
O procedimento a seguir mostra como navegar até a página de detalhes do domínio.
-
Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação à esquerda, escolha Configurações do administrador.
-
Em Configurações do administrador, escolha domínios.
-
Na lista de domínios, selecione o domínio no qual você deseja iniciar o TensorBoard aplicativo.
Executar um aplicativo de perfil de usuário
O procedimento a seguir mostra como iniciar um aplicativo Studio Classic que tem como escopo um perfil de usuário.
-
Na página de detalhes do domínio, escolha a guia Perfis de usuário.
-
Identifique o perfil de usuário para o qual você deseja iniciar o aplicativo Studio Classic.
-
Escolha Iniciar para o perfil de usuário selecionado e, em seguida, escolha TensorBoard.
Opção 2: iniciar TensorBoard a partir da página TensorBoard de destino
O procedimento a seguir descreve como iniciar um TensorBoard aplicativo a partir da TensorBoard página inicial.
-
Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação esquerdo, escolha TensorBoard.
-
Em Começar, selecione o domínio no qual você deseja iniciar o aplicativo Studio Classic. Se seu perfil de usuário pertencer apenas a um domínio, você não verá a opção de selecionar um domínio.
-
Selecione o perfil de usuário para o qual você deseja iniciar o aplicativo Studio Classic. Se não houver perfil de usuário no domínio, escolha Criar perfil de usuário. Para obter mais informações, consulte Remover perfis de usuário.
-
Escolha Abrir TensorBoard.
A captura de tela a seguir mostra a localização de TensorBoard no painel de navegação esquerdo do SageMaker console e a página TensorBoard inicial SageMaker com no painel principal.
Acesse e visualize os dados de saída do treinamento em TensorBoard
Você pode realizar uma análise on-line ou off-line carregando os tensores de saída coletados dos buckets S3 combinados com trabalhos de treinamento durante ou após o treinamento.
Quando você abre o TensorBoard aplicativo, TensorBoard abre com a guia Gerenciador de SageMaker dados. A captura de tela a seguir mostra a visualização completa da guia Gerenciador de SageMaker dados no TensorBoard aplicativo.
Na guia Gerenciador de SageMaker dados, você pode selecionar qualquer trabalho de treinamento e carregar dados TensorBoard de saída de treinamento compatíveis do Amazon S3.
-
Na seção Pesquisar trabalhos de treinamento, use os filtros para restringir a lista de trabalhos de treinamento que você deseja encontrar, carregar e visualizar.
-
Na seção Lista de trabalhos de treinamento, use as caixas de seleção para escolher os trabalhos de treinamento dos quais você deseja extrair dados e visualizar para depuração.
-
Escolha Adicionar trabalhos selecionados. Os trabalhos selecionados devem aparecer na seção Trabalhos de treinamento monitorados, conforme mostrado na captura de tela a seguir.
nota
A guia Gerenciador de SageMaker dados mostra somente os trabalhos de treinamento configurados com o TensorBoardOutputConfig
parâmetro. Verifique se você configurou o SageMaker estimador com esse parâmetro. Para obter mais informações, consulte Etapa 2: Construir um lançador SageMaker de treinamento com configuração TensorBoard de dados.
nota
As guias de visualização podem não aparecer se você estiver usando SageMaker com TensorBoard pela primeira vez ou se nenhum dado for carregado de um uso anterior. Depois de adicionar trabalhos de treinamento e esperar alguns segundos, atualize o visualizador escolhendo a seta circular no sentido horário no canto superior direito. As guias de visualização devem aparecer depois que os dados do trabalho forem carregados com êxito. Você também pode configurar a atualização automática usando o botão Configurações ao lado do botão de atualização no canto superior direito.
Explore os dados de resultados de treinamento visualizados em TensorBoard
Nas guias gráficas, você pode ver a lista dos trabalhos de treinamento carregados no painel esquerdo. Você também pode usar as caixas de seleção dos trabalhos de treinamento para mostrar ou ocultar visualizações. Os plug-ins TensorBoard dinâmicos são ativados dinamicamente, dependendo de como você configurou seu script de treinamento para incluir redatores de resumos e retornos de chamada de transmissão para coleção de tensores e escalares e, portanto, as guias gráficas também aparecem dinamicamente. As capturas de tela a seguir mostram exemplos de visualizações de cada guia com a visualização de dois trabalhos de treinamento que coletaram métricas para plug-ins de séries temporais, escalares, gráficos, distribuição e histogramas.
A visualização da TIME SERIES guia
A visualização da SCALARS guia
A visualização da GRAPHS guia
A visualização da DISTRIBUTIONS guia
A visualização da HISTOGRAMS guia
Excluir aplicativos não utilizados TensorBoard
Depois de concluir o monitoramento e a experimentação dos trabalhos em TensorBoard, encerre o TensorBoard aplicativo.
-
Abra o SageMaker console.
-
No painel de navegação à esquerda, escolha Configurações do administrador.
-
Em Configurações do administrador, escolha domínios.
-
Escolha o seu domínio.
-
Escolha seu perfil de usuário.
-
Em Aplicativos, escolha Excluir aplicativo para a TensorBoard linha.
-
Escolha Sim, excluir o aplicativo.
-
Digite
delete
no campo de texto e escolha Excluir. -
Uma mensagem azul deve aparecer na parte superior da tela: o padrão está sendo excluído.
Considerações
Considere o seguinte ao usar SageMaker com TensorBoard.
-
Você não pode compartilhar os TensorBoard aplicativos para fins de colaboração porque o SageMaker domínio não permite o compartilhamento de aplicativos entre usuários. Os usuários podem compartilhar os tensores de saída salvos em um bucket do S3, se tiverem acesso ao bucket.
-
Os plug-ins de visualização podem não aparecer quando você inicia o TensorBoard aplicativo pela primeira vez. Depois de selecionar trabalhos de treinamento no plug-in SageMaker Data Manager, o TensorBoard aplicativo carrega os TensorBoard dados e preenche os plug-ins de visualização.
-
O TensorBoard aplicativo é desligado automaticamente após 1 hora de inatividade. Se você quiser encerrar o aplicativo quando terminar de usá-lo, desligue-o manualmente TensorBoard para evitar pagar pela instância que o hospeda. Para obter instruções sobre como excluir o aplicativo, consulte Excluir aplicativos não utilizados TensorBoard .
-
O TensorBoard aplicativo foi SageMaker projetado para fornecer out-of-the-box suporte para trabalhos SageMaker de treinamento. Essa integração integrada permite um mapeamento contínuo entre o diretório local dentro do contêiner de treinamento e um bucket do Amazon S3, facilitado na camada.
CreateTrainingJob
API Com essa integração, você pode mapear facilmente os caminhos do diretório conforme descrito na seção Preparar um trabalho de treinamento com uma configuração de dados TensorBoard de saída.No entanto, observe que o TensorBoard aplicativo não fornece out-of-the-box suporte para trabalhos de ajuste de SageMaker hiperparâmetros, pois não
CreateHyperParameterTuningJob
APIestá integrado à configuração TensorBoard de saída do mapeamento. Para usar o TensorBoard aplicativo para trabalhos de ajuste de hiperparâmetros, você precisa escrever código para fazer o upload de métricas para o Amazon S3 em seu script de treinamento. Depois que as métricas são carregadas em um bucket do Amazon S3, você pode carregar o bucket no TensorBoard aplicativo em. SageMaker