Préparation d’une tâche d’entraînement pour collecter les données de sortie TensorBoard - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Préparation d’une tâche d’entraînement pour collecter les données de sortie TensorBoard

Une tâche d’entraînement classique pour le machine learning dans SageMaker AI comprend deux étapes principales : la préparation d’un script d’entraînement et la configuration d’un objet estimateur SageMaker dans le kit SageMaker AI Python SDK. Dans cette section, vous pourrez apprendre les modifications nécessaires pour collecter des données compatibles avec TensorBoard à partir des tâches d’entraînement SageMaker.

Prérequis

La liste suivante indique les conditions préalables pour commencer à utiliser le profileur SageMaker AI avec TensorBoard.

  • Un domaine SageMaker AI configuré avec Amazon VPC dans votre compte AWS.

    Pour obtenir des instructions sur la configuration d’un domaine, consultez Intégration au domaine Amazon SageMaker AI à l’aide d’une configuration rapide. Vous devez également ajouter des profils utilisateur de domaine pour que des utilisateurs individuels puissent accéder à TensorBoard sur SageMaker AI. Pour plus d’informations, consultez Ajouter des profils utilisateur.

  • La liste suivante représente l’ensemble minimal d’autorisations pour utiliser TensorBoard sur SageMaker AI.

    • sagemaker:CreateApp

    • sagemaker:DeleteApp

    • sagemaker:DescribeTrainingJob

    • sagemaker:Search

    • s3:GetObject

    • s3:ListBucket

Étape 1 : modifier votre script d’entraînement avec les outils d’assistance TensorBoard open source

Veillez à déterminer les tenseurs et les scalaires de sortie à collecter et à modifier les lignes de code de votre script d’entraînement à l’aide de l’un des outils suivants : TensorBoardX, TensorFlow Summary Writer, PyTorch Summary Writer ou SageMaker Debugger.

Assurez-vous également de spécifier le chemin de sortie des données TensorBoard en tant que répertoire du journal (log_dir) pour le rappel dans le conteneur d’entraînement.

Pour plus d’informations sur les rappels par framework, consultez les ressources suivantes.

Étape 2 : créer un objet estimateur d’entraînement SageMaker avec la configuration de sortie TensorBoard

Utilisez sagemaker.debugger.TensorBoardOutputConfig lors de la configuration d’un estimateur de framework SageMaker AI. Cette API de configuration mappe le compartiment S3 que vous spécifiez pour enregistrer les données TensorBoard avec le chemin local dans le conteneur d’entraînement (/opt/ml/output/tensorboard). Passez l’objet du module au paramètre tensorboard_output_config de la classe d’estimateur. L’extrait de code suivant présente un exemple de préparation d’un estimateur TensorFlow avec le paramètre de configuration de sortie TensorBoard.

Note

Cet exemple part du principe que vous utilisez le kit SageMaker Python SDK. Si vous utilisez l’API SageMaker de bas niveau, vous devez inclure ce qui suit dans la syntaxe de demande de l’API CreateTrainingJob.

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

L’application TensorBoard ne fournit pas de support prêt à l’emploi pour les tâches de réglage d’hyperparamètres de SageMaker AI, car l’API CreateHyperParameterTuningJob n’est pas intégrée à la configuration de sortie TensorBoard pour le mappage. Pour utiliser l’application TensorBoard pour ls tâches de réglage d’hyperparamètres, vous devez écrire du code pour charger les métriques sur Amazon S3 dans votre script d’entraînement. Une fois les métriques chargées dans un compartiment Amazon S3, vous pouvez charger le compartiment dans l’application TensorBoard sur SageMaker AI.