View a markdown version of this page

Contoh notebook dan contoh kode untuk mengkonfigurasi pengait Debugger - Amazon SageMaker AI

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 pengait Debugger

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.

Bagian berikut menyediakan notebook dan contoh kode tentang cara menggunakan Debugger hook untuk menyimpan, mengakses, dan memvisualisasikan tensor keluaran.

Notebook contoh visualisasi tensor

Dua contoh buku catatan berikut menunjukkan penggunaan lanjutan Amazon SageMaker Debugger untuk memvisualisasikan tensor. Debugger memberikan tampilan transparan ke dalam melatih model pembelajaran mendalam.

  • Analisis Tensor Interaktif di Notebook SageMaker Studio dengan MXnet

    Contoh buku catatan ini menunjukkan cara memvisualisasikan tensor yang disimpan menggunakan Amazon SageMaker Debugger. Dengan memvisualisasikan tensor, Anda dapat melihat bagaimana nilai tensor berubah saat melatih algoritma pembelajaran mendalam. Notebook ini mencakup pekerjaan pelatihan dengan jaringan saraf yang tidak dikonfigurasi dengan baik dan menggunakan Amazon SageMaker Debugger untuk mengumpulkan dan menganalisis tensor, termasuk gradien, output aktivasi, dan bobot. Misalnya, plot berikut menunjukkan distribusi gradien lapisan konvolusi yang menderita masalah gradien yang menghilang.

    Grafik yang memplot distribusi gradien.

    Notebook ini juga menggambarkan bagaimana pengaturan hiperparameter awal yang baik meningkatkan proses pelatihan dengan menghasilkan plot distribusi tensor yang sama.

  • Memvisualisasikan dan Men-debug Tensor dari Pelatihan Model MXnet

    Contoh buku catatan ini menunjukkan cara menyimpan dan memvisualisasikan tensor dari pekerjaan pelatihan model MXnet Gluon menggunakan Amazon Debugger. SageMaker Ini menggambarkan bahwa Debugger diatur untuk menyimpan semua tensor ke bucket Amazon S3 dan mengambil output ReLu aktivasi untuk visualisasi. Gambar berikut menunjukkan visualisasi tiga dimensi dari output ReLu aktivasi. Skema warna diatur ke biru untuk menunjukkan nilai mendekati 0 dan kuning untuk menunjukkan nilai mendekati 1.

    Visualisasi output aktivasi ReLU.

    Dalam buku catatan ini, TensorPlot kelas yang diimpor dari tensor_plot.py dirancang untuk memplot jaringan saraf konvolusional (CNN) yang mengambil gambar dua dimensi untuk input. tensor_plot.pySkrip yang disediakan dengan notebook mengambil tensor menggunakan Debugger dan memvisualisasikan CNN. Anda dapat menjalankan buku catatan ini di SageMaker Studio untuk mereproduksi visualisasi tensor dan mengimplementasikan model jaringan saraf konvolusional Anda sendiri.

  • Real-time Analisis Tensor di SageMaker Notebook dengan MXnet

    Contoh ini memandu Anda melalui pemasangan komponen yang diperlukan untuk memancarkan tensor dalam pekerjaan SageMaker pelatihan Amazon dan menggunakan operasi API Debugger untuk mengakses tensor tersebut saat pelatihan sedang berjalan. Model CNN gluon dilatih pada dataset Fashion MNIST. Saat pekerjaan berjalan, Anda akan melihat bagaimana Debugger mengambil output aktivasi dari lapisan konvolusi pertama dari masing-masing 100 batch dan memvisualisasikannya. Juga, ini akan menunjukkan kepada Anda cara memvisualisasikan bobot setelah pekerjaan selesai.

Simpan tensor menggunakan koleksi bawaan Debugger

Anda dapat menggunakan koleksi tensor bawaan menggunakan CollectionConfig API dan menyimpannya menggunakan DebuggerHookConfig API. Contoh berikut menunjukkan cara menggunakan pengaturan default konfigurasi kait Debugger untuk membuat TensorFlow estimator SageMaker AI. Anda juga dapat memanfaatkan ini untuk estimator MXNet, PyTorch, dan XGBoost.

catatan

Dalam kode contoh berikut, s3_output_path parameter untuk DebuggerHookConfig adalah opsional. Jika Anda tidak menentukannya, Debugger menyimpan tensor dis3://<output_path>/debug-output/, di mana itu <output_path> adalah jalur keluaran default dari pekerjaan SageMaker pelatihan. Contoh:

"s3://sagemaker-us-east-1-111122223333/sagemaker-debugger-training-YYYY-MM-DD-HH-MM-SS-123/debug-output"
import boto3 import sagemaker from sagemaker.train import ModelTrainer from sagemaker.core.debugger import DebuggerHookConfig, CollectionConfig from sagemaker.core.helper.session_helper import Session, get_execution_role # use Debugger CollectionConfig to call built-in collections collection_configs=[ CollectionConfig(name="weights"), CollectionConfig(name="gradients"), CollectionConfig(name="losses"), CollectionConfig(name="biases") ] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-built-in-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) 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 ModelTrainer 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-demo-job', compute=Compute(instance_type="ml.p3.2xlarge", instance_count=1), # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_model_trainer.train()

Untuk melihat daftar koleksi bawaan Debugger, lihat Koleksi Debugger Built-in .

Simpan tensor dengan memodifikasi koleksi bawaan Debugger

Anda dapat memodifikasi koleksi bawaan Debugger menggunakan operasi CollectionConfig API. Contoh berikut menunjukkan cara mengubah losses koleksi bawaan dan membangun TensorFlow estimator SageMaker AI. Anda juga dapat menggunakan ini untuk estimator MXNet, PyTorch, dan XGBoost.

import boto3 import sagemaker from sagemaker.train import ModelTrainer from sagemaker.core.debugger import DebuggerHookConfig, CollectionConfig from sagemaker.core.helper.session_helper import Session, get_execution_role # use Debugger CollectionConfig to call and modify built-in collections collection_configs=[ CollectionConfig( name="losses", parameters={"save_interval": "50"})] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-modified-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) 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 ModelTrainer 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-demo-job', compute=Compute(instance_type="ml.p3.2xlarge", instance_count=1), # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_model_trainer.train()

Untuk daftar lengkap CollectionConfig parameter, lihat Debugger CollectionConfig API.

Simpan tensor menggunakan koleksi kustom Debugger

Anda juga dapat menyimpan jumlah tensor yang dikurangi alih-alih set lengkap tensor (misalnya, jika Anda ingin mengurangi jumlah data yang disimpan di bucket Amazon S3 Anda). Contoh berikut menunjukkan cara menyesuaikan konfigurasi kait Debugger untuk menentukan tensor target yang ingin Anda simpan. Anda dapat menggunakan ini untuk TensorFlow, MXnet, PyTorch, dan estimator XGBoost.

import boto3 import sagemaker from sagemaker.train import ModelTrainer from sagemaker.core.debugger import DebuggerHookConfig, CollectionConfig from sagemaker.core.helper.session_helper import Session, get_execution_role # use Debugger CollectionConfig to create a custom collection collection_configs=[ CollectionConfig( name="custom_activations_collection", parameters={ "include_regex": "relu|tanh", # Required "reductions": "mean,variance,max,abs_mean,abs_variance,abs_max" }) ] # configure Debugger hook # set a target S3 bucket as you want sagemaker_session=Session() BUCKET_NAME=sagemaker_session.default_bucket() LOCATION_IN_BUCKET='debugger-custom-collections-hook' hook_config=DebuggerHookConfig( s3_output_path='s3://{BUCKET_NAME}/{LOCATION_IN_BUCKET}'. format(BUCKET_NAME=BUCKET_NAME, LOCATION_IN_BUCKET=LOCATION_IN_BUCKET), collection_configs=collection_configs ) 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 ModelTrainer 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-demo-job', compute=Compute(instance_type="ml.p3.2xlarge", instance_count=1), # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_model_trainer.train()

Untuk daftar lengkap CollectionConfig parameter, lihat Debugger CollectionConfig.