

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

# Prepare um trabalho de treinamento para coletar dados TensorBoard de saída
<a name="debugger-htb-prepare-training-job"></a>

Um trabalho de treinamento típico para aprendizado de máquina em SageMaker IA consiste em duas etapas principais: preparar um script de treinamento e configurar um objeto estimador de SageMaker IA do SDK AI SageMaker Python. Nesta seção, você aprenderá sobre as mudanças necessárias para coletar dados TensorBoard compatíveis de trabalhos de SageMaker treinamento.

## Pré-requisitos
<a name="debugger-htb-prerequisites"></a>

A lista a seguir mostra os pré-requisitos para começar a usar SageMaker a IA. TensorBoard
+ Um domínio de SageMaker IA configurado com a Amazon VPC em sua AWS conta. 

  Para obter instruções sobre como configurar um domínio, consulte [Integrar o domínio Amazon SageMaker AI usando a configuração rápida](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html). Você também precisa adicionar perfis de usuário de domínio para que usuários individuais TensorBoard acessem o no SageMaker AI. Para obter mais informações, consulte [Adicionar perfis de usuário](domain-user-profile-add.md).
+ A lista a seguir é o conjunto mínimo de permissões para uso TensorBoard na SageMaker IA.
  + `sagemaker:CreateApp`
  + `sagemaker:DeleteApp`
  + `sagemaker:DescribeTrainingJob`
  + `sagemaker:Search`
  + `s3:GetObject`
  + `s3:ListBucket`

## Etapa 1: modifique seu script de treinamento com ferramentas TensorBoard auxiliares de código aberto
<a name="debugger-htb-prepare-training-job-1"></a>

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](https://pytorch.org/docs/stable/tensorboard.html#module-torch.utils.tensorboard). Consulte também as seções [Usando escalares TensorBoard in PyTorch](https://pytorch.org/tutorials/recipes/recipes/tensorboard_with_pytorch.html#using-tensorboard-in-pytorch) [e Log](https://pytorch.org/tutorials/recipes/recipes/tensorboard_with_pytorch.html#log-scalars) nos *PyTorchtutoriais*. Como alternativa, você pode usar o [TensorBoardX Summary Writer](https://tensorboardx.readthedocs.io/en/latest/tutorial.html).

  ```
  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](https://www.tensorflow.org/api_docs/python/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](https://huggingface.co/docs/transformers/main/en/main_classes/callback#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, em[Etapa 2: criar um objeto estimador de SageMaker treinamento com a TensorBoard configuração de saída](#debugger-htb-prepare-training-job-2), você deve mapear os caminhos corretamente para que a SageMaker IA pesquise com sucesso o caminho local e salve 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. [Adaptação do seu script de treinamento para registrar um hook](debugger-modify-script.md)

## Etapa 2: criar um objeto estimador de SageMaker treinamento com a TensorBoard configuração de saída
<a name="debugger-htb-prepare-training-job-2"></a>

Use o `sagemaker.debugger.TensorBoardOutputConfig` ao configurar um estimador de estrutura de SageMaker IA. Essa API de configuração 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 SDK do SageMaker Python. Se você usa a SageMaker API de baixo nível, deve incluir o seguinte na sintaxe de solicitação da [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API.  

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

**nota**  
O TensorBoard aplicativo não fornece out-of-the-box suporte para trabalhos de ajuste de hiperparâmetros de SageMaker IA, pois a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)API não está integrada à 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 na SageMaker IA.