

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

# Debugger API を使って独自のカスタムルールを実行する
<a name="debugger-custom-rules-python-sdk"></a>

次のコードサンプルは、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) を使ってカスタムルールを設定する方法を示しています。この例では、前のステップで作成したカスタムルールスクリプトが「*path/to/my\$1custom\$1rule.py*」にあることを前提としています。

```
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"}
)
```

次のリストでは、デバッガー `Rule.custom` API の引数について説明します。
+ `name` (str): 自由なカスタムルール名を指定します。
+ `image_uri` (str): これは、独自のカスタムルールを理解するロジックを持つコンテナのイメージです。トレーニングジョブで保存した指定されたテンソルコレクションを取得して評価します。オープンソースの SageMaker AI ルールエバリュエーターイメージのリストは、「[カスタムルール評価用の Amazon SageMaker Debugger イメージの URI](debugger-reference.md#debuger-custom-rule-registry-ids)」から参照できます。
+ `instance_type` (str): ルール Docker コンテナを構築するためのインスタンスを指定する必要があります。これにより、トレーニングコンテナと並列でインスタンスがスピンアップされます。
+ `source` (str): これは、カスタムルールスクリプトへのローカルパスまたは Amazon S3 URI です。
+ `rule_to_invoke` (str): カスタムルールスクリプト内の特定のルールクラスの実装を指定します。SageMaker AI がサポートするのは、ルールジョブの中で一度に 1 つだけのルールの評価です。
+ `collections_to_save` (str): ルールを実行するために保存するテンソルコレクションを指定します。
+ `rule_parameters` (dictionary): ディクショナリ形式のパラメータ入力を受け入れます。カスタムルールスクリプトで設定したパラメータを調整できます。

`custom_rule` オブジェクトを設定した後は、どのトレーニングジョブの SageMaker AI 推定器の構築にも使用できます。トレーニングスクリプトへの `entry_point` を指定します。トレーニングスクリプトを変更する必要はありません。

```
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()
```

デバッガーのカスタムルールを使うその他のバリエーションと高度な例については、次のサンプルノートブックを参照してください。
+ [Amazon SageMaker デバッガーのカスタムルールを使ってトレーニングジョブをモニタリングする](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_keras_custom_rule/tf-keras-custom-rule.html)
+ [ResNet と AlexNet の PyTorch 反復モデルプルーニング](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_iterative_model_pruning)
+ [TensorFlow のトレーニングステータスに基づいてアクションを実行するためのデバッガールールを使って Amazon CloudWatch Events をトリガーする](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_action_on_rule)