

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh notebook dan contoh kode untuk mengkonfigurasi aturan Debugger
<a name="debugger-built-in-rules-example"></a>

**catatan**  
Amazon SageMaker Debugger tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. AWS terus berinvestasi dalam peningkatan keamanan dan ketersediaan untuk Debugger, tetapi kami tidak berencana untuk memperkenalkan fitur baru. Untuk informasi selengkapnya, lihat [Perubahan ketersediaan debugger](debugger-availability-change.md). 

Pada bagian berikut, buku catatan dan contoh kode tentang cara menggunakan aturan Debugger untuk memantau pekerjaan SageMaker pelatihan disediakan.

**Topics**
+ [Notebook contoh aturan bawaan Debugger](#debugger-built-in-rules-notebook-example)
+ [Kode contoh aturan bawaan Debugger](#debugger-deploy-built-in-rules)
+ [Gunakan aturan bawaan Debugger dengan modifikasi parameter](#debugger-deploy-modified-built-in-rules)

## Notebook contoh aturan bawaan Debugger
<a name="debugger-built-in-rules-notebook-example"></a>

Contoh buku catatan berikut menunjukkan cara menggunakan aturan bawaan Debugger saat menjalankan tugas pelatihan dengan Amazon SageMaker AI: 
+ [Menggunakan aturan bawaan SageMaker Debugger dengan TensorFlow ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_builtin_rule)
+ [Menggunakan aturan bawaan SageMaker Debugger dengan Pelatihan Spot Terkelola dan MXnet ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mxnet_spot_training)
+ [Menggunakan aturan bawaan SageMaker Debugger dengan modifikasi parameter untuk analisis pekerjaan pelatihan real-time dengan XGBoost ](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/xgboost_realtime_analysis)

Saat menjalankan contoh buku catatan di SageMaker Studio, Anda dapat menemukan uji coba pekerjaan pelatihan yang dibuat di ** tab Daftar Eksperimen ** Studio. Misalnya, seperti yang ditunjukkan pada tangkapan layar berikut, Anda dapat menemukan dan membuka ** jendela Deskripsi Kompon ** en Uji Coba dari pekerjaan pelatihan Anda saat ini. Pada tab Debugger, Anda dapat memeriksa apakah aturan Debugger, `vanishing_gradient()` dan`loss_not_decreasing()`, memantau sesi pelatihan secara paralel. Untuk instruksi lengkap tentang cara menemukan komponen uji coba pekerjaan pelatihan Anda di UI Studio, lihat [ SageMaker Studio - Lihat Eksperimen, Uji Coba, dan Komponen Uji Coba](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks.html#studio-tasks-experiments).

![Gambar menjalankan tugas pelatihan dengan aturan bawaan Debugger yang diaktifkan di SageMaker Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/debugger/debugger-built-in-rule-studio.png)


Ada dua cara menggunakan aturan bawaan Debugger di lingkungan SageMaker AI: menerapkan aturan bawaan saat disiapkan atau sesuaikan parameternya sesuai keinginan. Topik berikut menunjukkan cara menggunakan aturan bawaan dengan kode contoh.

## Kode contoh aturan bawaan Debugger
<a name="debugger-deploy-built-in-rules"></a>

Contoh kode berikut menunjukkan cara mengatur aturan bawaan Debugger menggunakan `Rule.sagemaker` metode ini. Untuk menentukan aturan bawaan yang ingin Anda jalankan, gunakan operasi `rules_configs` API untuk memanggil aturan bawaan. Untuk menemukan daftar lengkap aturan bawaan Debugger dan nilai parameter default, lihat[Daftar aturan bawaan Debugger](debugger-built-in-rules.md).

```
import boto3
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role
built_in_rules=[ 
            Rule.sagemaker(rule_configs.vanishing_gradient()),
            Rule.sagemaker(rule_configs.loss_not_decreasing())
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the Debugger built-in rules
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name='debugger-built-in-rules-demo',
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules
)
sagemaker_model_trainer.train()
```

**catatan**  
Aturan bawaan Debugger berjalan secara paralel dengan pekerjaan pelatihan Anda. Jumlah maksimum wadah aturan bawaan untuk pekerjaan pelatihan adalah 20. 

Untuk informasi selengkapnya tentang kelas aturan Debugger, metode, dan parameter, lihat kelas A [ SageMaker turan Debugger ](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html) di [ Amazon SageMaker Python SDK. ](https://sagemaker.readthedocs.io/en/stable) 

Untuk menemukan contoh bagaimana menyesuaikan parameter aturan Debugger, lihat [Gunakan aturan bawaan Debugger dengan modifikasi parameter](#debugger-deploy-modified-built-in-rules) bagian berikut.

## Gunakan aturan bawaan Debugger dengan modifikasi parameter
<a name="debugger-deploy-modified-built-in-rules"></a>

Contoh kode berikut menunjukkan struktur aturan bawaan untuk menyesuaikan parameter. Dalam contoh ini, `stalled_training_rule` mengumpulkan koleksi `losses` tensor dari pekerjaan pelatihan pada setiap 50 langkah dan tahap evaluasi pada setiap 10 langkah. Jika proses pelatihan mulai terhenti dan tidak mengumpulkan output tensor selama 120 detik, pekerjaan pelatihan akan `stalled_training_rule` dihentikan. 

```
import boto3
import time
import sagemaker
from sagemaker.train import ModelTrainer
from sagemaker.core.debugger import Rule, CollectionConfig, rule_configs
from sagemaker.core.helper.session_helper import get_execution_role

# call the built-in rules and modify the CollectionConfig parameters

base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time()))

built_in_rules_modified=[
    Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                'threshold': '120',
                'training_job_name_prefix': base_job_name_prefix,
                'stop_training_on_fire' : 'True'
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                      "train.save_interval": "50",
                      "eval.save_interval": "10"
                } 
            )
        ]
    )
]

from sagemaker.core import image_uris
from sagemaker.train.configs import SourceCode, Compute

training_image = image_uris.retrieve(
    framework="tensorflow",
    region=boto3.Session().region_name,
    version="{{2.9.0}}",
    py_version="{{py39}}",
    instance_type="{{ml.p3.2xlarge}}",
    image_scope="training"
)

# construct a SageMaker AI ModelTrainer with the modified Debugger built-in rule
sagemaker_model_trainer=ModelTrainer(
    training_image=training_image,
    source_code=SourceCode(entry_script='directory/to/your_training_script.py'),
    role=get_execution_role(),
    base_job_name=base_job_name_prefix,
    compute=Compute(instance_type="{{ml.p3.2xlarge}}", instance_count=1),

    # debugger-specific arguments below
    rules=built_in_rules_modified
)
sagemaker_model_trainer.train()
```