

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.

# Beispiel-Notebooks und Codebeispiele zur Konfiguration von Debugger-Regeln
<a name="debugger-built-in-rules-example"></a>

**Anmerkung**  
Amazon SageMaker Debugger steht neuen Kunden nicht mehr offen. Bestehende Kunden können den Service weiterhin wie gewohnt nutzen. AWS investiert weiterhin in Sicherheits- und Verfügbarkeitsverbesserungen für Debugger, aber wir planen nicht, neue Funktionen einzuführen. Weitere Informationen finden Sie unter [Änderung der Debugger-Verfügbarkeit](debugger-availability-change.md). 

In den folgenden Abschnitten finden Sie Notizbücher und Codebeispiele zur Verwendung von Debugger-Regeln zur Überwachung von SageMaker Trainingsjobs.

**Topics**
+ [Beispiel für Notebooks mit integrierten Debugger-Regeln](#debugger-built-in-rules-notebook-example)
+ [Beispielcode für integrierte Debugger-Regeln](#debugger-deploy-built-in-rules)
+ [Integrierte Debugger-Regeln mit Parameteränderungen verwenden](#debugger-deploy-modified-built-in-rules)

## Beispiel für Notebooks mit integrierten Debugger-Regeln
<a name="debugger-built-in-rules-notebook-example"></a>

Die folgenden Beispiel-Notizbücher zeigen, wie die integrierten Debugger-Regeln verwendet werden, wenn Trainingsjobs mit Amazon AI ausgeführt werden: SageMaker 
+ [Verwenden einer integrierten SageMaker Debugger-Regel mit TensorFlow ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_builtin_rule)
+ [Verwendung einer integrierten SageMaker Debugger-Regel mit Managed Spot Training und MXNet ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mxnet_spot_training)
+ [Verwendung einer im SageMaker Debugger integrierten Regel mit Parameteränderungen für eine Echtzeit-Analyse der Trainingsjobs mit XGBoost ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/xgboost_realtime_analysis)

Während Sie die Beispiel-Notebooks in SageMaker Studio ausführen, finden Sie die erstellte Trainingsjob-Testversion auf der Registerkarte ** Studio-Experimentliste. ** Wie im folgenden Screenshot gezeigt, können Sie beispielsweise das Fenster **Testkomponente beschreiben** Ihres aktuellen Trainingsauftrags finden und öffnen. Auf der Registerkarte Debugger können Sie überprüfen, ob die Debugger-Regeln `vanishing_gradient()` und`loss_not_decreasing()`, die Trainingssitzung parallel überwachen. Eine vollständige Anleitung, wie Sie die Komponenten für den Test zum Training in der Studio-Benutzeroberfläche finden, finden Sie unter [ SageMaker Studio — Experimente, Versuche und Testkomponenten ](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks.html#studio-tasks-experiments) anzeigen.

![Ein Bild der Ausführung eines Trainingsjobs mit in SageMaker Studio aktivierten integrierten Debugger-Regeln.](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/debugger/debugger-built-in-rule-studio.png)


Es gibt zwei Möglichkeiten, die integrierten Debugger-Regeln in der SageMaker KI-Umgebung zu verwenden: Stellen Sie die integrierten Regeln bereit, sobald sie vorbereitet sind, oder passen Sie ihre Parameter nach Ihren Wünschen an. Im Folgenden erfahren Sie anhand von Beispielcodes, wie Sie integrierte Regeln verwenden.

## Beispielcode für integrierte Debugger-Regeln
<a name="debugger-deploy-built-in-rules"></a>

Das folgende Codebeispiel zeigt, wie die integrierten Debugger-Regeln mit der Methode `Rule.sagemaker` festgelegt werden. Um die integrierten Regeln anzugeben, die Sie ausführen möchten, rufen Sie die integrierten Regeln mithilfe der `rules_configs` API-Operation auf. Eine vollständige Liste der integrierten Debugger-Regeln und Standardparameterwerte finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

```
import boto3
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role
built_in_rules=[ 
            Rule.sagemaker(rule_configs.vanishing_gradient()),
            Rule.sagemaker(rule_configs.loss_not_decreasing())
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the Debugger built-in rules
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name='debugger-built-in-rules-demo',
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules
)
sagemaker_model_trainer.train()
```

**Anmerkung**  
Die integrierten Debugger-Regeln werden parallel zu Ihrem Trainingsauftrag ausgeführt. Die maximale Anzahl von integrierten Regelcontainern für einen Trainingsauftrag ist 20. 

Weitere Informationen zur Debugger-Regelklasse, zu den Methoden und Parametern finden Sie in der [ SageMaker Debugger-Regelklasse ](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html) im [ Amazon SageMaker Python SDK. ](https://sagemaker.readthedocs.io/en/stable) 

Ein Beispiel für die Anpassung der Debugger-Regelparameter finden Sie im folgenden Abschnitt [Integrierte Debugger-Regeln mit Parameteränderungen verwenden](#debugger-deploy-modified-built-in-rules).

## Integrierte Debugger-Regeln mit Parameteränderungen verwenden
<a name="debugger-deploy-modified-built-in-rules"></a>

Das folgende Codebeispiel zeigt die Struktur der integrierten Regeln zur Anpassung von Parametern. In diesem Beispiel erfasst `stalled_training_rule` alle 50 Schritte die `losses` Tensorerfassung aus einem Trainingsauftrag und alle 10 Schritte aus einer Evaluierungsphase. Wenn der Trainingsprozess ins Stocken gerät und 120 Sekunden lang keine Tensorausgaben erfasst werden, stoppt der `stalled_training_rule` den Trainingsjob. 

```
import boto3
import time
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role

# call the built-in rules and modify the CollectionConfig parameters

base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time()))

built_in_rules_modified=[
    Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                'threshold': '120',
                'training_job_name_prefix': base_job_name_prefix,
                'stop_training_on_fire' : 'True'
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                      "train.save_interval": "50",
                      "eval.save_interval": "10"
                } 
            )
        ]
    )
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the modified Debugger built-in rule
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name=base_job_name_prefix,
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules_modified
)
sagemaker_model_trainer.train()
```