

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker Python SDK を使用して Debugger でトレーニングジョブを開始する
<a name="debugger-configuration-for-debugging"></a>

**注記**  
Amazon SageMaker デバッガーは新規顧客に公開されなくなりました。既存のお客様は、サービスを通常どおり引き続き使用できます。 はデバッガーのセキュリティと可用性の向上に AWS 引き続き投資しますが、新機能を導入する予定はありません。詳細については、「[デバッガーの可用性の変更](debugger-availability-change.md)」を参照してください。

SageMaker Debugger で SageMaker AI 推定器を設定するには、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) を使用し、Debugger 固有のパラメータを指定します。デバッグ機能を最大限に活用するには、`debugger_hook_config`、`tensorboard_output_config`、および `rules` の 3 つのパラメータを設定する必要があります。

**重要**  
トレーニングジョブを起動するために推定器フィットメソッドをコンストラクトして実行する前に、「[フックを登録するためにトレーニングスクリプトを適応させる](debugger-modify-script.md)」で説明されている手順に従ってトレーニングスクリプトを調整してください。

## Debugger 固有のパラメータを使用した SageMaker AI 推定器をコンストラクトする
<a name="debugger-configuration-structure"></a>

このセクションのコード例は、Debugger 固有のパラメータを使用して SageMaker AI 推定器をコンストラクトする方法を示しています。

**注記**  
以下のコード例は、SageMaker AI フレームワーク推定器をコンストラクトするためのテンプレートであり、直接実行できるものではありません。次のセクションに進み、デバッガー固有のパラメータを設定する必要があります。

```
# An example of creating a training job with debugger configuration
import boto3
from sagemaker.core import image_uris
from sagemaker.core.resources import TrainingJob
from sagemaker.core.shapes import (
    AlgorithmSpecification,
    ResourceConfig,
    OutputDataConfig,
    StoppingCondition,
    DebugHookConfig,
    CollectionConfiguration,
    DebugRuleConfiguration,
)

session=boto3.session.Session()
region=session.region_name

# Retrieve the training image for your framework
# Change framework to "tensorflow", "mxnet", "xgboost", etc. as needed
training_image = image_uris.retrieve(
    framework="pytorch",  # or "tensorflow", "mxnet", "xgboost"
    region=region,
    version="{{1.12.0}}",
    py_version="{{py37}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

debug_hook_config={{DebugHookConfig(...)}}
debug_rule_configurations=[
    {{DebugRuleConfiguration(
        rule_configuration_name="built_in_rule",
        rule_evaluator_image="rule-evaluator-image-uri",
    )}}
]

TrainingJob.create(
    training_job_name="{{debugger-demo}}",
    algorithm_specification=AlgorithmSpecification(
        training_image=training_image,
        training_input_mode="File",
    ),
    role_arn="{{arn:aws:iam::123456789012:role/SageMakerRole}}",
    resource_config=ResourceConfig(instance_type="{{ml.p3.2xlarge}}", instance_count={{1}}, volume_size_in_gb={{30}}),
    output_data_config=OutputDataConfig(s3_output_path="{{s3://bucket/output}}"),
    stopping_condition=StoppingCondition(max_runtime_in_seconds={{3600}}),

    # Debugger-specific parameters
    debug_hook_config=debug_hook_config,
    debug_rule_configurations=debug_rule_configurations,
)
```

SageMaker Debugger を起動するには、以下のパラメータを設定します。
+ `debugger_hook_config` ([`DebuggerHookConfig`](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DebuggerHookConfig) のオブジェクト) — [フックを登録するためにトレーニングスクリプトを適応させる](debugger-modify-script.md) の間に適応されたトレーニングスクリプトでフックを有効にするために必要で、トレーニングジョブから出力テンソルを収集し、保護された S3 バケットまたはローカルマシンにテンソルを保存するように SageMaker トレーニングランチャー (推定器) を設定します。`debugger_hook_config` パラメータの設定方法については、「[テンソルを保存するように SageMaker Debugger を設定する](debugger-configure-hook.md)」を参照してください。
+ `rules` ([`Rule`](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.Rule) オブジェクトのリスト) - リアルタイムで実行する SageMaker Debugger の組み込みルールをアクティブ化するには、このパラメータを設定します。組み込みルールは、セキュアな S3 バケットに保存されている出力テンソルを分析することで、モデルのトレーニングの進行状況を自動的にデバッグし、トレーニングの問題を検出するロジックです。`rules` パラメータの設定方法については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。出力テンソルをデバッグするための組み込みルールの完全なリストについては、「[デバッガールール](debugger-built-in-rules.md#debugger-built-in-rules-Rule)」を参照してください。トレーニングの問題を検出する独自のロジックを作成したい場合は、「[Debugger クライアントライブラリを使用してカスタムルールを作成する](debugger-custom-rules.md)」を参照してください。
**注記**  
組み込みルールは、SageMaker トレーニングインスタンスでのみ使用できます。ローカルモードでは使用できません。
+ `tensorboard_output_config` ([`TensorBoardOutputConfig`](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.TensorBoardOutputConfig) のオブジェクト) — TensorBoard 互換フォーマットの出力テンソルを収集し、`TensorBoardOutputConfig` オブジェクトで指定されている S3 出力パスに保存するように SageMaker Debugger を設定します。詳細については[TensorBoard で Amazon SageMaker Debugger 出力テンソルを視覚化する](debugger-enable-tensorboard-summaries.md)を参照してください。
**注記**  
`tensorboard_output_config` は `debugger_hook_config` パラメータを使用して設定する必要があります。そのためには、`sagemaker-debugger` フックを追加してトレーニングスクリプトを調整する必要もあります。

**注記**  
SageMaker Debugger は、出力テンソルを S3 バケットのサブフォルダに安全に保存します。例えば、アカウントのデフォルトの S3 バケット URI の形式は、`s3://amzn-s3-demo-bucket-sagemaker-<region>-<12digit_account_id>/<base-job-name>/<debugger-subfolders>/` です。SageMaker Debugger によって作成されるサブフォルダは、`debug-output` および `rule-output` の 2 つです。`tensorboard_output_config` パラメータを追加すると、`tensorboard-output` フォルダも表示されます。

Debugger 固有パラメータの詳細な設定方法については、次のトピックを参照してください。

**Topics**
+ [Debugger 固有のパラメータを使用した SageMaker AI 推定器をコンストラクトする](#debugger-configuration-structure)
+ [テンソルを保存するように SageMaker Debugger を設定する](debugger-configure-hook.md)
+ [Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)
+ [Debugger をオフにする](debugger-turn-off.md)
+ [Debugger 用の便利な SageMaker AI 推定器クラスメソッド](debugger-estimator-classmethods.md)