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.
Vorzeitiges Beenden von Schulungsaufträgen
Beenden Sie die Schulungsaufträge, die ein Hyperparameter-Optimierungsauftrag startet, vorzeitig, wenn diese keine signifikanten Verbesserungen erzielen, was Sie an der objektiven Metrik ablesen können. Durch das vorzeitige Beenden von Schulungsaufträgen wird die Datenverarbeitungszeit reduziert und eine Überanpassung Ihres Modells vermieden. Gehen Sie wie folgt vor, um einen Hyperparameter-Optimierungsauftrag so zu konfigurieren, dass Schulungsaufträge vorzeitig beendet werden:
-
Wenn Sie dasAWS SDK for Python (Boto3) verwenden, legen Sie das
TrainingJobEarlyStoppingType
Feld desHyperParameterTuningJobConfig
Objekts fest, für das Sie den Tuning-Job konfigurierenAUTO
. -
Wenn Sie das Amazon SageMaker Python SDK
verwenden, legen Sie den early_stopping_type
Parameter des HyperParameterTunerObjekts auf fest Auto
. -
Wählen Sie in der SageMaker Amazon-Konsole im Workflow „Hyperparameter-Tuning-Job erstellen“ unter Frühzeitiges Stoppen die Option Automatisch aus.
Ein Beispielnotizbuch, das demonstriert, wie Early Stopping verwendet wird, finden Sie unter https://github.com/awslabs/amazon-sagemaker-examples /blob/master/hyperparameter_tuning/image_stopping/hpo_image_classification_early_stopping.ipynbhpo_image_classification_early_stopping.ipynb
Notizbuch im Abschnitt Hyperparameter Tuning der SageMaker Beispiele in einer Notebook-Instanz. Informationen zur Verwendung der Beispielnotebooks in einer Notebook-Instance finden Sie unter Beispiel-Notebooks.
Funktionsweise des vorzeitigen Beendens
Wenn Sie das vorzeitige Stoppen für einen Hyperparameter-Optimierungsjob aktivieren, wird jeder Trainingsjob, der vom Hyperparameter-Optimierungsjob gestartet wird, wie folgt SageMaker ausgewertet:
-
Nach jeder Schulungsepoche wird der Wert der objektiven Metrik ermittelt.
-
Der aktuelle Durchschnitt der objektiven Metrik wird für alle vorherigen Schulungsaufträge bis zur selben Epoche berechnet, anschließend wird der Mittelwert aller aktuellen Durchschnittswerte berechnet.
-
Wenn der Wert der Zielmetrik für den aktuellen Ausbildungsjob schlechter ist (höher bei Minimierung oder niedriger bei Maximierung der Zielmetrik) als der Medianwert der laufenden Durchschnittswerte der Zielmetrik für frühere Ausbildungsjobs bis zur gleichen Epoche, wird der aktuelle Ausbildungsjob SageMaker beendet.
Algorithmen, die das vorzeitige Beenden unterstützen
Um das vorzeitige Beenden zu unterstützen, muss ein Algorithmus objektive Metriken für jede Epoche ausgeben. Die folgenden integrierten SageMaker Algorithmen unterstützen ein frühzeitiges Stoppen:
-
Algorithmus für lineares Lernen— Wird nur unterstützt, wenn Sie
objective_loss
sie als Zielmetrik verwenden.
Diese Liste der integrierten Algorithmen, die das vorzeitige Beenden unterstützen, ist auf dem Stand vom 13. Dezember 2018. Andere integrierte Algorithmen unterstützen möglicherweise in Zukunft das vorzeitige Beenden. Wenn ein Algorithmus eine Metrik ausgibt, die als objektive Metrik für einen Hyperparameter-Optimierungsauftrag verwendet werden kann (vorzugsweise eine Validierungsmetrik), unterstützt er das vorzeitige Beenden.
Um das vorzeitige Beenden mit Ihrem eigenen Algorithmus zu verwenden, müssen Sie Ihre Algorithmen so entwickeln, dass sie den Wert der objektiven Metrik nach jeder Epoche ausgeben. Die folgende Liste zeigt, wie Sie dies in verschiedenen Frameworks erreichen können:
- TensorFlow
-
Verwenden Sie die
tf.keras.callbacks.ProgbarLogger
-Klasse. Informationen finden Sie in den tf.keras.callbacks. ProgbarLoggerAPI. - MXNet
-
Verwenden Sie die
mxnet.callback.LogValidationMetricsCallback
. Informationen finden Sie in den mxnet.callback-APIs. - Chainer
-
Erweitern Sie den Chainer durch Verwendung der
extensions.Evaluator
-Klasse. Informationen finden Sie in der Chainer.training.Extensions.Evaluator-API. - PyTorch und Spark
-
Es gibt keine High-Level-Unterstützung. Sie müssen Ihren Schulungscode explizit so entwickeln, dass er objektive Metriken berechnet und sie nach jeder Epoche in Protokolle schreibt.