Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Preparare un job di addestramento per raccogliere i dati di output TensorBoard
Un tipico job di addestramento per il machine learning in SageMaker AI consiste in due fasi principali: la preparazione di uno script di addestramento e la configurazione di un oggetto strumento di stima di SageMaker AI Python SDK. In questa sezione sono disponibili informazioni sulle modifiche necessarie per raccogliere dati compatibili con TensorBoard dai job di addestramento di SageMaker.
Prerequisiti
L’elenco seguente mostra i prerequisiti per iniziare a utilizzare SageMaker AI con TensorBoard.
-
Un dominio SageMaker AI configurato con Amazon VPC nell’account AWS.
Per istruzioni sulla configurazione di un dominio, consulta Onboarding sul dominio Amazon SageMaker AI utilizzando Configurazione rapida. Per accedere a TensorBoard su SageMaker AI, è inoltre necessario aggiungere profili utente di dominio per singoli utenti. Per ulteriori informazioni, consulta Aggiunta di profili utente.
-
L’elenco seguente è il set minimo di autorizzazioni per l’utilizzo di TensorBoard su SageMaker AI.
-
sagemaker:CreateApp -
sagemaker:DeleteApp -
sagemaker:DescribeTrainingJob -
sagemaker:Search -
s3:GetObject -
s3:ListBucket
-
Fase 1: modificare lo script di addestramento con strumenti di supporto TensorBoard open source
Assicurati di determinare quali tensori e scalari di output raccogliere e di modificare le righe di codice nello script di addestramento utilizzando uno dei seguenti strumenti: TensorBoardX, TensorFlow Summary Writer, PyTorch Summary Writer o Debugger SageMaker.
Assicurati inoltre di specificare il percorso di output dei dati TensorBoard come directory log (log_dir) per la richiamata nel container di addestramento.
Per ulteriori informazioni sulle richiamate per framework, consulta le risorse seguenti.
-
Per PyTorch, usa torch.utils.Tensorboard.SummaryWriter
. Vedi anche le sezioni Uo di TensorBoard in PyTorch e Scalari dei log nei tutorial PyTorch. In alternativa, puoi usare TensorBoardX Summary Writer . LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR) -
Per TensorFlow, usa la richiamata nativa per TensorBoard, tf.keras.callbacks.TensorBoard
. LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=tf.keras.callbacks.TensorBoard( log_dir=LOG_DIR, histogram_freq=1) -
Per le trasformazioni con PyTorch, puoi utilizzare transformers.integrations.TensorBoardCallback
. Per le trasformazioni con TensorFlow, usa
tf.keras.tensorboard.callbacke trasmettilo alla richiamata keras nei trasformatori .Suggerimento
Inoltre, puoi utilizzare un percorso di output locale del container diverso. Tuttavia, in Fase 2: creare un oggetto strumento di stima di SageMaker AI con la configurazione di output di TensorBoard, devi mappare correttamente i percorsi affinché SageMaker AI possa cercare correttamente il percorso locale e salvare i dati di TensorBoard nel bucket di output S3.
-
Per istruzioni sulla modifica degli script di addestramento utilizzando la libreria Python di Debugger SageMaker, consulta Adattamento dello script di addestramento per registrare un hook.
Fase 2: creare un oggetto strumento di stima di SageMaker AI con la configurazione di output di TensorBoard
Utilizza sagemaker.debugger.TensorBoardOutputConfig durante la configurazione di uno strumento di stima del framework di SageMaker AI. Questa API di configurazione mappa il bucket S3 specificato per il salvataggio dei dati TensorBoard con il percorso locale nel container di addestramento (/opt/ml/output/tensorboard). Trasmetti l'oggetto del modulo al parametro tensorboard_output_config della classe dello strumento di valutazione. Il seguente frammento di codice mostra un esempio di preparazione di uno strumento di valutazione TensorFlow con il parametro di configurazione dell'output TensorBoard.
Nota
Questo esempio presuppone che si utilizzi SageMaker Python SDK. Se si utilizza l'API SageMaker di basso livello, è necessario includere quanto segue nella sintassi della richiesta dell'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)
Nota
L’applicazione TensorBoard non fornisce supporto immediato per i processi di ottimizzazione degli iperparametri di SageMaker AI, poiché l’API CreateHyperParameterTuningJob non è integrata con la configurazione di output di TensorBoard per la mappatura. Per utilizzare l’applicazione TensorBoard per i processi di ottimizzazione degli iperparametri, è necessario scrivere codice per caricare le metriche in Amazon S3 nello script di addestramento. Una volta caricate le metriche in un bucket Amazon S3, è possibile caricare il bucket nell’applicazione TensorBoard su SageMaker AI.