Visualizzare i tensori di output di Amazon SageMaker Debugger in TensorBoard
Importante
Questa pagina è obsoleta a favore di Amazon SageMaker AI con TensorBoard, che offre un’esperienza TensorBoard completa integrata con SageMaker Training e le funzionalità di controllo degli accessi del dominio SageMaker AI. Per ulteriori informazioni, consulta TensorBoard in Amazon SageMaker AI.
Usa Debugger SageMaker per creare file tensoriali di output compatibili con TensorBoard. Carica i file da visualizzare in TensorBoard e analizza i tuoi processi di addestramento su SageMaker. Debugger genera automaticamente file tensoriali di output compatibili con TensorBoard. Per qualsiasi configurazione di hook personalizzata per il salvataggio dei tensori di output, Debugger ha la flessibilità di creare riepiloghi scalari, distribuzioni e istogrammi che puoi importare in TensorBoard.
È possibile abilitarlo passando gli oggetti DebuggerHookConfig e TensorBoardOutputConfig a un estimator.
La procedura seguente spiega come salvare scalari, pesi e distorsioni come tensori, istogrammi e distribuzioni completi che possono essere visualizzati con TensorBoard. Debugger li salva nel percorso locale del container di addestramento (il percorso predefinito è /opt/ml/output/tensors) e si sincronizza con le posizioni Amazon S3 passate attraverso gli oggetti di configurazione dell'output del Debugger.
Per salvare i file tensor di output compatibili con TensorBoard utilizzando Debugger
-
Imposta un oggetto di configurazione
tensorboard_output_configper salvare l'output di TensorBoard utilizzando la classe di DebuggerTensorBoardOutputConfig. Per il parametros3_output_pathspecifica il bucket S3 predefinito della sessione corrente di SageMaker AI o un bucket S3 preferito. Questo esempio non aggiunge il parametrocontainer_local_output_path; viene invece impostato sul percorso locale predefinito/opt/ml/output/tensors.import sagemaker from sagemaker.debugger import TensorBoardOutputConfig bucket = sagemaker.Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )Per ulteriori informazioni, consulta l'API Debugger
TensorBoardOutputConfigin Amazon SageMaker Python SDK. -
Configura l'hook Debugger e personalizza i valori dei parametri dell'hook. Ad esempio, il codice seguente configura un hook Debugger per salvare tutti gli output scalari ogni 100 fasi nelle fasi di addestramento e 10 fasi nelle fasi di convalida, i parametri
weightsogni 500 fasi (il valoresave_intervalpredefinito per il salvataggio delle raccolte di tensori è 500) e i parametribiasogni 10 fasi globali fino a quando la fase globale raggiunge 500.from sagemaker.debugger import CollectionConfig, DebuggerHookConfig hook_config = DebuggerHookConfig( hook_parameters={ "train.save_interval": "100", "eval.save_interval": "10" }, collection_configs=[ CollectionConfig("weights"), CollectionConfig( name="biases", parameters={ "save_interval": "10", "end_step": "500", "save_histogram": "True" } ), ] )Per ulteriori informazioni sulle API di configurazione di Debugger, consulta le API Debugger
CollectionConfigeDebuggerHookConfigin Amazon SageMaker Python SDK. -
Crea uno strumento di stima di SageMaker AI con i parametri di Debugger che passano gli oggetti di configurazione. Il seguente modello di esempio mostra come creare uno strumento di stima generico di SageMaker AI. È possibile sostituire
estimatoreEstimatorcon le classi principali e le classi degli strumenti di stima di altri framework di SageMaker AI. Gli strumenti di stima del framework di SageMaker AI disponibili per questa funzionalità sonoTensorFlow,PyTorcheMXNet.from sagemaker.estimatorimportEstimatorestimator =Estimator( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()Il metodo
estimator.fit()avvia un processo di addestramento e Debugger scrive i file del tensore di output in tempo reale sul percorso di output di Debugger S3 e sul percorso di output di TensorBoard S3. Per recuperare i percorsi di output, utilizza i seguenti metodi di valutazione:-
Per il percorso di output di Debugger S3, usa
estimator.latest_job_debugger_artifacts_path(). -
Per il percorso di output di TensorBoard S3, usa
estimator.latest_job_tensorboard_artifacts_path().
-
-
Al termine dell'addestramento, controlla i nomi dei tensori di output salvati:
from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names() -
Controlla i dati di output di TensorBoard in Amazon S3:
tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/ -
Scarica i dati di output di TensorBoard sull'istanza del tuo notebook. Ad esempio, il comando AWS CLI seguente scarica i file TensorBoard in
/logs/fitnella directory di lavoro corrente dell'istanza del notebook.!aws s3 cp --recursive {tensorboard_output_path}./logs/fit -
Comprimi la directory dei file in un file TAR da scaricare sul computer locale.
!tar -cf logs.tar logs -
Scarica ed estrai il file TAR di Tensorboard in una directory sul tuo dispositivo, avvia un server notebook Jupyter, apri un nuovo notebook ed esegui l'app TensorBoard.
!tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit
La seguente schermata animata illustra le fasi da 5 a 8. Dimostra come scaricare il file TAR Debugger TensorBoard e caricare il file in un notebook Jupyter sul dispositivo locale.