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à.
Prepara un corso di formazione per raccogliere i dati TensorBoard di output
Un tipico lavoro di formazione per l'apprendimento automatico SageMaker consiste in due fasi principali: preparare uno script di addestramento e configurare un oggetto SageMaker estimatore di Python SageMaker . SDK In questa sezione, scoprirai le modifiche necessarie per raccogliere dati TensorBoard compatibili dai lavori di formazione. SageMaker
Prerequisiti
L'elenco seguente mostra i prerequisiti con cui iniziare a utilizzare SageMaker . TensorBoard
-
Un SageMaker dominio configurato con Amazon VPC nel tuo AWS account.
Per istruzioni sulla configurazione di un dominio, consulta Onboard to Amazon SageMaker domain using quick setup. È inoltre necessario aggiungere profili utente di dominio per consentire ai singoli utenti di accedere a TensorBoard on SageMaker. Per ulteriori informazioni, consulta Aggiunta di profili utente.
-
L'elenco seguente è il set minimo di autorizzazioni per l'utilizzo di TensorBoard on SageMaker.
-
sagemaker:CreateApp
-
sagemaker:DeleteApp
-
sagemaker:DescribeTrainingJob
-
sagemaker:Search
-
s3:GetObject
-
s3:ListBucket
-
Fase 1: Modifica lo script di formazione con strumenti di supporto open source TensorBoard
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: TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer o Debugger. SageMaker
Assicurati inoltre di specificare il percorso di output dei TensorBoard dati come directory di log (log_dir
) per il callback nel contenitore di formazione.
Per ulteriori informazioni sulle richiamate per framework, consulta le risorse seguenti.
-
Per PyTorch, usa torch.utils.tensorboard. SummaryWriter
. Vedi anche le sezioni Using TensorBoard in PyTorch e Log scalars nei PyTorchtutorial. 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 il callback nativo 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 Transformers with PyTorch, puoi usare transformers.integrations. TensorBoardCallback
. Per Transformers with TensorFlow, usa e passalo
tf.keras.tensorboard.callback
al callback keras in transformers.Suggerimento
Inoltre, puoi utilizzare un percorso di output locale del container diverso. TuttaviaFase 2: Creare un oggetto di stima dell' SageMaker addestramento con la configurazione dell'output TensorBoard , è necessario mappare correttamente i percorsi per SageMaker cercare correttamente il percorso locale e salvare i TensorBoard dati nel bucket di output S3.
-
Per indicazioni sulla modifica degli script di addestramento utilizzando la libreria SageMaker Debugger Python, vedere. Adattamento dello script di allenamento per registrare un hook
Fase 2: Creare un oggetto di stima dell' SageMaker addestramento con la configurazione dell'output TensorBoard
Utilizzalo sagemaker.debugger.TensorBoardOutputConfig
durante la configurazione di uno SageMaker stimatore del framework. Questa configurazione API mappa il bucket S3 specificato per il salvataggio TensorBoard dei dati con il percorso locale nel contenitore di formazione (). /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 TensorFlow stimatore con il parametro di configurazione dell'output. TensorBoard
Nota
Questo esempio presuppone che si utilizzi SageMaker PythonSDK. Se si utilizza il livello basso SageMaker API, è necessario includere quanto segue nella sintassi di richiesta di. 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
)
Nota
L' TensorBoard applicazione non fornisce out-of-the-box supporto per i lavori di ottimizzazione degli SageMaker iperparametri, in quanto non CreateHyperParameterTuningJob
APIè integrata con la configurazione di TensorBoard output per la mappatura. Per utilizzare l' TensorBoardapplicazione per i lavori di ottimizzazione degli iperparametri, devi scrivere il codice per caricare le metriche su Amazon S3 nel tuo script di formazione. Una volta caricate le metriche su un bucket Amazon S3, puoi caricare il bucket nell'applicazione su. TensorBoard SageMaker