

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.

# Debugger mithilfe SageMaker der API konfigurieren
<a name="debugger-createtrainingjob-api"></a>

 Die vorherigen Themen konzentrieren sich auf die Verwendung von Debugger über das Amazon SageMaker Python SDK, das ein Wrapper-Around ist, AWS SDK für Python (Boto3) und auf SageMaker API-Operationen. Dies bietet ein erstklassiges Erlebnis beim Zugriff auf die SageMaker Amazon-API-Operationen. Falls Sie die SageMaker API-Operationen manuell mit AWS Boto3 oder AWS Command Line Interface (CLI) für andere Anwendungen wie Java SDKs, Go und C\$1\$1 konfigurieren müssen, wird in diesem Abschnitt beschrieben, wie Sie die folgenden Low-Level-API-Operationen konfigurieren.

**Topics**
+ [JSON (AWS CLI)](debugger-built-in-rules-api.CLI.md)
+ [SDK für Python (Boto3)](debugger-built-in-rules-api.Boto3.md)

# JSON (AWS CLI)
<a name="debugger-built-in-rules-api.CLI"></a>

Die integrierten Regeln von Amazon SageMaker Debugger können mithilfe der SageMaker [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)AI-API-Operation für einen Trainingsjob mithilfe der [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)Objekte [DebugHookConfig[DebugRuleConfiguration[ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html),, und konfiguriert werden. Sie müssen den richtigen Bild-URI im `RuleEvaluatorImage` Parameter angeben. In den folgenden Beispielen erfahren Sie, wie Sie die [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)anzufordernden JSON-Zeichenketten einrichten.

Der folgende Code zeigt eine vollständige JSON-Vorlage zum Ausführen eines Trainingsauftrags mit den erforderlichen Einstellungen und Debugger-Konfigurationen. Speichern Sie die Vorlage als JSON-Datei in Ihrem Arbeitsverzeichnis und führen Sie den Trainingsjob mit AWS CLI aus. Speichern Sie zum Beispiel den folgenden Code als `debugger-training-job-cli.json`.

**Anmerkung**  
Stellen Sie sicher, dass Sie die richtigen Docker-Container-Images verwenden. Informationen zu AWS Deep Learning-Container-Images finden Sie unter [Verfügbare Deep Learning Containers Learning-Container-Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules).

```
{
   "TrainingJobName": "debugger-aws-cli-test",
   "RoleArn": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-YYYYMMDDT123456",
   "AlgorithmSpecification": {
      // Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage.
      "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04",
      "TrainingInputMode": "File",
      "EnableSageMakerMetricsTimeSeries": false
   },
   "HyperParameters": {
      "sagemaker_program": "entry_point/tf-hvd-train.py",
      "sagemaker_submit_directory": "s3://sagemaker-us-west-2-111122223333/debugger-boto3-profiling-test/source.tar.gz"
   },
   "OutputDataConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/output"
   },
   "DebugHookConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/debug-output",
      "CollectionConfigurations": [
         {
            "CollectionName": "losses",
            "CollectionParameters" : {
                "train.save_interval": "50"
            }
         }
      ]
   },
   "DebugRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "LossNotDecreasing",
         "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
         "RuleParameters": {"rule_to_invoke": "LossNotDecreasing"}
      }
   ],
   "ProfilerConfig": { 
      "S3OutputPath": "s3://sagemaker-us-west-2-111122223333/debugger-aws-cli-test/profiler-output",
      "ProfilingIntervalInMilliseconds": 500,
      "ProfilingParameters": {
          "DataloaderProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, \"MetricsRegex\": \".*\", }",
          "DetailedProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, }",
          "PythonProfilingConfig": "{\"StartStep\": 5, \"NumSteps\": 3, \"ProfilerName\": \"cprofile\", \"cProfileTimer\": \"total_time\"}",
          "LocalPath": "/opt/ml/output/profiler/" 
      }
   },
   "ProfilerRuleConfigurations": [ 
      { 
         "RuleConfigurationName": "ProfilerReport",
         "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
         "RuleParameters": {"rule_to_invoke": "ProfilerReport"}
      }
   ],
   "ResourceConfig": { 
      "InstanceType": "ml.p3.8xlarge",
      "InstanceCount": 1,
      "VolumeSizeInGB": 30
   },
   
   "StoppingCondition": { 
      "MaxRuntimeInSeconds": 86400
   }
}
```

Führen Sie nach dem Speichern der JSON-Datei den folgenden Befehl in Ihrem Terminal aus. (Verwenden Sie `!` am Anfang der Zeile, wenn Sie ein Jupyter Notebook verwenden.)

```
aws sagemaker create-training-job --cli-input-json file://debugger-training-job-cli.json
```

## So konfigurieren Sie eine Debugger-Regel für das Debuggen von Modellparametern
<a name="debugger-built-in-rules-api-debug.CLI"></a>

Die folgenden Codebeispiele zeigen, wie eine integrierte `VanishingGradient` Regel mithilfe dieser SageMaker API konfiguriert wird. 

**Um zu aktivieren, dass der Debugger Ausgabetensoren sammelt**

Geben Sie die Debugger-Hook-Konfiguration wie folgt an:

```
"DebugHookConfig": {
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output",
    "CollectionConfigurations": [
        {
            "CollectionName": "gradients",
            "CollectionParameters" : {
                "save_interval": "500"
            }
        }
    ]
}
```

Dies führt dazu, dass der Trainingsauftrag die Tensorsammlung, `gradients`, alle `save_interval` von 500 Schritten speichert. Informationen zu verfügbaren `CollectionName` Werten finden Sie unter [Integrierte Debugger-Sammlungen](https://github.com/awslabs/sagemaker-debugger/blob/master/docs/api.md#built-in-collections) in der *Dokumentation zur SMDebug Clientbibliothek*. Verfügbare `CollectionParameters` Parameterschlüssel und -werte finden Sie in der [https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)Klasse in der *SageMaker Python SDK-Dokumentation*.

**Um Debugger-Regeln für das Debuggen der Ausgabetensoren zu aktivieren**

Das folgende `DebugRuleConfigurations` API-Beispiel zeigt, wie die integrierte `VanishingGradient` Regel für die gespeicherte `gradients` Sammlung ausgeführt wird.

```
"DebugRuleConfigurations": [
    {
        "RuleConfigurationName": "VanishingGradient",
        "RuleEvaluatorImage": "503895931360.dkr.ecr.us-east-1.amazonaws.com/sagemaker-debugger-rules:latest",
        "RuleParameters": {
            "rule_to_invoke": "VanishingGradient",
            "threshold": "20.0"
        }
    }
]
```

Mit einer Konfiguration wie in diesem Beispiel startet der Debugger einen Regelauswertungsauftrag für Ihren Trainingsauftrag unter Verwendung der `VanishingGradient`-Regel für die Sammlung des `gradients`-Tensors. Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

## Um eine integrierte Debugger-Regel für das Profiling von System- und Framework-Metriken zu konfigurieren
<a name="debugger-built-in-rules-api-profile.CLI"></a>

Der folgende Beispielcode zeigt, wie der ProfilerConfig API-Vorgang spezifiziert wird, um die Erfassung von System- und Framework-Metriken zu ermöglichen.

**Um Debugger-Profiling zur Sammlung von System- und Framework-Metriken zu aktivieren**

------
#### [ Target Step ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/profiler-output", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": 500, 
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3 }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartStep\": 5, \"NumSteps\": 3, \"ProfilerName\": \"cProfile\", \"cProfileTimer\": \"total_time\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/" 
    }
}
```

------
#### [ Target Time Duration ]

```
"ProfilerConfig": { 
    // Optional. Path to an S3 bucket to save profiling outputs
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/profiler-output", 
    // Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    "ProfilingIntervalInMilliseconds": 500,
    "ProfilingParameters": {
        "DataloaderProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10, \"MetricsRegex\": \".*\" }",
        "DetailedProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10 }",
        // For PythonProfilingConfig,
        // available ProfilerName options: cProfile, Pyinstrument
        // available cProfileTimer options only when using cProfile: cpu, off_cpu, total_time
        "PythonProfilingConfig": "{ \"StartTimeInSecSinceEpoch\": 12345567789, \"DurationInSeconds\": 10, \"ProfilerName\": \"cProfile\", \"cProfileTimer\": \"total_time\" }",
        // Optional. Local path for profiling outputs
        "LocalPath": "/opt/ml/output/profiler/"  
    }
}
```

------

**Um Debugger-Regeln für die das Profiling der Metriken zu aktivieren**

Das folgende Codebeispiel zeigt, wie Sie die `ProfilerReport`-Regel konfigurieren.

```
"ProfilerRuleConfigurations": [ 
    {
        "RuleConfigurationName": "ProfilerReport",
        "RuleEvaluatorImage": "895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest",
        "RuleParameters": {
            "rule_to_invoke": "ProfilerReport",
            "CPUBottleneck_cpu_threshold": "90",
            "IOBottleneck_threshold": "90"
        }
    }
]
```

Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

## Die Profiling-Konfiguration des Debuggers mithilfe der `UpdateTrainingJob`-API aktualisieren
<a name="debugger-updatetrainingjob-api.CLI"></a>

Die Konfiguration der Debugger-Profilerstellung kann mithilfe des [UpdateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateTrainingJob.html)API-Vorgangs aktualisiert werden, während Ihr Trainingsjob ausgeführt wird. Konfigurieren Sie neue [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)Objekte [ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)und geben Sie den Namen des Trainingsjobs für den `TrainingJobName` Parameter an.

```
{
    "ProfilerConfig": { 
        "DisableProfiler": boolean,
        "ProfilingIntervalInMilliseconds": number,
        "ProfilingParameters": { 
            "string" : "string" 
        }
    },
    "ProfilerRuleConfigurations": [ 
        { 
            "RuleConfigurationName": "string",
            "RuleEvaluatorImage": "string",
            "RuleParameters": { 
                "string" : "string" 
            }
        }
    ],
    "TrainingJobName": "your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS"
}
```

## Der `CreateTrainingJob`-API eine benutzerdefinierte Debugger-Regelkonfiguration hinzufügen
<a name="debugger-custom-rules-api.CLI"></a>

Eine benutzerdefinierte Regel kann für einen Trainingsjob mithilfe der [ DebugRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)Objekte [ DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)und in der [ CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API-Operation konfiguriert werden. Das folgende Codebeispiel zeigt, wie eine benutzerdefinierte `ImproperActivation` Regel, die mit der Bibliothek *smdebug* geschrieben wurde, mithilfe dieser SageMaker API-Operation konfiguriert wird. In diesem Beispiel wird davon ausgegangen, dass Sie die benutzerdefinierte Regel in der Datei *custom\$1rules.py* geschrieben und in einen Amazon-S3-Bucket hochgeladen haben. Das Beispiel stellt vorgefertigte Docker-Images bereit, mit denen Sie Ihre benutzerdefinierten Regeln ausführen können. Diese werden unter [Amazon SageMaker Debugger-Image URIs für benutzerdefinierte Regelauswerter](debugger-reference.md#debuger-custom-rule-registry-ids) gelistet. Sie geben die URL-Registry-Adresse für das vorgefertigte Docker-Image im `RuleEvaluatorImage`-Parameter an.

```
"DebugHookConfig": {
    "S3OutputPath": "s3://<default-bucket>/<training-job-name>/debug-output",
    "CollectionConfigurations": [
        {
            "CollectionName": "relu_activations",
            "CollectionParameters": {
                "include_regex": "relu",
                "save_interval": "500",
                "end_step": "5000"
            }
        }
    ]
},
"DebugRulesConfigurations": [
    {
        "RuleConfigurationName": "improper_activation_job",
        "RuleEvaluatorImage": "552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest",
        "InstanceType": "ml.c4.xlarge",
        "VolumeSizeInGB": 400,
        "RuleParameters": {
           "source_s3_uri": "s3://bucket/custom_rules.py",
           "rule_to_invoke": "ImproperActivation",
           "collection_names": "relu_activations"
        }
    }
]
```

Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

# SDK für Python (Boto3)
<a name="debugger-built-in-rules-api.Boto3"></a>

Die integrierten Regeln von Amazon SageMaker Debugger können mithilfe der [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job)Funktion des AWS Boto3 SageMaker AI-Clients für einen Trainingsjob konfiguriert werden. Sie müssen den richtigen Image-URI im `RuleEvaluatorImage` Parameter angeben. Die folgenden Beispiele zeigen Ihnen, wie Sie den Anforderungstext für die [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job) Funktion einrichten.

Der folgende Code zeigt ein vollständiges Beispiel dafür, wie Sie den Debugger für den `create_training_job()` Anforderungstext konfigurieren und einen Trainingsjob in starten`us-west-2`, vorausgesetzt, dass ein Trainingsskript `entry_point/train.py` vorbereitet wurde mit. TensorFlow Ein end-to-end Beispiel-Notebook finden Sie unter [Profiling TensorFlow Multi GPU Multi Node Training Job with Amazon SageMaker Debugger (Boto3](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_profiling/tf-resnet-profiling-multi-gpu-multi-node-boto3.html)).

**Anmerkung**  
Stellen Sie sicher, dass Sie die richtigen Docker-Container-Images verwenden. Verfügbare AWS Deep Learning-Container-Images finden Sie unter [Verfügbare Deep Learning Containers Learning-Container-Images](https://github.com/aws/deep-learning-containers/blob/master/available_images.md). Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules).

```
import sagemaker, boto3
import datetime, tarfile

# Start setting up a SageMaker session and a Boto3 SageMaker client
session = sagemaker.Session()
region = session.boto_region_name
bucket = session.default_bucket()

# Upload a training script to a default Amazon S3 bucket of the current SageMaker session
source = 'source.tar.gz'
project = 'debugger-boto3-test'

tar = tarfile.open(source, 'w:gz')
tar.add ('entry_point/train.py') # Specify the directory and name of your training script
tar.close()

s3 = boto3.client('s3')
s3.upload_file(source, bucket, project+'/'+source)

# Set up a Boto3 session client for SageMaker
sm = boto3.Session(region_name=region).client("sagemaker")

# Start a training job
sm.create_training_job(
    TrainingJobName='debugger-boto3-'+datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),
    HyperParameters={
        'sagemaker_submit_directory': 's3://'+bucket+'/'+project+'/'+source,
        'sagemaker_program': '/entry_point/train.py' # training scrip file location and name under the sagemaker_submit_directory
    },
    AlgorithmSpecification={
        # Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage.
        'TrainingImage': '763104351884.dkr.ecr.us-west-2.amazonaws.com/tensorflow-training:2.4.1-gpu-py37-cu110-ubuntu18.04',
        'TrainingInputMode': 'File',
        'EnableSageMakerMetricsTimeSeries': False
    },
    RoleArn='arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole-20201014T161125',
    OutputDataConfig={'S3OutputPath': 's3://'+bucket+'/'+project+'/output'},
    ResourceConfig={
        'InstanceType': 'ml.p3.8xlarge',
        'InstanceCount': 1,
        'VolumeSizeInGB': 30
    },
    StoppingCondition={
        'MaxRuntimeInSeconds': 86400
    },
    DebugHookConfig={
        'S3OutputPath': 's3://'+bucket+'/'+project+'/debug-output',
        'CollectionConfigurations': [
            {
                'CollectionName': 'losses',
                'CollectionParameters' : {
                    'train.save_interval': '500',
                    'eval.save_interval': '50'
                }
            }
        ]
    },
    DebugRuleConfigurations=[
        {
            'RuleConfigurationName': 'LossNotDecreasing',
            'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
            'RuleParameters': {'rule_to_invoke': 'LossNotDecreasing'}
        }
    ],
    ProfilerConfig={
        'S3OutputPath': 's3://'+bucket+'/'+project+'/profiler-output',
        'ProfilingIntervalInMilliseconds': 500,
        'ProfilingParameters': {
            'DataloaderProfilingConfig': '{"StartStep": 5, "NumSteps": 3, "MetricsRegex": ".*", }',
            'DetailedProfilingConfig': '{"StartStep": 5, "NumSteps": 3, }',
            'PythonProfilingConfig': '{"StartStep": 5, "NumSteps": 3, "ProfilerName": "cprofile", "cProfileTimer": "total_time"}',
            'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
        }
    },
    ProfilerRuleConfigurations=[
        {
            'RuleConfigurationName': 'ProfilerReport',
            'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
            'RuleParameters': {'rule_to_invoke': 'ProfilerReport'}
        }
    ]
)
```

## So konfigurieren Sie eine Debugger-Regel für das Debuggen von Modellparametern
<a name="debugger-built-in-rules-api-debug.Boto3"></a>

Die folgenden Codebeispiele zeigen, wie eine integrierte `VanishingGradient` Regel mithilfe dieser SageMaker API konfiguriert wird. 

**Um zu aktivieren, dass der Debugger Ausgabetensoren sammelt**

Geben Sie die Debugger-Hook-Konfiguration wie folgt an:

```
DebugHookConfig={
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/debug-output',
    'CollectionConfigurations': [
        {
            'CollectionName': 'gradients',
            'CollectionParameters' : {
                'train.save_interval': '500',
                'eval.save_interval': '50'
            }
        }
    ]
}
```

Dies führt dazu, dass der Trainingsauftrag eine Tensorsammlung, `gradients`, alle `save_interval` von 500 Schritten speichert. Informationen zu verfügbaren `CollectionName` Werten finden Sie unter [Integrierte Debugger-Sammlungen](https://github.com/awslabs/sagemaker-debugger/blob/master/docs/api.md#built-in-collections) in der *Dokumentation zur SMDebug Clientbibliothek*. Verfügbare `CollectionParameters` Parameterschlüssel und -werte finden Sie in der [https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)Klasse in der *SageMaker Python SDK-Dokumentation*.

**Um Debugger-Regeln für das Debuggen der Ausgabetensoren zu aktivieren**

Das folgende `DebugRuleConfigurations` API-Beispiel zeigt, wie die integrierte `VanishingGradient` Regel für die gespeicherte `gradients` Sammlung ausgeführt wird.

```
DebugRuleConfigurations=[
    {
        'RuleConfigurationName': 'VanishingGradient',
        'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
        'RuleParameters': {
            'rule_to_invoke': 'VanishingGradient',
            'threshold': '20.0'
        }
    }
]
```

Mit einer Konfiguration wie in diesem Beispiel startet der Debugger einen Regelauswertungsauftrag für Ihren Trainingsauftrag unter Verwendung der `VanishingGradient`-Regel für die Sammlung des `gradients`-Tensors. Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

## Um eine integrierte Debugger-Regel für das Profiling von System- und Framework-Metriken zu konfigurieren
<a name="debugger-built-in-rules-api-profile.Boto3"></a>

Der folgende Beispielcode zeigt, wie der ProfilerConfig API-Vorgang spezifiziert wird, um die Erfassung von System- und Framework-Metriken zu ermöglichen.

**Um Debugger-Profiling zur Sammlung von System- und Framework-Metriken zu aktivieren**

------
#### [ Target Step ]

```
ProfilerConfig={ 
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/profiler-output', # Optional. Path to an S3 bucket to save profiling outputs
    # Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    'ProfilingIntervalInMilliseconds': 500, 
    'ProfilingParameters': {
        'DataloaderProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3, 
            "MetricsRegex": ".*"
        }',
        'DetailedProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3 
        }',
        'PythonProfilingConfig': '{
            "StartStep": 5, 
            "NumSteps": 3, 
            "ProfilerName": "cprofile",  # Available options: cprofile, pyinstrument
            "cProfileTimer": "total_time"  # Include only when using cprofile. Available options: cpu, off_cpu, total_time
        }',
        'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
    }
}
```

------
#### [ Target Time Duration ]

```
ProfilerConfig={ 
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/profiler-output', # Optional. Path to an S3 bucket to save profiling outputs
    # Available values for ProfilingIntervalInMilliseconds: 100, 200, 500, 1000 (1 second), 5000 (5 seconds), and 60000 (1 minute) milliseconds.
    'ProfilingIntervalInMilliseconds': 500,
    'ProfilingParameters': {
        'DataloaderProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10, 
            "MetricsRegex": ".*"
        }',
        'DetailedProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10
        }',
        'PythonProfilingConfig': '{
            "StartTimeInSecSinceEpoch": 12345567789, 
            "DurationInSeconds": 10, 
            "ProfilerName": "cprofile",  # Available options: cprofile, pyinstrument
            "cProfileTimer": "total_time"  # Include only when using cprofile. Available options: cpu, off_cpu, total_time
        }',
        'LocalPath': '/opt/ml/output/profiler/' # Optional. Local path for profiling outputs
    }
}
```

------

**Um Debugger-Regeln für die das Profiling der Metriken zu aktivieren**

Das folgende Codebeispiel zeigt, wie Sie die `ProfilerReport`-Regel konfigurieren.

```
ProfilerRuleConfigurations=[ 
    {
        'RuleConfigurationName': 'ProfilerReport',
        'RuleEvaluatorImage': '895741380848.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rules:latest',
        'RuleParameters': {
            'rule_to_invoke': 'ProfilerReport',
            'CPUBottleneck_cpu_threshold': '90',
            'IOBottleneck_threshold': '90'
        }
    }
]
```

Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).

## Die Profiling-Konfiguration des Debuggers mithilfe des `UpdateTrainingJob` API-Betriebs aktualisieren
<a name="debugger-updatetrainingjob-api.Boto3"></a>

Die Konfiguration der Debugger-Profilerstellung kann während der Ausführung Ihres Trainingsjobs mithilfe der [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.update_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.update_training_job)Funktion des AWS SageMaker Boto3 AI-Clients aktualisiert werden. Konfigurieren Sie neue [ProfilerRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerRuleConfiguration.html)Objekte [ProfilerConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProfilerConfig.html)und geben Sie den Namen des Trainingsjobs für den Parameter an. `TrainingJobName`

```
ProfilerConfig={ 
    'DisableProfiler': boolean,
    'ProfilingIntervalInMilliseconds': number,
    'ProfilingParameters': { 
        'string' : 'string' 
    }
},
ProfilerRuleConfigurations=[ 
    { 
        'RuleConfigurationName': 'string',
        'RuleEvaluatorImage': 'string',
        'RuleParameters': { 
            'string' : 'string' 
        }
    }
],
TrainingJobName='your-training-job-name-YYYY-MM-DD-HH-MM-SS-SSS'
```

## Fügen Sie dem CreateTrainingJob API-Vorgang eine benutzerdefinierte Debuger-Regelkonfiguration hinzu
<a name="debugger-custom-rules-api.Boto3"></a>

Eine benutzerdefinierte Regel kann für einen Trainingsjob mithilfe der [ DebugRuleConfiguration](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugRuleConfiguration.html)Objekte [ DebugHookConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DebugHookConfig.html)und mithilfe der Funktion des AWS Boto3 SageMaker AI-Clients konfiguriert werden. [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_training_job) Das folgende Codebeispiel zeigt, wie eine benutzerdefinierte `ImproperActivation` Regel, die mit der *smdebug-Bibliothek* geschrieben wurde, mithilfe dieser API-Operation konfiguriert wird. SageMaker In diesem Beispiel wird davon ausgegangen, dass Sie die benutzerdefinierte Regel in der Datei *custom\$1rules.py* geschrieben und in einen Amazon-S3-Bucket hochgeladen haben. Das Beispiel stellt vorgefertigte Docker-Images bereit, mit denen Sie Ihre benutzerdefinierten Regeln ausführen können. Diese werden unter [Amazon SageMaker Debugger-Image URIs für benutzerdefinierte Regelauswerter](debugger-reference.md#debuger-custom-rule-registry-ids) gelistet. Sie geben die URL-Registry-Adresse für das vorgefertigte Docker-Image im `RuleEvaluatorImage`-Parameter an.

```
DebugHookConfig={
    'S3OutputPath': 's3://<default-bucket>/<training-job-name>/debug-output',
    'CollectionConfigurations': [
        {
            'CollectionName': 'relu_activations',
            'CollectionParameters': {
                'include_regex': 'relu',
                'save_interval': '500',
                'end_step': '5000'
            }
        }
    ]
},
DebugRulesConfigurations=[
    {
        'RuleConfigurationName': 'improper_activation_job',
        'RuleEvaluatorImage': '552407032007.dkr.ecr.ap-south-1.amazonaws.com/sagemaker-debugger-rule-evaluator:latest',
        'InstanceType': 'ml.c4.xlarge',
        'VolumeSizeInGB': 400,
        'RuleParameters': {
           'source_s3_uri': 's3://bucket/custom_rules.py',
           'rule_to_invoke': 'ImproperActivation',
           'collection_names': 'relu_activations'
        }
    }
]
```

Eine vollständige Liste der verfügbaren Docker-Images für die Verwendung der Debugger-Regeln finden Sie unter [Docker-Images für Debugger-Regeln](debugger-reference.md#debugger-docker-images-rules). Die Schlüssel-Wert-Paare für `RuleParameters` finden Sie unter [Liste der in den Debugger integrierten Regeln](debugger-built-in-rules.md).