Préparer un travail de formation pour collecter des données TensorBoard de sortie - Amazon SageMaker

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éparer un travail de formation pour collecter des données TensorBoard de sortie

Un travail de formation typique pour l'apprentissage automatique SageMaker comprend deux étapes principales : la préparation d'un script de formation et la configuration d'un objet SageMaker estimateur en Python SageMaker . SDK Dans cette section, vous découvrirez les modifications nécessaires pour collecter des données TensorBoard compatibles à partir des tâches de SageMaker formation.

Prérequis

La liste suivante indique les prérequis pour commencer à l'utiliser SageMaker . TensorBoard

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

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

  • La liste suivante indique l'ensemble minimal d'autorisations à utiliser TensorBoard sur SageMaker.

    • sagemaker:CreateApp

    • sagemaker:DeleteApp

    • sagemaker:DescribeTrainingJob

    • sagemaker:Search

    • s3:GetObject

    • s3:ListBucket

Étape 1 : Modifiez votre script d'entraînement à l'aide d'outils d' TensorBoard assistance open source

Assurez-vous de déterminer les tenseurs et les scalaires de sortie à collecter, et de modifier les lignes de code de votre script d'entraînement à l'aide de l'un des outils suivants : TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer ou SageMaker Debugger.

Assurez-vous également de spécifier le chemin de sortie TensorBoard des données 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éation d'un objet estimateur d' SageMaker entraînement avec la configuration de sortie TensorBoard

Utilisez-le sagemaker.debugger.TensorBoardOutputConfig lors de la configuration d'un estimateur de SageMaker framework. Cette configuration API mappe le compartiment S3 que vous spécifiez pour enregistrer les TensorBoard données 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 montre un exemple de préparation d'un TensorFlow estimateur avec le TensorBoard paramètre de configuration de sortie.

Note

Cet exemple suppose que vous utilisez le SageMaker PythonSDK. Si vous utilisez le bas niveau SageMaker API, vous devez inclure ce qui suit dans la syntaxe de demande du 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 )
Note

L' TensorBoard application ne prend pas en out-of-the-box charge les tâches de réglage des SageMaker hyperparamètres, car elle n'CreateHyperParameterTuningJobAPIest pas intégrée à la configuration TensorBoard de sortie pour le mappage. Pour utiliser l' TensorBoardapplication pour des tâches de réglage d'hyperparamètres, vous devez écrire du code permettant de télécharger des 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' TensorBoard application sur SageMaker.