

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Bereiten Sie einen Trainingsjob vor, um TensorBoard Ausgangsdaten zu sammeln
<a name="debugger-htb-prepare-training-job"></a>

Ein typischer Trainingsjob für maschinelles Lernen in SageMaker KI besteht aus zwei Hauptschritten: der Erstellung eines Trainingsskripts und der Konfiguration eines SageMaker KI-Estimator-Objekts des SageMaker KI-Python-SDK. In diesem Abschnitt erfahren Sie mehr über die erforderlichen Änderungen, um TensorBoard kompatible Daten aus SageMaker Trainingsjobs zu sammeln.

## Voraussetzungen
<a name="debugger-htb-prerequisites"></a>

Die folgende Liste zeigt die Voraussetzungen für den Einstieg in die Nutzung von SageMaker KI. TensorBoard
+ Eine SageMaker KI-Domain, die mit Amazon VPC in Ihrem AWS Konto eingerichtet ist. 

  Anweisungen zur Einrichtung einer Domain finden Sie unter [Integrieren einer Amazon SageMaker AI-Domain mithilfe der Schnellinstallation](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html). Sie müssen auch Domain-Benutzerprofile für einzelne Benutzer hinzufügen, um TensorBoard auf die SageMaker On-AI zugreifen zu können. Weitere Informationen finden Sie unter [Benutzerprofil hinzufügen](domain-user-profile-add.md).
+ Die folgende Liste enthält die Mindestberechtigungen für die Verwendung TensorBoard auf SageMaker KI.
  + `sagemaker:CreateApp`
  + `sagemaker:DeleteApp`
  + `sagemaker:DescribeTrainingJob`
  + `sagemaker:Search`
  + `s3:GetObject`
  + `s3:ListBucket`

## Schritt 1: Modifizieren Sie Ihr Trainingsskript mit TensorBoard Open-Source-Hilfstools
<a name="debugger-htb-prepare-training-job-1"></a>

Stellen Sie sicher, dass Sie festlegen, welche Ausgabetensoren und Skalare erfasst werden sollen, und ändern Sie die Codezeilen in Ihrem Trainingsskript mit einem der folgenden Tools: TensorBoard X, TensorFlow Summary Writer, Summary Writer oder PyTorch Debugger. SageMaker 

Stellen Sie außerdem sicher, dass Sie den TensorBoard Datenausgabepfad als Protokollverzeichnis (`log_dir`) für den Rückruf im Trainingscontainer angeben. 

Weitere Informationen zu Rückrufen pro Framework finden Sie in den folgenden Ressourcen.
+ Verwenden Sie für PyTorch [torch.utils.tensorboard. SummaryWriter](https://pytorch.org/docs/stable/tensorboard.html#module-torch.utils.tensorboard). Weitere Informationen finden Sie in den *PyTorchTutorials TensorBoard * [in den Abschnitten Verwenden](https://pytorch.org/tutorials/recipes/recipes/tensorboard_with_pytorch.html#using-tensorboard-in-pytorch) von [Skalaren PyTorch und Log-Skalaren](https://pytorch.org/tutorials/recipes/recipes/tensorboard_with_pytorch.html#log-scalars). Alternativ können Sie [TensorBoardX Summary Writer](https://tensorboardx.readthedocs.io/en/latest/tutorial.html) verwenden.

  ```
  LOG_DIR="/opt/ml/output/tensorboard"
  tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR)
  ```
+ Verwenden Sie für TensorFlow den systemeigenen Callback für 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)
  ```
+ Für Transformers with PyTorch können Sie [transformers.integrations verwenden. TensorBoardCallback](https://huggingface.co/docs/transformers/main/en/main_classes/callback#transformers.integrations.TensorBoardCallback). 

  Verwenden Sie für Transformers with TensorFlow den `tf.keras.tensorboard.callback` und übergeben Sie ihn an den Keras-Callback in Transformers.
**Tipp**  
Sie können jedoch auch einen anderen lokalen Ausgabepfad für den Container verwenden. In müssen Sie die Pfade jedoch korrekt zuordnen[Schritt 2: Erstellen Sie ein SageMaker Trainingsschätzungsobjekt mit der Ausgabekonfiguration TensorBoard](#debugger-htb-prepare-training-job-2), damit SageMaker KI den lokalen Pfad erfolgreich durchsuchen und die TensorBoard Daten im S3-Ausgabe-Bucket speichern kann.
+ Anleitungen zum Ändern von Trainingsskripten mithilfe der SageMaker Debugger-Python-Bibliothek finden Sie unter[Ihr Trainingsskript anpassen, um einen Hook zu registrieren](debugger-modify-script.md).

## Schritt 2: Erstellen Sie ein SageMaker Trainingsschätzungsobjekt mit der Ausgabekonfiguration TensorBoard
<a name="debugger-htb-prepare-training-job-2"></a>

Verwenden Sie `sagemaker.debugger.TensorBoardOutputConfig` bei der Konfiguration einen SageMaker KI-Framework-Estimator. Diese Konfigurations-API ordnet den S3-Bucket, den Sie zum Speichern von TensorBoard Daten angeben, dem lokalen Pfad im Trainingscontainer zu (`/opt/ml/output/tensorboard`). Übergeben Sie das Objekt des Moduls an den `tensorboard_output_config` Parameter der Schätzerklasse. Der folgende Codeausschnitt zeigt ein Beispiel für die Vorbereitung eines TensorFlow Schätzers mit dem TensorBoard Ausgabekonfigurationsparameter.

**Anmerkung**  
In diesem Beispiel wird davon ausgegangen, dass Sie das SageMaker Python-SDK verwenden. Wenn Sie die SageMaker Low-Level-API verwenden, sollten Sie Folgendes in die Anforderungssyntax der [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API aufnehmen.  

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

**Anmerkung**  
Die TensorBoard Anwendung bietet keine out-of-the-box Unterstützung für SageMaker KI-Hyperparameter-Tuning-Jobs, da die [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)API nicht in die TensorBoard Ausgabekonfiguration für das Mapping integriert ist. Um die TensorBoard Anwendung für Hyperparameter-Tuning-Jobs zu verwenden, müssen Sie in Ihrem Trainingsskript Code für das Hochladen von Metriken auf Amazon S3 schreiben. Sobald die Metriken in einen Amazon S3 S3-Bucket hochgeladen wurden, können Sie den Bucket in die TensorBoard Anwendung auf SageMaker AI laden.