Visualize os tensores de saída do Amazon SageMaker Debugger no TensorBoard - SageMaker IA da Amazon

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á.

Visualize os tensores de saída do Amazon SageMaker Debugger no TensorBoard

Importante

Esta página foi substituída em favor do Amazon SageMaker AI com o TensorBoard, que oferece uma experiência abrangente do TensorBoard integrado ao treinamento do SageMaker e às funcionalidades de controle de acesso do domínio do SageMaker AI. Para saber mais, consulte TensorBoard no Amazon SageMaker AI.

Use o SageMaker Debugger para criar arquivos tensores de saída compatíveis com o TensorBoard. Carregue os arquivos para visualizar no TensorBoard e analise seus trabalhos de treinamento do SageMaker. O Debugger gera automaticamente arquivos tensores de saída compatíveis com o TensorBoard. Para qualquer configuração de hook que você personaliza para salvar tensores de saída, o Debugger tem a flexibilidade de criar resumos, distribuições e histogramas escalares que você pode importar para o TensorBoard.

Um diagrama de arquitetura do mecanismo de salvamento do tensor de saída do Debugger.

Você pode habilitar isso passando objetos DebuggerHookConfig e TensorBoardOutputConfig para um estimator.

O procedimento a seguir explica como salvar escalares, pesos e vieses como tensores, histogramas e distribuições completos que podem ser visualizados com o TensorBoard. O Debugger os salva no caminho local do contêiner de treinamento (o caminho padrão é /opt/ml/output/tensors) e sincroniza com os locais do Amazon S3 passados pelos objetos de configuração de saída do Debugger.

Para salvar arquivos tensores de saída compatíveis com TensorBoard usando o Debugger
  1. Configure um objeto de configuração tensorboard_output_config para salvar a saída do TensorBoard usando a classe Debugger TensorBoardOutputConfig. Para o parâmetro s3_output_path, especifique o bucket padrão do S3 da sessão atual do SageMaker AI ou um bucket do S3 de sua preferência. Este exemplo não adiciona o parâmetro container_local_output_path; em vez disso, ele é definido como o caminho local padrão /opt/ml/output/tensors.

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

    Para obter mais informações, consulte a API Debugger TensorBoardOutputConfig no Amazon SageMaker Python SDK.

  2. Configure o hook do Debugger e personalize os valores dos parâmetros do hook. Por exemplo, o código a seguir configura um hook do Debugger para salvar todas as saídas escalares a cada 100 etapas nas fases de treinamento e 10 etapas nas fases de validação, os parâmetros weights a cada 500 etapas (o valor padrão save_interval para salvar coleções de tensores é 500) e os parâmetros bias a cada 10 etapas globais até que a etapa global alcance 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 obter mais informações sobre as APIs de configuração do Debugger, consulte o Debugger CollectionConfig e as APIs DebuggerHookConfig no Amazon SageMaker Python SDK.

  3. Crie um estimador do SageMaker AI com os parâmetros do Debugger transmitindo os objetos de configuração. O exemplo a seguir mostra como criar um estimador genérico do SageMaker AI. Você pode substituir estimator e Estimator por outras classes de estimadores e classes principais de estimadores do framework do SageMaker AI. Os estimadores do framework do SageMaker AI disponíveis para essa funcionalidade são TensorFlow, PyTorch e MXNet.

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

    O método estimator.fit() inicia um trabalho de treinamento e o Debugger grava os arquivos tensores de saída em tempo real no caminho de saída do Debugger S3 e no caminho de saída do TensorBoard S3. Para recuperar os caminhos de saída, use os seguintes métodos de estimativa:

    • Para o caminho de saída do Debugger S3, use estimator.latest_job_debugger_artifacts_path().

    • Para o caminho de saída do TensorBoard S3, use estimator.latest_job_tensorboard_artifacts_path().

  4. Após a conclusão do treinamento, verifique os nomes dos tensores de saída salvos:

    from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names()
  5. Verifique os dados de saída do TensorBoard no Amazon S3:

    tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/
  6. Baixe os dados de saída do TensorBoard para a instância do seu caderno. Por exemplo, o comando da AWS CLI a seguir baixa os arquivos do TensorBoard /logs/fit para o diretório de trabalho atual da instância do seu caderno.

    !aws s3 cp --recursive {tensorboard_output_path} ./logs/fit
  7. Comprima o diretório do arquivo em um arquivo TAR para fazer o download em sua máquina local.

    !tar -cf logs.tar logs
  8. Baixe e extraia o arquivo TAR do Tensorboard em um diretório no seu dispositivo, inicie um servidor de caderno Jupyter, abra um novo caderno e execute a aplicação TensorBoard.

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

A captura de tela animada a seguir ilustra as etapas 5 a 8. Ele demonstra como baixar o arquivo TAR do Debugger TensorBoard e carregá-lo em um caderno Jupyter em seu dispositivo local.

Uma animação mostrando como baixar e carregar o arquivo TensorBoard do Depurador em sua máquina local.