Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan SageMaker Debugger untuk Menyimpan Tensor
Tensor adalah kumpulan data parameter yang diperbarui dari pass mundur dan maju dari setiap iterasi pelatihan. SageMaker Debugger mengumpulkan tensor keluaran untuk menganalisis keadaan pekerjaan pelatihan. SageMaker Debugger CollectionConfig
DebuggerHookConfig
catatan
Setelah dikonfigurasi dan diaktifkan dengan benar, SageMaker Debugger menyimpan tensor keluaran dalam bucket S3 default, kecuali ditentukan lain. Format bucket S3 default URI adalahs3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/debug-output/
.
Saat membangun SageMaker estimator, aktifkan SageMaker Debugger dengan menentukan parameter. debugger_hook_config
Langkah-langkah berikut mencakup contoh cara mengatur debugger_hook_config
penggunaan CollectionConfig
dan DebuggerHookConfig
API operasi untuk menarik tensor keluar dari pekerjaan pelatihan Anda dan menyimpannya.
Konfigurasikan Koleksi Tensor Menggunakan CollectionConfig
API
Gunakan CollectionConfig
API operasi untuk mengonfigurasi koleksi tensor. Debugger menyediakan koleksi tensor pra-bangun yang mencakup berbagai ekspresi reguler (regex) parameter jika menggunakan kerangka kerja pembelajaran mendalam dan algoritme pembelajaran mesin yang didukung Debugger. Seperti yang ditunjukkan pada kode contoh berikut, tambahkan koleksi tensor bawaan yang ingin Anda debug.
from sagemaker.debugger import CollectionConfig collection_configs=[ CollectionConfig(name="weights"), CollectionConfig(name="gradients") ]
Koleksi sebelumnya menyiapkan kait Debugger untuk menyimpan tensor setiap 500 langkah berdasarkan nilai default. "save_interval"
Untuk daftar lengkap koleksi bawaan Debugger yang tersedia, lihat Debugger
Jika Anda ingin menyesuaikan koleksi bawaan, seperti mengubah interval penyimpanan dan regex tensor, gunakan CollectionConfig
templat berikut untuk menyesuaikan parameter.
from sagemaker.debugger import CollectionConfig collection_configs=[ CollectionConfig( name="
tensor_collection
", parameters={ "key_1
": "value_1
", "key_2
": "value_2
", ... "key_n
": "value_n
" } ) ]
Untuk informasi selengkapnya tentang kunci parameter yang tersedia, lihat CollectionConfig
from sagemaker.debugger import CollectionConfig collection_configs=[ CollectionConfig( name="
losses
", parameters={ "train.save_interval
": "100
", "eval.save_interval
": "10
" } ) ]
Tip
Objek konfigurasi koleksi tensor ini dapat digunakan untuk API operasi keduanya DebuggerHookConfigdan Aturan.
Konfigurasikan DebuggerHookConfig
API untuk Menyimpan Tensor
Gunakan DebuggerHookConfigdebugger_hook_config
objek menggunakan collection_configs
objek yang Anda buat pada langkah sebelumnya.
from sagemaker.debugger import DebuggerHookConfig debugger_hook_config=DebuggerHookConfig( collection_configs=
collection_configs
)
Debugger menyimpan tensor keluaran pelatihan model ke dalam bucket S3 default. Format bucket URI S3 default adalah s3://sagemaker-<region>-<12digit_account_id>/<training-job-name>/debug-output/.
Jika Anda ingin menentukan bucket S3 yang tepatURI, gunakan contoh kode berikut:
from sagemaker.debugger import DebuggerHookConfig debugger_hook_config=DebuggerHookConfig( s3_output_path="
specify-amzn-s3-demo-bucket-uri
" collection_configs=collection_configs
)
Untuk informasi selengkapnya, lihat DebuggerHookConfig
Contoh Notebook dan Sampel Kode untuk Mengkonfigurasi Debugger Hook
Bagian berikut menyediakan buku catatan dan contoh kode tentang cara menggunakan kait Debugger untuk menyimpan, mengakses, dan memvisualisasikan tensor keluaran.
Topik
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.
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.
Dalam buku catatan ini,
TensorPlot
kelas yang diimpor daritensor_plot.py
dirancang untuk memplot jaringan saraf convolutional (CNNs) yang mengambil gambar dua dimensi untuk input.tensor_plot.py
Skrip 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 Built-in 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
Simpan Tensor Menggunakan Koleksi Bawaan yang Dimodifikasi 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