

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

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

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 フレームワーク推定器をコンストラクトするためのテンプレートであり、直接実行できるものではありません。次のセクションに進み、デバッガー固有のパラメータを設定する必要があります。

------
#### [ PyTorch ]

```
# An example of constructing a SageMaker AI PyTorch estimator
import boto3
import sagemaker
from sagemaker.pytorch import PyTorch
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

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

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=PyTorch(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.12.0",
    py_version="py37",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ TensorFlow ]

```
# An example of constructing a SageMaker AI TensorFlow estimator
import boto3
import sagemaker
from sagemaker.tensorflow import TensorFlow
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

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

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule()),
    ProfilerRule.sagemaker(rule_configs.BuiltInRule())
]

estimator=TensorFlow(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="2.9.0",
    py_version="py39",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ MXNet ]

```
# An example of constructing a SageMaker AI MXNet estimator
import sagemaker
from sagemaker.mxnet import MXNet
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=MXNet(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.7.0",
    py_version="py37",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ XGBoost ]

```
# An example of constructing a SageMaker AI XGBoost estimator
import sagemaker
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

estimator=XGBoost(
    entry_point="directory/to/your_training_script.py",
    role=sagemaker.get_execution_role(),
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.p3.2xlarge",
    framework_version="1.5-1",

    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------
#### [ Generic estimator ]

```
# An example of constructing a SageMaker AI generic estimator using the XGBoost algorithm base image
import boto3
import sagemaker
from sagemaker.estimator import Estimator
from sagemaker import image_uris
from sagemaker.debugger import CollectionConfig, DebuggerHookConfig, Rule, rule_configs

debugger_hook_config=DebuggerHookConfig(...)
rules=[
    Rule.sagemaker(rule_configs.built_in_rule())
]

region=boto3.Session().region_name
xgboost_container=sagemaker.image_uris.retrieve("xgboost", region, "1.5-1")

estimator=Estimator(
    role=sagemaker.get_execution_role()
    image_uri=xgboost_container,
    base_job_name="debugger-demo",
    instance_count=1,
    instance_type="ml.m5.2xlarge",
    
    # Debugger-specific parameters
    debugger_hook_config=debugger_hook_config,
    rules=rules
)

estimator.fit(wait=False)
```

------

SageMaker Debugger を起動するには、以下のパラメータを設定します。
+ `debugger_hook_config` ([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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` ([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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` ([https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.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)