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.
Erstellen benutzerdefinierter Debugger-Regeln für die Ausbildungsauftragsanalyse
Sie können benutzerdefinierte Regeln erstellen, um Ihren Schulungsauftrag mit den Debugger-Rule-APIs und der Open Source zu überwachensmdebug-Python-Bibliothek
Themen
Voraussetzungen für das Erstellen von benutzerdefinierten Debugger-Regeln
Um benutzerdefinierte Debugger-Regeln zu erstellen, benötigen Sie die folgenden Voraussetzungen.
Ihr eigenes benutzerdefiniertes Regelpython-Skript
Registrierungs-URLs für Amazon SageMaker Debugger für benutzerdefinierte Regelauswertungsprogramme
Verwenden Sie die Debugger-Client-Bibliotheksmdebug
So erstellen Sie ein benutzerdefiniertes Regelpython-Skript
Diesmdebug
Die Rule-API bietet eine Schnittstelle zum Einrichten Ihrer eigenen benutzerdefinierten Regeln. Das folgende Python-Skript ist ein Beispiel für das Erstellen einer benutzerdefinierten Regel:CustomGradientRule
aus. Diese benutzerdefinierte Regel des Tutorials überwacht, ob die Farbverläufe zu groß werden, und legt den Standardschwellenwert auf 10 fest. Die benutzerdefinierte Regel verwendet eine Basisstudie, die von einem SageMaker-Schätzer erstellt wurde, wenn sie einen Schulungsauftrag initiiert.
from smdebug.rules.rule import Rule class CustomGradientRule(Rule): def __init__(self, base_trial, threshold=10.0): super().__init__(base_trial) self.threshold = float(threshold) def invoke_at_step(self, step): for tname in self.base_trial.tensor_names(collection="gradients"): t = self.base_trial.tensor(tname) abs_mean = t.reduction_value(step, "mean", abs=True) if abs_mean > self.threshold: return True return False
Sie können mehrere benutzerdefinierte Regelklassen beliebig im selben Python-Skript hinzufügen und sie für alle Trainingsauftragsversuche bereitstellen, indem Sie benutzerdefinierte Regelobjekte im folgenden Abschnitt erstellen.
Verwenden Sie die Debugger-APIs, um Ihre eigenen benutzerdefinierten Regeln auszuführen
Das folgende Codebeispiel zeigt, wie Sie eine benutzerdefinierte Regel mit dem konfigurierenAmazon SageMaker Python SDK
from sagemaker.debugger import Rule, CollectionConfig custom_rule = Rule.custom( name='MyCustomRule', image_uri='759209512951.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rule-evaluator:latest', instance_type='ml.t3.medium', source='path/to/my_custom_rule.py', rule_to_invoke='CustomGradientRule', collections_to_save=[CollectionConfig("gradients")], rule_parameters={"threshold": "20.0"} )
In der folgenden Liste wird der Debugger erklärtRule.custom
API-Argumente.
-
name
(str): Geben Sie einen benutzerdefinierten Regelnamen an, wie Sie möchten. -
image_uri
(str): Dies ist das Bild des Containers, der die Logik hat, Ihre benutzerdefinierte Regel zu verstehen. Es bezieht und wertet die angegebenen Tensorsammlungen aus, die Sie im Schulungsjob speichern. Die Liste der Open Source SageMaker-Rule-Evaluator-Images finden Sie unterRegistrierungs-URLs für Amazon SageMaker Debugger für benutzerdefinierte Regelauswertungsprogrammeaus. -
instance_type
(str): Sie müssen eine Instanz angeben, um einen Regeldocker-Container zu erstellen. Dies dreht die Instanz parallel zu einem Trainingscontainer. -
source
(str): Dies ist der lokale Pfad oder der Amazon S3 S3-URI zu Ihrem benutzerdefinierten Regelskript. -
rule_to_invoke
(str): Dies gibt die bestimmte Rule-Klassenimplementierung in Ihrem benutzerdefinierten Regelskript an. SageMaker unterstützt jeweils nur eine Regel, die in einem Regeljob ausgewertet werden muss. -
collections_to_save
(str): Dies gibt an, welche Tensor-Sammlungen Sie speichern, damit die Regel ausgeführt werden soll. -
rule_parameters
(Wörterbuch): Dies akzeptiert Parametereingaben in einem Wörterbuchformat. Sie können die Parameter anpassen, die Sie im benutzerdefinierten Regelskript konfiguriert haben.
Nachdem Sie diecustom_rule
-Objekt können Sie es verwenden, um einen SageMaker-Schätzer für alle Ausbildungsjobs zu erstellen. Geben Sie dieentry_point
zu deinem Trainingsskript. Sie müssen keine Änderung Ihres Trainingsskripts vornehmen.
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( role=sagemaker.get_execution_role(), base_job_name='smdebug-custom-rule-demo-tf-keras', entry_point='path/to/your_training_script.py' train_instance_type='ml.p2.xlarge' ... # debugger-specific arguments below rules = [custom_rule] ) estimator.fit()
Weitere Varianten und erweiterte Beispiele für die Verwendung benutzerdefinierter Debugger-Regeln finden Sie in den folgenden Beispiel-Notebooks.