

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

아래 목록은 Debugger `Rule.custom` API 인수에 대해 설명합니다.
+ `name`(str): 원하는 사용자 지정 규칙 이름을 지정합니다.
+ `image_uri`(str): 사용자 지정 규칙을 이해하는 로직이 있는 컨테이너의 이미지입니다. 훈련 작업에서 저장한 지정된 텐서 모음을 소싱하고 평가합니다. 사용자는 [사용자 지정 규칙 평가기를 위한 Amazon SageMaker Debugger 이미지 URI](debugger-reference.md#debuger-custom-rule-registry-ids)에서 오픈 소스 SageMaker AI 규칙 평가자 이미지 목록을 찾을 수 있습니다.
+ `instance_type`(str): 규칙 docker 컨테이너를 빌드하려면 인스턴스를 지정해야 합니다. 그러면 인스턴스가 훈련 컨테이너와 병렬로 스핀업합니다.
+ `source`(str): 사용자 지정 규칙 스크립트의 로컬 경로 또는 Amazon S3 URI입니다.
+ `rule_to_invoke`(str): 사용자 지정 규칙 스크립트의 특정 규칙 클래스 구현을 지정합니다. SageMaker AI는 규칙 작업에서 한 번에 하나의 규칙만 평가할 수 있도록 지원합니다.
+ `collections_to_save`(str): 규칙을 실행하기 위해 저장할 텐서 모음을 지정합니다.
+ `rule_parameters`(사전): 사전 형식으로 파라미터 입력을 받아들입니다. 사용자 지정 규칙 스크립트에서 구성한 매개 변수를 조정할 수 있습니다.

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

Debugger 사용자 지정 규칙 사용에 대한 추가 변형 및 고급 예제는 다음 예제 노트북을 참조하세요.
+ [Amazon SageMaker Debugger 사용자 지정 규칙을 사용한 훈련 작업 모니터링](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로 훈련 상태를 기반으로 작업을 수행할 수 있도록 Debugger 규칙을 사용하여 Amazon CloudWatch Events 트리거하기](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_action_on_rule)