Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ausgabetensoren des Amazon SageMaker Debugger in TensorBoard visualisieren
Wichtig
Diese Seite ist zugunsten von Amazon SageMaker AI mit TensorBoard veraltet, das ein umfassendes TensorBoard-Erlebnis bietet, das in SageMaker Training und die Zugriffskontrollfunktionen von SageMaker AI Domain integriert ist. Weitere Informationen hierzu finden Sie unter TensorBoard in Amazon SageMaker AI.
Verwenden Sie SageMaker Debugger, um Ausgabetensordateien zu erstellen, die mit TensorBoard kompatibel sind. Laden Sie die Dateien zur Visualisierung in TensorBoard und analysieren Sie Ihre SageMaker-Trainingsaufträge. Der Debugger generiert automatisch Ausgabetensordateien, die mit TensorBoard kompatibel sind. Für jede Hook-Konfiguration, die Sie zum Speichern von Ausgabetensoren anpassen, bietet Debugger die Flexibilität, skalare Zusammenfassungen, Verteilungen und Histogramme zu erstellen, die Sie in TensorBoard importieren können.
Sie können dies aktivieren, indem Sie DebuggerHookConfig und TensorBoardOutputConfig Objekte an eine estimator übergeben.
Das folgende Verfahren erklärt, wie Skalare, Gewichte und Verzerrungen als vollständige Tensoren, Histogramme und Verteilungen gespeichert werden, die mit TensorBoard visualisiert werden können. Der Debugger speichert sie im lokalen Pfad des Trainingscontainers (der Standardpfad ist /opt/ml/output/tensors) und synchronisiert sie mit den Amazon S3-Speicherorten, die über die Debugger-Ausgabekonfigurationsobjekte übergeben wurden.
Um TensorBoard-kompatible Ausgabetensordateien mit dem Debugger zu speichern
-
Richten Sie ein
tensorboard_output_configKonfigurationsobjekt ein, um die TensorBoard-Ausgabe mithilfe der Debugger-TensorBoardOutputConfig-Klasse zu speichern. Geben Sie für dens3_output_pathParameter den Standard-S3-Bucket der aktuellen SageMaker-AI-Sitzung oder einen bevorzugten S3-Bucket an. In diesem Beispiel wird dercontainer_local_output_pathParameter nicht hinzugefügt, sondern auf den lokalen Standardpfad/opt/ml/output/tensorsgesetzt.import sagemaker from sagemaker.debugger import TensorBoardOutputConfig bucket = sagemaker.Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )Weitere Informationen finden Sie unter der Debugger-
TensorBoardOutputConfig-API im Amazon SageMaker Python SDK. -
Konfigurieren Sie den Debugger-Hook und passen Sie die Hook-Parameterwerte an. Der folgende Code konfiguriert beispielsweise einen Debugger-Hook so, dass alle skalaren Ausgaben in Trainingsphasen alle 100 Schritte und in Validierungsphasen alle 10 Schritte, die
weightsParameter alle 500 Schritte (dersave_intervalStandardwert für das Speichern von Tensorsammlungen ist 500) und diebiasParameter alle 10 globalen Schritte gespeichert werden, bis der globale Schritt 500 erreicht.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" } ), ] )Weitere Informationen zu den Debugger-Konfigurations-APIs finden Sie unter Debugger
CollectionConfigundDebuggerHookConfigAPIs im Amazon SageMaker Python SDK. -
Konstruieren Sie einen SageMaker-AI-Schätzer mit den Debugger-Parametern, die die Konfigurationsobjekte übergeben. In der folgenden Beispielvorlage wird gezeigt, wie ein generischer SageMaker-AI-Schätzer erstellt wird. Sie können
estimatorundEstimatordurch die übergeordneten Schätzerklassen und Schätzerklassen anderer SageMaker-AI-Frameworks ersetzen. Verfügbare Framework-Schätzer von SageMaker AI für diese Funktionalität sindTensorFlow,PyTorchundMXNet.from sagemaker.estimatorimportEstimatorestimator =Estimator( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()Die
estimator.fit()Methode startet einen Trainingsauftrag und der Debugger schreibt die Ausgabetensordateien in Echtzeit in den Debugger S3-Ausgabepfad und in den TensorBoard S3-Ausgabepfad. Verwenden Sie die folgenden Schätzmethoden, um die Ausgabepfade abzurufen:-
Für den Debugger S3-Ausgabepfad, verwenden Sie
estimator.latest_job_debugger_artifacts_path(). -
Für den TensorBoard S3-Ausgabepfad, verwenden Sie
estimator.latest_job_tensorboard_artifacts_path().
-
-
Überprüfen Sie nach Abschluss des Trainings die Namen der gespeicherten Ausgabetensoren:
from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names() -
Überprüfen Sie die TensorBoard-Ausgabedaten in Amazon S3:
tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/ -
Laden Sie die TensorBoard-Ausgabedaten auf Ihre Notebook-Instance herunter. Mit dem folgenden AWS CLI Befehl werden beispielsweise die TensorBoard-Dateien in
/logs/fit, unter dem aktuellen Arbeitsverzeichnis Ihrer Notebook-Instance, heruntergeladen.!aws s3 cp --recursive {tensorboard_output_path}./logs/fit -
Komprimieren Sie das Dateiverzeichnis in eine TAR-Datei, um es auf Ihren lokalen Computer herunterzuladen.
!tar -cf logs.tar logs -
Laden Sie die Tensorboard-TAR-Datei herunter und extrahieren Sie sie in ein Verzeichnis auf Ihrem Gerät, starten Sie einen Jupyter-Notebook-Server, öffnen Sie ein neues Notebook und führen Sie die TensorBoard-App aus.
!tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit
Der folgende animierte Screenshot veranschaulicht die Schritte 5 bis 8. Es zeigt, wie Sie die Debugger TensorBoard TAR-Datei herunterladen und die Datei in ein Jupyter Notebook auf Ihrem lokalen Gerät laden.