Contoh notebook dan contoh kode untuk mengonfigurasi kait Debugger - Amazon SageMaker

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 mengonfigurasi kait Debugger

Bagian berikut menyediakan buku catatan dan contoh kode tentang cara menggunakan kait Debugger untuk menyimpan, mengakses, dan memvisualisasikan tensor keluaran.

Notebook contoh visualisasi tensor

Dua contoh notebook berikut menunjukkan penggunaan lanjutan Amazon SageMaker Debugger untuk memvisualisasikan tensor. Debugger memberikan pandangan transparan ke dalam pelatihan model pembelajaran mendalam.

  • Analisis Tensor Interaktif di SageMaker Studio Notebook dengan MXNet

    Contoh notebook ini menunjukkan cara memvisualisasikan tensor yang disimpan menggunakan Amazon Debugger. SageMaker Dengan memvisualisasikan tensor, Anda dapat melihat bagaimana nilai tensor berubah saat melatih algoritme 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, keluaran aktivasi, dan bobot. Misalnya, plot berikut menunjukkan distribusi gradien lapisan konvolusional yang mengalami masalah gradien 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.

  • Visualisasi dan Debugging Tensor dari Pelatihan Model MXNet

    Contoh notebook 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 aktivasi untuk visualisasi. ReLu 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 convolutional (CNNs) yang mengambil gambar dua dimensi untuk input. tensor_plot.pySkrip yang disediakan dengan notebook mengambil tensor menggunakan Debugger dan memvisualisasikan. CNN Anda dapat menjalankan notebook ini di SageMaker Studio untuk mereproduksi visualisasi tensor dan mengimplementasikan model jaringan saraf convolutional Anda sendiri.

  • Analisis Tensor Real-time di SageMaker Notebook dengan MXNet

    Contoh ini memandu Anda dalam menginstal komponen yang diperlukan untuk memancarkan tensor dalam pekerjaan SageMaker pelatihan Amazon dan menggunakan API operasi Debugger untuk mengakses tensor tersebut saat pelatihan sedang berjalan. CNNModel gluon dilatih pada MNIST dataset Fashion. Saat pekerjaan sedang berjalan, Anda akan melihat bagaimana Debugger mengambil output aktivasi dari lapisan convolutional pertama dari masing-masing 100 batch dan memvisualisasikannya. Juga, ini akan menunjukkan kepada Anda bagaimana 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 hook Debugger untuk membangun estimator. SageMaker TensorFlow Anda juga dapat menggunakan ini untukMXNet, PyTorch, dan XGBoost estimator.

catatan

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

"s3://sagemaker-us-east-1-111122223333/sagemaker-debugger-training-YYYY-MM-DD-HH-MM-SS-123/debug-output"
import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # 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=sagemaker.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 ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

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

Simpan tensor dengan memodifikasi koleksi bawaan Debugger

Anda dapat memodifikasi koleksi bawaan Debugger menggunakan operasi. CollectionConfig API Contoh berikut menunjukkan cara men-tweak losses koleksi bawaan dan membangun estimator. SageMaker TensorFlow Anda juga dapat menggunakan ini untukMXNet, PyTorch, dan XGBoost estimator.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # 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=sagemaker.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 ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

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 tensor lengkap (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 XGBoost estimator.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import DebuggerHookConfig, CollectionConfig # 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=sagemaker.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 ) # construct a SageMaker TensorFlow estimator sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-demo-job', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific hook argument below debugger_hook_config=hook_config ) sagemaker_estimator.fit()

Untuk daftar lengkap CollectionConfig parameter, lihat Debugger CollectionConfig.