

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.

# Benutzerdefinierte Regeln mithilfe der Debugger-Clientbibliothek erstellen
<a name="debugger-custom-rules"></a>

Mithilfe der Debugger-Regel APIs und der [`smdebug`Open-Source-Python-Bibliothek](https://github.com/awslabs/sagemaker-debugger/), die Tools zum Erstellen eigener Regelcontainer bereitstellt, können Sie benutzerdefinierte Regeln erstellen, um Ihren Trainingsjob zu überwachen.

## Voraussetzungen für die Erstellung einer benutzerdefinierten Regel
<a name="debugger-custom-rules-prerequisite"></a>

Um benutzerdefinierte Debugger-Regeln erstellen zu können, benötigen Sie Folgendes.
+ [SageMaker Debugger-Regel. Benutzerdefinierte API](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.Rule.custom)
+ [Die Open-Source Python-Bibliothek smdebug](https://github.com/awslabs/sagemaker-debugger/)
+ Ihr eigenes Python-Skript mit benutzerdefinierten Regeln
+ [Amazon SageMaker Debugger-Image URIs für benutzerdefinierte Regelauswerter](debugger-reference.md#debuger-custom-rule-registry-ids)

**Topics**
+ [

## Voraussetzungen für die Erstellung einer benutzerdefinierten Regel
](#debugger-custom-rules-prerequisite)
+ [

# Die Client-Bibliothek `smdebug` verwenden, um ein Python-Skript für benutzerdefinierte Regeln zu erstellen
](debugger-custom-rules-python-script.md)
+ [

# Verwenden Sie den Debugger APIs , um Ihre eigenen benutzerdefinierten Regeln auszuführen
](debugger-custom-rules-python-sdk.md)

# Die Client-Bibliothek `smdebug` verwenden, um ein Python-Skript für benutzerdefinierte Regeln zu erstellen
<a name="debugger-custom-rules-python-script"></a>

Die `smdebug` Regel-API bietet eine Schnittstelle zum Einrichten Ihrer eigenen benutzerdefinierten Regeln. Das folgende Python-Skript ist ein Beispiel für die Erstellung einer benutzerdefinierten Regel, `CustomGradientRule`. Diese benutzerdefinierte Regel für das Tutorial überwacht, ob die Farbverläufe zu groß werden, und legt den Standardschwellenwert auf 10 fest. Die benutzerdefinierte Regel verwendet eine von einem SageMaker KI-Schätzer erstellte Basisstudie, wenn sie den Trainingsjob einleitet. 

```
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 dem gleichen Python-Skript beliebig viele benutzerdefinierte Regelklassen hinzufügen und sie für alle Trainingsauftragsversuche einsetzen, indem Sie im folgenden Abschnitt benutzerdefinierte Regelobjekte erstellen.

# Verwenden Sie den Debugger APIs , um Ihre eigenen benutzerdefinierten Regeln auszuführen
<a name="debugger-custom-rules-python-sdk"></a>

Das folgende Codebeispiel zeigt, wie eine benutzerdefinierte Regel mit dem [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) konfiguriert wird. In diesem Beispiel wird davon ausgegangen, dass sich das benutzerdefinierte Regelskript, das Sie im vorherigen Schritt erstellt haben, unter '*path/to/my\$1custom\$1rule.py*' befindet.

```
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 werden die Debugger `Rule.custom`-API-Argumente erklärt.
+ `name` (str): Geben Sie beliebig einen benutzerdefinierten Regelnamen an.
+ `image_uri` (str): Dies ist das Bild des Containers, das die Logik enthält, Ihre benutzerdefinierte Regel zu verstehen. Es bezieht die angegebenen Tensorsammlungen, die Sie im Trainingsauftrag speichern, und wertet sie aus. Die Liste der SageMaker Open-Source-AI-Regelauswertungsbilder finden Sie unter[Amazon SageMaker Debugger-Image URIs für benutzerdefinierte Regelauswerter](debugger-reference.md#debuger-custom-rule-registry-ids).
+ `instance_type` (str): Sie müssen eine Instance angeben, um einen Regel-Docker-Container zu erstellen. Dadurch wird die Instance parallel zu einem Trainingscontainer hochgefahren.
+ `source` (str): Dies ist der lokale Pfad oder der Amazon-S3-URI zu Ihrem benutzerdefinierten Regelskript.
+ `rule_to_invoke`(str): Dies gibt die jeweilige Regelklassenimplementierung in Ihrem benutzerdefinierten Regelskript an. SageMaker KI unterstützt jeweils nur eine Regel, die in einem Regeljob ausgewertet werden kann.
+ `collections_to_save` (str): Dies gibt an, welche Tensorsammlungen Sie speichern, damit die Regel ausgeführt werden kann.
+ `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 das `custom_rule` Objekt eingerichtet haben, können Sie es verwenden, um einen SageMaker KI-Schätzer für beliebige Trainingsaufgaben zu erstellen. Geben Sie das `entry_point` in Ihrem Trainingsskript an. Sie müssen keine Änderungen an Ihrem Trainingsskript 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.
+ [Überwachen Sie Ihren Trainingsjob mit benutzerdefinierten Amazon SageMaker Debugger-Regeln](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_keras_custom_rule/tf-keras-custom-rule.html)
+ [PyTorch iteratives Modellbereinigen von und ResNet AlexNet](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_iterative_model_pruning)
+ [Auslösen von CloudWatch Amazon-Ereignissen mithilfe von Debugger-Regeln, um basierend auf dem Trainingsstatus eine Aktion auszuführen mit TensorFlow](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_action_on_rule)