Definieren von Schulungsmetriken - Amazon SageMaker

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.

Definieren von Schulungsmetriken

SageMaker analysiert automatisch die Protokolle von Trainingsaufträgen und sendet Trainingsmetriken an CloudWatch. SageMaker Sendet standardmäßig Messwerte zur Systemressourcenauslastung, die unter SageMaker Jobs und Endpunktmetriken aufgeführt sind. Wenn Sie Logs analysieren und benutzerdefinierte Metriken aus einem Trainingsjob Ihres eigenen Algorithmus an diese senden möchten SageMaker CloudWatch, müssen Sie bei der Konfiguration einer SageMaker Trainingsjob-Anfrage Metrikdefinitionen angeben, indem Sie die Namen der Metriken und reguläre Ausdrücke übergeben.

Sie können die Metriken, die Sie verfolgen möchten, mit der SageMaker KonsoleSDK, SageMaker Python oder Low-Level SageMaker API angeben.

Wenn Sie Ihren eigenen Algorithmus verwenden, gehen Sie wie folgt vor:

  • Vergewissern Sie sich, dass der Algorithmus die Metriken, die Sie erfassen möchten, in Protokolle schreibt.

  • Definieren Sie einen regulären Ausdruck, der die Protokolle genau durchsucht, um die Werte der Metriken zu erfassen, an die Sie senden möchten CloudWatch.

Nehmen wir zum Beispiel an, dass Ihr Algorithmus die folgenden Metriken für Trainingsfehler und Validierungsfehler ausgibt:

Train_error=0.138318; Valid_error=0.324557;

Wenn Sie diese beiden Metriken überwachen möchten CloudWatch, sollte das Wörterbuch für die Metrikdefinitionen wie das folgende Beispiel aussehen:

[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]

In der Regex für die train:error -Metrik, die im vorangegangenen Beispiel definiert wurde, findet der erste Teil der Regex den genauen Text "Train_error=", und der Ausdruck (.*?); erfasst alle Zeichen bis zum ersten Semikolonzeichen. In diesem Ausdruck sagt die Klammer dem Regex, dass er das, was sich in ihr befindet, erfassen soll, . bedeutet jedes beliebige Zeichen, * bedeutet kein oder mehr Zeichen und ? bedeutet die Erfassung nur bis zur ersten Abfolge des ;-Zeichens.

Metriken mit SageMaker Python definieren SDK

Definieren Sie die Metriken, an die Sie senden möchten, CloudWatch indem Sie bei der Initialisierung eines Estimator Objekts eine Liste von Metriknamen und regulären Ausdrücken als metric_definitions Argument angeben. Wenn Sie beispielsweise sowohl die als auch die train:error validation:error Metriken in überwachen möchten CloudWatch, würde Ihre Estimator Initialisierung wie folgt aussehen:

import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-own-image-uri", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1, instance_type='ml.c4.xlarge', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )

Weitere Informationen zum Training mithilfe von Amazon SageMaker SDK Python-Schätzern finden Sie unter Sagemaker Python on. SDK GitHub

Definieren Sie Metriken mithilfe der Konsole SageMaker

Wenn Sie bei der Erstellung eines Trainingsjobs die ECR Option „Ihr eigener Algorithmuscontainer in“ als Algorithmusquelle in der SageMaker Konsole wählen, fügen Sie die Metrikdefinitionen im Abschnitt „Metriken“ hinzu. Der folgende Screenshot zeigt, wie es aussehen sollte, nachdem Sie die Namen der Beispielmetriken und die entsprechenden regulären Ausdrücke hinzugefügt haben.

Beispiel für ein Formular mit Algorithmusoptionen in der Konsole.

Definieren Sie Metriken mithilfe der Low-Level-Methode SageMaker API

Definieren Sie die Metriken, an die Sie senden möchten, CloudWatch indem Sie im MetricDefinitions Feld des AlgorithmSpecificationEingabeparameters, den Sie an den CreateTrainingJobVorgang übergeben, eine Liste mit Metriknamen und regulären Ausdrücken angeben. Wenn Sie beispielsweise sowohl die als auch die train:error validation:error Metriken in überwachen möchten CloudWatch, AlgorithmSpecification würden Sie wie folgt aussehen:

"AlgorithmSpecification": { "TrainingImage": your-own-image-uri, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }

Weitere Informationen zum Definieren und Ausführen eines Trainingsjobs mithilfe der Low-Level-Methode finden Sie SageMaker API unter CreateTrainingJob.